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;
}
: error 017: undefined symbol "Warns"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 Код:
|