Разясняване на функци в кода

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
Nine Finger's
Извън линия
Потребител
Потребител
Мнения: 112
Регистриран на: 13 Фев 2018, 20:45
Местоположение: Майна town
Се отблагодари: 40 пъти
Получена благодарност: 6 пъти

Разясняване на функци в кода

Мнение от Nine Finger's » 11 Мар 2018, 23:20

Здравейте, някои може ли да ми разясни за дадените функции в кода, а по точно:

Код за потвърждение: Избери целия код

new origin[3], srco[3]
		get_user_origin(id,origin)			
		origin[2] -= 26
		srco[0]=origin[0]+150
		srco[1]=origin[1]+150
		srco[2]=origin[2]+800

Код за потвърждение: Избери целия код

public slay_those_losers(parm[]) { 
	new origin[3], srco[3]
	new player[32], playersnum 
	new id
			
	get_players(player,playersnum,"ea",(parm[7] == 't') ? "CT" : "TERRORIST" ) 
	
	for(new i = 0; i < playersnum; ++i){	
		id = player[i]	
		get_user_origin(id,origin)			
		origin[2] -= 26
		srco[0]=origin[0]+150
		srco[1]=origin[1]+150
		srco[2]=origin[2]+800
		switch(random_num(1,3)){	
			case 1:{
				slay_lightning(srco,origin)
				emit_sound(id,CHAN_ITEM, "ambience/thunder_clap.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
			}
			case 2:{
				slay_blood(origin)
				emit_sound(id,CHAN_ITEM, "weapons/headshot2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
			}
			case 3:	{
				slay_explode(origin)
				emit_sound(id,CHAN_ITEM, "weapons/explode3.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
			}
		}
		set_hudmessage(178, 14, 41, -1.0, -0.4, 1, 0.5, 1.7, 0.2, 0.2,5);
		show_hudmessage(id, "Objective Failed^nFailure Is Not An Option^nYou Die Now" );
		user_kill(id,1)	
	}	
} 
Make everything simple as possible but not simpler.
Albert Einstein

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Разясняване на функци в кода

Мнение от TheRedShoko » 11 Мар 2018, 23:25

Според аргумента в parm преценява дали да събере всички терористи или полицаи. След това ги обхожда, взима им текущото местоположение, прави някакви изчисления с него и след това извиква убийството. Origin се използва, за да се знае местоположението, на което да бъде направен ефекта на убийство. променливата srco се използва за убийството от тип "удар от гръм". При него явно се иска някакво по-различно местоположение и затова има въпросните изчисления.

Аватар
Nine Finger's
Извън линия
Потребител
Потребител
Мнения: 112
Регистриран на: 13 Фев 2018, 20:45
Местоположение: Майна town
Се отблагодари: 40 пъти
Получена благодарност: 6 пъти

Разясняване на функци в кода

Мнение от Nine Finger's » 11 Мар 2018, 23:39

Значи мога да премахна параметрите srco и техните изчисления нещо от сорта на:

Код за потвърждение: Избери целия код

	new origin[3]
	new player[32], playersnum 
	new id
			
	get_players(player,playersnum,"ea",(parm[7] == 't') ? "CT" : "TERRORIST" ) 
	
	for(new i = 0; i < playersnum; ++i){	
		id = player[i]	
		get_user_origin(id,origin)			
		origin[2] -= 26
		switch(random_num(1,3)){
И после променям смяната на switch(random_num(1,3) на 1 или да го обхождам със иф ?
Make everything simple as possible but not simpler.
Albert Einstein

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Разясняване на функци в кода

Мнение от TheRedShoko » 12 Мар 2018, 00:20

Обясни какво искаш да направиш. По принцип мястото на тези изчисления не е там, а във функцията за светкавицата, но човека писал кода не е бил запознат с правилата за писане на качествен програмен код (КПК).

Аватар
Nine Finger's
Извън линия
Потребител
Потребител
Мнения: 112
Регистриран на: 13 Фев 2018, 20:45
Местоположение: Майна town
Се отблагодари: 40 пъти
Получена благодарност: 6 пъти

Разясняване на функци в кода

Мнение от Nine Finger's » 12 Мар 2018, 00:30

Просто искам да премахна 2 от функците на swicha и да остане само 2-рата функция, с цел по малко код и премахване на излишното което няма да бъде използвано.
Make everything simple as possible but not simpler.
Albert Einstein

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Разясняване на функци в кода

Мнение от OciXCrom » 12 Мар 2018, 00:56

Демек искаш да ползваш само од ефектите, вместо да избира произволен такъв?

Код за потвърждение: Избери целия код

switch(random_num(1,3)){	
	case 1:{
		slay_lightning(srco,origin)
		emit_sound(id,CHAN_ITEM, "ambience/thunder_clap.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
	}
	case 2:{
		slay_blood(origin)
		emit_sound(id,CHAN_ITEM, "weapons/headshot2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
	}
	case 3:	{
		slay_explode(origin)
		emit_sound(id,CHAN_ITEM, "weapons/explode3.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
	}
}
От тук оставяш само това (ако искаш първия ефект):

Код за потвърждение: Избери целия код

slay_lightning(srco,origin)
emit_sound(id,CHAN_ITEM, "ambience/thunder_clap.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
Switch проверката просто определя кой от трите ефекти ще се ползва. Другите неща в кода са нужни за всеки един от ефектите.

Аватар
Nine Finger's
Извън линия
Потребител
Потребител
Мнения: 112
Регистриран на: 13 Фев 2018, 20:45
Местоположение: Майна town
Се отблагодари: 40 пъти
Получена благодарност: 6 пъти

Разясняване на функци в кода

Мнение от Nine Finger's » 12 Мар 2018, 00:58

Благодаря много точно това исках.
Може да заключвате темата.
Make everything simple as possible but not simpler.
Albert Einstein

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Помощ в скриптирането”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 18 госта