Sziasztok,
Elkészültem az adminrendszerrel, és a következõ problémával találtam szembe magam:
Amikor warnolok, automatikusan 50 (nem kereken hanem random 50 valahány) lesz az Account[player][pWarns] értéke és kickeli a játékost...
Értékváltoztatás csak itt, és (dis)connectnél van, ahol nullára állítom az értékét.
CMD:warn(playerid,params[])
{
LevelCheck(playerid,2);
new player, reason[200];
if(sscanf(params,\"ds[200]\",player,reason))return SendClientMessage(playerid,red,\"Használat: /warn <id> <indok>\");
if(IsValidPlayer(player))
{
Account[player][pWarns]+=1;
if(Account[player][pWarns] >= 3)
{
format(reason,200,\"Adminisztrátor \\\"%s\\\" kidobta \\\"%s\\\"-t! | Indok: %s | Figyelmeztetések: %d/3\", pName(playerid), pName(player), reason, Account[player][pWarns]);
SendClientMessageToAll(admincolor,reason);
Kick(player);
SaveIn(\"kicklog\",reason);
SaveIn(\"warnlog\",reason);
}
else
{
format(reason,200,\"Adminisztrátor \\\"%s\\\" figyelmeztette \\\"%s\\\"-t! | Indok: %s | Figyelmeztetések: %d/3\", pName(playerid), pName(player), reason, Account[player][pWarns]);
SendClientMessageToAll(admincolor,reason);
SaveIn(\"warnlog\",reason);
}
}
else SendClientMessage(playerid,red,\"HIBA: A játékos nincs csatlakozva!\");
return 1;
}
E:
Nem tudom mért van ez, de ezzel kijavítottam:
if(Account[player][pWarns] > 3)Account[player][pWarns] = 0;
Nyitva hagyom hátha valaki meg tudja mondani mi a baja.