28.10.2013, 23:01
I need help making a warn command with zcmd include.
Please help me
-Jeremy
Please help me
-Jeremy
new
Warn[MAX_PLAYERS];
CMD:warn( playerid, params[ ] )
{
new targetid;
if( sscanf( params, "u",targetid ) )
return SendClientMessage( playerid, -1, "Usage: /warn [PlayerName/ID]" );
Warn[targetid] ++;
return true;
}
public OnPlayerUpdate((playerid)
{
if(Warns[playerid] >= 3)
return Kick(playerid); //kicking the player if he reaches 3 or more warning
return true;
}
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; }
#include <zcmd>
new Warn[MAX_PLAYERS];
CMD:warn( playerid, params[ ] )
{
new targetid;
if( sscanf( params, "u",targetid ) )
return SendClientMessage( playerid, -1, "Usage: /warn [PlayerName/ID]" );
Warn[targetid] ++;
return true;
}
public OnPlayerUpdate(playerid)
{
if(Warns[playerid] >= 3)
return Kick(playerid); //kicking the player if he reaches 3 or more warning
return true;
}
CMD:warn(playerid, params[])
{
if(!IsPlayerAdmin(playerid))
{
new targetid, reason[100];
if(sscanf(params, "ds[64]", targetid, reason)) return SendClientMessage(playerid, COLOR_RED, "Syntax: /warn [playerid] [reason]");
if(IsPlayerConnected(targetid))
{
if(targetid != INVALID_PLAYER_ID)
{
if(PlayerInfo[targetid][Warns] == MAX_WARNINGS)
{
new msg[300], tname[MAX_PLAYER_NAME], name[MAX_PLAYER_NAME];
GetPlayerName(targetid, tname, sizeof(tname));
GetPlayerName(playerid, name, sizeof(name));
format(msg, sizeof(msg), "ADMIN_KICK: {FF0000}%s(ID: %d) {FF00FF}has been Kicked, reason: {FF0000}warning 3/3", tname, targetid);
SendClientMessageToAll(BANNEDMESSAGE, msg);
new string[128];
format(string, sizeof(string), "%s has been Kicked by %s, Reason: {FF0000}%s{FF00FF}, Warning 3/3", tname, name, reason);
SaveIn("WarnLog",string);
Kick(targetid);
}
if(PlayerInfo[targetid][Warns] < MAX_WARNINGS)
{
new msg[300], tname[MAX_PLAYER_NAME], name[MAX_PLAYER_NAME];
PlayerInfo[targetid][Warns]++;
GetPlayerName(targetid, tname, sizeof(tname));
GetPlayerName(playerid, name, sizeof(name));
format(msg, sizeof(msg), "Kick-Warning: {FF0000}%s {FF00FF}has been warned, Reason: {FF0000}%s{FF00FF}, warning: {FF0000}%d/3", tname, reason, PlayerInfo[targetid][Warns]);
SendClientMessageToAll(BANNEDMESSAGE, msg);
new string[128];
format(string, sizeof(string), "%s has been Warned by %s, Reason: %s", tname, name, reason);
SaveIn("WarnLog",string);
}
}
else return SendClientMessage(playerid, COLOR_RED, "ERROR: Invalid Player ID / Player is not Connected.");
}
}
else return SendClientMessage(playerid, COLOR_RED, "ERROR: You're not an RCON Administrator");
return 1;
}
new Warnings[MAX_PLAYERS]
CMD:warn(playerid, params[])
{
new targetid; new string[150]; reason[50];
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, -1, "You aren't admin !");
if(!IsPlayerConnected(targetid))return SendClientMessage(playerid, -1, "Invalid player id!");
if(sscanf(params, "us", targetid, reason))return SendClientMessage(playerid, -1, "usage: /warn [playerid] [reason]");
Warnings[targetid] ++;
if(Warnings[targetid] == 3)
{
Kick(targetid);
format(string, sizeof(string), "%s has been kicked for earning 3 warnings !", targetid);
SendClientMessageToAll(-1, string);
}
return 1;
}
I made you a very basic, warn system, maybe you could finish it
pawn Код:
|