public IsPlayerInSquadDisconnected(playerid)
{
if(commander[playerid] > 0)
{
commanders[commander[playerid]] = 100;
activecoms[gTeam[playerid]] -= 1;
DestroyDynamic3DTextLabel(comtext[playerid]);
print("Êîìàíäèð ñíÿò ïðè îòêëþ÷åíèè!");
commander[playerid] = 0;
Squads[numsquad[playerid]] -= 1;
numsquad[playerid] = 0;
print("Èãðîê óáðàí èç îòðÿäà!");
gTeam[playerid] = 3;
print("Êîìàíäà èãðîêà îáíóëåíà!");
return 1;
}
else if((commander[playerid] == 0)&&(numsquad[playerid] > 0))
{
if(IsValidDynamic3DTextLabel(comtext[commanders[numsquad[playerid]]])){Streamer_RemoveArrayData(STREAMER_TYPE_3D_TEXT_LABEL, comtext[commanders[numsquad[playerid]]], E_STREAMER_PLAYER_ID, playerid); print("Òåêñò êîìàíäèðà óäàëåí äëÿ èãðîêà!");}
Squads[numsquad[playerid]] -= 1;
numsquad[playerid] = 0;
print("Èãðîê óáðàí èç îòðÿäà!");
gTeam[playerid] = 3;
print("Êîìàíäà èãðîêà îáíóëåíà!");
return 1;
}
else
{
gTeam[playerid] = 3;
print("Êîìàíäà èãðîêà îáíóëåíà!");
return 1;
}
}
if(IsValidDynamic3DTextLabel(comtext[commanders[numsquad[playerid]]])){Streamer_RemoveArrayData(STREAMER_TYPE_3D_TEXT_LABEL, comtext[commanders[numsquad[playerid]]], E_STREAMER_PLAYER_ID, playerid); print("Òåêñò êîìàíäèðà óäàëåí äëÿ èãðîêà!");}
|
А что в этом коде плохого? Это избавляет от введения новых переменных
|
|
1) Зато не избавляет программиста/скриптера от необходимости при каждом новом просмотре того же кода определять заново какой смысл был заложен в определённую часть кода.
2) Усложняешь себе жизнь в отладке. 3) Какой ты, с**а (как Пушкин), молодец - сэкономил несколько байт памяти. И плевать тебе было на то, что: 3.1) Усложнил жизнь процессору, заставив его по несколько раз брать одни и те же смещения в массивах. 3.2) Из 3.1 видно, что размер под память программы (больше инструкций; - можешь убедиться в этом по ассемблерному листингу) у тебя вырос за счёт экономии памяти данных. Твой стиль не имеет никаких плюсов. |
|
Хорошо, я вроде бы тебя понял, спасибо!
Кстати, такой вот общий вопрос тебе вслед; Тут все так горелычи ловят и вместо того, чтоб нормально указать на ошибку и доступно объяснить начинают вот так вые****ться? Мне кажется, из-за таких как ты, инопланетяне с нами на контакт идти не хотят c: |
. И подавать манну небесную не собираемся - у самих свои проблемы есть.if(IsValidDynamic3DTextLabel(comtext[commanders[numsquad[playerid]]])){
Streamer_RemoveArrayData(STREAMER_TYPE_3D_TEXT_LABEL, comtext[commanders[numsquad[playerid]]], E_STREAMER_PLAYER_ID, playerid);
print("Òåêñò êîìàíäèðà óäàëåí äëÿ èãðîêà!");
}
|
Вообще-то мы и есть инопланетяне
. И подавать манну небесную не собираемся - у самих свои проблемы есть. |
|
1) Зато не избавляет программиста/скриптера от необходимости при каждом новом просмотре того же кода определять заново какой смысл был заложен в определённую часть кода.
2) Усложняешь себе жизнь в отладке. 3) Какой ты, с**а (как Пушкин), молодец - сэкономил несколько байт памяти. И плевать тебе было на то, что: 3.1) Усложнил жизнь процессору, заставив его по несколько раз брать одни и те же смещения в массивах. 3.2) Из 3.1 видно, что размер под память программы (больше инструкций; - можешь убедиться в этом по ассемблерному листингу) у тебя вырос за счёт экономии памяти данных. Твой стиль не имеет никаких плюсов. |
|
С невалидным значением в одном из массивов?
Подключи crashdetect, скомпилируй мод в режиме отладки и в логах покажет в чём проблема |