13.03.2015, 21:12
Too much errors, the player name should be fetched before the string formatting. Plus you need to specify sscanf's string specifier's length or your server might crash.
Код:
CMD:jail(playerid,params[]) { if(pInfo[playerid][pAdminLevel] >= 1) { new id, time, reason[100], szString[150], PlayerName[MAX_PLAYER_NAME+1] ; if (sscanf(params, "iis[100]", id, time, reason)) return SendClientMessage(playerid, -1, "*"COL_WHITE" /jail [playerid] [time] [reason]"); if (!IsPlayerConnected(id)) return SendClientMessage(playerid, -1,"*"COL_RED" Player is not connected."); if (Jailed[id] == 1) return SendClientMessage(playerid, -1, "*"COL_RED" Player is already jailed."); GetPlayerName(id, PlayerName, sizeof(PlayerName)); format(szString, sizeof(szString), "AdmSys-: %s (ID:%d) has been jailed for %d minutes; Reason: %s", PlayerName, id, time, reason); SendClientMessageToAll(-1, szString); SetPlayerInterior(id, 3); SetPlayerVirtualWorld(id, 10); SetPlayerFacingAngle(id, 360.0); SetPlayerPos(id, 197.5662, 175.4800, 1004.0); SetPlayerHealth(id, 9999999999.0); ResetPlayerWeapons(id); JailTimer[id] = SetTimerEx("Unjail",time*60000, false, "i", id); } else return 0; return 1; }