Если создать переменную new bool:player_is_logged[MAX_PLAYERS char]; и сделать так:
PHP код:
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(player_is_logged{playerid} == false) return MSG_NOLOGIN(playerid);
return true;
}
То в логе выдаёт:
PHP код:
[22:37:11] [debug] Run time error 6: "Invalid instruction"
[22:37:11] [debug] Unknown opcode 0x0 at address 0x00000108
[22:37:11] [debug] AMX backtrace:
[22:37:11] [debug] #0 ???????? in public cmd_saveall ()
[22:37:11] [debug] #1 native DC_CMD () [021a1310] from dc_cmd.DLL
[22:37:11] [debug] #2 ???????? in public OnPlayerCommandText ()
[22:37:11] [debug] Run time error 4: "Array index out of bounds"
[22:37:11] [debug] Accessing element at index 134217729 past array upper bound 99
[22:37:11] [debug] AMX backtrace:
[22:37:11] [debug] #0 0007e140 in public OnPlayerCommandPerformed (playerid=134217729, cmdtext[]=@0x000fdeb4 "/saveall", success=296) at C:\MyFiles\ProjectPAWN\my mod\gamemodes\StateLS.pwn:4642
[22:37:11] [debug] #1 native DC_CMD () [021a1310] from dc_cmd.DLL
[22:37:11] [debug] #2 00000108 in public OnPlayerCommandText () at C:\MyFiles\ProjectPAWN\my mod\pawno\include\float.inc:121
4642 - строка if(player_is_logged{playerid} == false) return MSG_NOLOGIN(playerid); в паблике.
Если же создавать переменную так - new player_is_logged[MAX_PLAYERS char]; - и использовать в паблике if(player_is_logged{playerid} == 0) return MSG_NOLOGIN(playerid);, то ошибки не выдаёт.
Команда /saveall:
PHP код:
CMD:saveall(playerid)
{
if(PlayerInfo[playerid][pAdmin] < 5) return MSG_NOADMIN(playerid);
foreach(new i: Player)
{
if(IsPlayerNPC(i) || player_is_logged{i} == 0) continue;
SavePlayer(i);
}
for(new biz = 1; biz <= TOTALBIZ; biz++)
{
SaveBiz(biz);
}
return true;
}