// Warn a player COMMAND:warn(playerid, params[]) { new PlayerToWarn, Reason[128], ReasonMsg[128], Name[24]; // Send the command to all admins so they can see it SendAdminText(playerid, "/warn", params); // Check if the player has logged in if (APlayerData[playerid][LoggedIn] == true) { // Check if the player's admin-level is at least 1 if (APlayerData[playerid][PlayerLevel] >= 1) { if (sscanf(params, "us[128]", PlayerToWarn, Reason)) SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/warn <PlayerToWarn> <Reason>\""); else if (IsPlayerConnected(PlayerToWarn)) // If the player is a valid playerid (he's connected) { // Increase the number of warnings APlayerData[PlayerToWarn][Warnings]++; // Get the name of the player who warned the player GetPlayerName(playerid, Name, sizeof(Name)); // Send the warned player a message who warned him and why he's been warned format(ReasonMsg, 128, "You have been warned by %s %s", AdminLevelName[APlayerData[playerid][PlayerLevel]], Name); SendClientMessage(PlayerToWarn, 0xFF0000FF, ReasonMsg); format(ReasonMsg, 128, "Reason: %s", Reason); SendClientMessage(PlayerToWarn, 0xFF0000FF, ReasonMsg); format(ReasonMsg, 128, "~w~Warning %i/%i: ~r~%s~w~", APlayerData[PlayerToWarn][Warnings], AutoKickWarnings, Reason); GameTextForPlayer(PlayerToWarn, ReasonMsg, 5000, 4); // Get the name of the warned player GetPlayerName(PlayerToWarn, Name, sizeof(Name)); // Let the admin know who has been warned and why format(ReasonMsg, 128, "You have warned %s (warnings: %i/%i)", Name, APlayerData[PlayerToWarn][Warnings], AutoKickWarnings); SendClientMessage(playerid, 0x00FF00FF, ReasonMsg); format(ReasonMsg, 128, "Reason: %s", Reason); SendClientMessage(playerid, 0xFF0000FF, ReasonMsg); // Automatically kick the player if he got 3 warnings (if autokick is enabled) if ((APlayerData[PlayerToWarn][Warnings] == AutoKickWarnings) && (AutoKickAfterWarn == 1)) Kick(PlayerToWarn); } else SendClientMessage(playerid, 0xFF0000FF, "That player isn't online"); } else return 0; } else return 0; // Let the server know that this was a valid command return 1; }
// Kicks a player with a reason COMMAND:kick(playerid, params[]) { new PlayerToKick, Reason[128], ReasonMsg[128], Name[24]; // Send the command to all admins so they can see it SendAdminText(playerid, "/kick", params); // Check if the player has logged in if (APlayerData[playerid][LoggedIn] == true) { // Check if the player's admin-level is at least 1 if (APlayerData[playerid][PlayerLevel] >= 1) { if (sscanf(params, "us[128]", PlayerToKick, Reason)) SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/kick <PlayerToKick> <Reason>\""); else if (IsPlayerConnected(PlayerToKick)) // If the player is a valid playerid (he's connected) { // Get the name of the player who warned the player GetPlayerName(playerid, Name, sizeof(Name)); // Send the warned player a message who kicked him and why he's been kicked format(ReasonMsg, 128, "You have been kicked by %s %s", AdminLevelName[APlayerData[playerid][PlayerLevel]], Name); SendClientMessage(PlayerToKick, 0xFF0000FF, ReasonMsg); format(ReasonMsg, 128, "Reason: %s", Reason); SendClientMessage(PlayerToKick, 0xFF0000FF, ReasonMsg); // Kick the player Kick(PlayerToKick); } else SendClientMessage(playerid, 0xFF0000FF, "That player isn't online"); } else return 0; } else return 0; // Let the server know that this was a valid command return 1; }
dcmd_warn(playerid,params[]) { if(PlayerInfo[playerid][Level] >= 1) { new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /warn [playerid] [reason]"); new warned = strval(tmp), str[128]; if(PlayerInfo[warned][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin"); if(IsPlayerConnected(warned) && warned != INVALID_PLAYER_ID) { if(warned != playerid) { CMDMessageToAdmins(playerid,"WARN"); PlayerInfo[warned][Warnings]++; if( PlayerInfo[warned][Warnings] == MAX_WARNINGS) { format(str, sizeof (str), "***Administrator \"%s\" has kicked \"%s\". (Reason: %s) (Warning: %d/%d)***", pName(playerid), pName(warned), params[1+strlen(tmp)], PlayerInfo[warned][Warnings], MAX_WARNINGS); SendClientMessageToAll(grey, str); SaveToFile("KickLog",str); Kick(warned); return PlayerInfo[warned][Warnings] = 0; } else { format(str, sizeof (str), "***Administrator \"%s\" has given \"%s\" a warning. (Reason: %s) (Warning: %d/%d)***", pName(playerid), pName(warned), params[1+strlen(tmp)], PlayerInfo[warned][Warnings], MAX_WARNINGS); return SendClientMessageToAll(yellow, str); } } else return SendClientMessage(playerid, red, "ERROR: You cannot warn yourself"); } else return SendClientMessage(playerid, red, "ERROR: Player is not connected"); } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); }
dcmd_kick(playerid,params[]) { if(PlayerInfo[playerid][LoggedIn] == 1) { if(PlayerInfo[playerid][Level] >= 2) { new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /kick [playerid] [reason]"); new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128]; player1 = strval(tmp); if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) { GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname)); CMDMessageToAdmins(playerid,"KICK"); if(!strlen(tmp2)) { format(string,sizeof(string),"%s has been kicked by Administrator %s [no reason given] ",playername,adminname); SendClientMessageToAll(grey,string); SaveToFile("KickLog",string); print(string); return Kick(player1); } else { format(string,sizeof(string),"%s has been kicked by Administrator %s [reason: %s] ",playername,adminname,params[2]); SendClientMessageToAll(grey,string); SaveToFile("KickLog",string); print(string); return Kick(player1); } } else return SendClientMessage(playerid, red, "Player is not connected or is yourself or is the highest level admin"); } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); } else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands"); }
You want it in zcmd?
And BTW what will be the difference between yours and LADMINS? I think your system is just fine. Any ways tell me if you want it in dcmd or zcmd Ill post the code accordingly. |
CMD:warn(playerid, params[])
{
if(PlayerInfo[playerid][Level] >= 1)
{
new
id,
reason[32]
;
if(sscanf(params, "us[32]", id, reason))
return SendClientMessage(playerid, red, "USAGE: /warn [playerid/PartOfName] [reason]");
if(PlayerInfo[id][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel])
return SendClientMessage(playerid, red, "ERROR: You cannot use this command on this admin");
if(IsPlayerConnected(id))
{
if(id == playerid)
return SendClientMessage(playerid, red, "ERROR: You cannot warn yourself");
CMDMessageToAdmins(playerid, "WARN");
PlayerInfo[id][pWarnings]++;
if(PlayerInfo[id][Warnings] == MAX_WARNINGS)
{
format(str, sizeof(str), "***Administrator \"%s\" has kicked \"%s\". (Reason: %s) (Warning: %d/%d)***",
pName(playerid), pName(id), reason, PlayerInfo[id][Warnings], MAX_WARNINGS);
SendClientMessageToAll(grey, str);
SaveToFile("KickLog", str);
Kick(id);
return PlayerInfo[id][Warnings] = 0;
}
else
{
format(str, sizeof (str), "***Administrator \"%s\" has given \"%s\" a warning. (Reason: %s) (Warning: %d/%d)***", pName(playerid), pName(id), reason, PlayerInfo[id][Warnings], MAX_WARNINGS);
return SendClientMessageToAll(yellow, str);
}
}
else SendClientMessage(playerid, red, "ERROR: Player is not connected");
}
else SendClientMessage(playerid, red, "ERROR: You are not a high enough level to use this command");
return 1;
}
C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\pawno\include\PPC_Dialogs.inc(503) : warning 219: local variable "pName" shadows a variable at a preceding level C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\pawno\include\PPC_Dialogs.inc(580) : warning 219: local variable "pName" shadows a variable at a preceding level C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\pawno\include\PPC_Dialogs.inc(646) : warning 219: local variable "pName" shadows a variable at a preceding level C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\pawno\include\PPC_Dialogs.inc(712) : warning 219: local variable "pName" shadows a variable at a preceding level C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\pawno\include\PPC_Dialogs.inc(744) : warning 219: local variable "pName" shadows a variable at a preceding level C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\gamemodes\PPC_Trucking.pwn(1489) : error 021: symbol already defined: "cmd_warn" C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\gamemodes\PPC_Trucking.pwn(1490) : error 017: undefined symbol "PlayerInfo" C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\gamemodes\PPC_Trucking.pwn(1490) : warning 215: expression has no effect C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\gamemodes\PPC_Trucking.pwn(1490) : error 001: expected token: ";", but found "]" C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\gamemodes\PPC_Trucking.pwn(1490) : error 029: invalid expression, assumed zero C:\Documents and Settings\dd\Desktop\truck server\PPC_Trucking\gamemodes\PPC_Trucking.pwn(1490) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 5 Errors.