Замена 1
Код:
#if defined MAX_PLAYERS #undef MAX_PLAYERS #define MAX_PLAYERS 100 #else #define MAX_PLAYERS 100 #endif
Замена 2
Код:
new PLIDs[MAX_PLAYERS]; new MaxPlayers = 0;
Очистим весь массив PLIDs при инициализации мода OnGameModInit:
Код:
for(new i=0;i<sizeof(PLIDs);i++){PLIDs[i] = -1;}
Теперь надо добавить в паблик OnPlayerConnect необходимые операции с глобальными переменными:
Код:
PLIDs[MaxPlayers] = playerid; MaxPlayers++;
С пабликом OnPlayerDisconnect все немного сложнее. Игрок выходит, тоесть слот в PLIDs который занимала его ИД надо очистить. Но мне не нужен пустой слот, поэтому я присваиваю ему значение самого последнего слота PLIDs, и вот последний уже очищаю:
Код:
for(new i=0;i<MaxPlayers;i++) { if(PLIDs[i] == playerid) { MaxPlayers--; PLIDs[i] = PLIDs[MaxPlayers]; PLIDs[MaxPlayers] = -1; break; } }
Пример:
Код:
for(new i=0;i<MaxPlayers;i++) { SendClientMessage(PLIDs[i], -1, "Message"); }