28.10.2013, 23:20
Here's something I use, hope this helps
Код:
CMD:warn(playerid, params[]) { new giveplayerid, result[128]; if(PlayerInfo[playerid][pAdmin] >= 2){ if(!sscanf(params, "us[128]", giveplayerid, result)){ if(IsPlayerConnected(giveplayerid)){ if(giveplayerid != INVALID_PLAYER_ID){ strmid(giveplayer, PlayerRPName(giveplayerid), 0, MAX_PLAYER_NAME); strmid(sendername, PlayerRPName(playerid), 0, MAX_PLAYER_NAME); new logstring[128]; new IP[16]; new year, month, day; getdate(year, month, day); if(UseAdmCmdTimer[playerid] > 2){ GetPlayerIp(playerid, IP, sizeof(IP)); format(logstring, sizeof(logstring), "%s [%d/%d/%d] Name: %s Key: %s Reason: Spam.", IP, day, month, year,sendername,PlayerInfo[playerid][pKey]); BanLog(logstring); format(string, sizeof(string), "{FF6347}SERVER: %s was banned, reason: Spam.", sendername); SendClientMessageToAll(COLOR_WHITE, string); format(string, sizeof(string), "Ban Reason: Spam (/warn) - Banned by: Autoban"); strmid(PlayerInfo[playerid][pBanReason], string, 0, strlen(string), 255); PlayerInfo[playerid][pBand] = 3; PlayerInfo[playerid][pPermBand] = 1; BanEx(playerid, "Banned By: Autoban Reason: Spam"); return 1; } if(PlayerInfo[giveplayerid][pAdmin] > PlayerInfo[playerid][pAdmin]){ format(string, sizeof(string), "{FF0000}AdmWarning{FFFFFF}: %s was warned, reason: Attempting to warn a higher admin.", sendername); ABroadCast(COLOR_WHITE, string, 1); PlayerInfo[playerid][pWarns] += 1; if(PlayerInfo[playerid][pWarns] >= 3){ GetPlayerIp(giveplayerid, IP, sizeof(IP)); format(logstring, sizeof(logstring), "%s [%d/%d/%d] Name: %s Key: %s Banned by: Autoban Reason: Attempting to warn a higher admin (3 Warnings).", IP, day, month, year,sendername,PlayerInfo[playerid][pKey]); BanLog(logstring); format(string, sizeof(string), "{FF6347}SERVER: %s was banned (had 3 warnings), reason: Attempting to warn a higher admin", sendername); SendClientMessageToAll(COLOR_WHITE, string); format(string, sizeof(string), "Ban Reason: Attempting to warn a higher admin (had 3 warnings) - Banned by: Autoban"); strmid(PlayerInfo[playerid][pBanReason], string, 0, strlen(string), 255); PlayerInfo[playerid][pBand] = 3; BanEx(playerid, "Banned By: Autoban Reason: Had 3 Warnings"); return 1; } return 1; } PlayerInfo[giveplayerid][pWarns] += 1; format(string, sizeof(string), "{FF0000}AdmWarning{FFFFFF}: %s has warned %s, reason: %s", PlayerRPName(playerid), giveplayer, (result)); ABroadCast(COLOR_WHITE,string,1); if(PlayerInfo[giveplayerid][pWarns] >= 3){ GetPlayerIp(giveplayerid, IP, sizeof(IP)); format(logstring, sizeof(logstring), "%s [%d/%d/%d] Name: %s Key: %s Banned by: %s Reason: %s (3 Warnings).", IP, day, month, year,giveplayer,PlayerInfo[giveplayerid][pKey],sendername, (result)); BanLog(logstring); format(string, sizeof(string), "{FF6347}SERVER: %s was banned by %s (had 3 warnings), reason: %s", giveplayer, sendername, (result)); SendClientMessageToAll(COLOR_WHITE, string); format(string, sizeof(string), "Ban Reason: %s (had 3 warnings) - Banned by: %s",result,sendername); strmid(PlayerInfo[giveplayerid][pBanReason], string, 0, strlen(string), 255); PlayerInfo[giveplayerid][pBand] = 3; BanEx(giveplayerid, "Banned By: Autoban Reason: Had 3 Warnings"); return 1; } format(string, sizeof(string), "You warned %s, reason: %s", giveplayer, (result)); SendClientMessage(playerid, COLOR_LIGHTRED, string); format(string, sizeof(string), "You were warned by %s, reason: %s", sendername, (result)); SendClientMessage(giveplayerid, COLOR_LIGHTRED, string); UseAdmCmdTimer[playerid]++; SetTimerEx("UseAdmCmd",3*1000,0,"i",playerid); //3 seconds return 1; } }else{ format(string, sizeof(string), " %d is not an active player.", giveplayerid); SendClientMessage(playerid, COLOR_GRAD1, string); } }else{ SendClientMessage(playerid, COLOR_WHITE, "USAGE: /warn [playerid/PartOfName] [reason]"); } }else{ SendClientMessage(playerid, COLOR_GRAD2, " You are not authorized to use that command !"); } return 1; }