24.02.2012, 07:52
This still doesn't work, I don't know why... I can warn myself infinite times, starting from 98/3, and I don't even have to put an ID or reason for warning!
Here my command again:
Here my command again:
PHP код:
COMMAND:warn(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] >= 3)
{
new Target;
new Reason[50];
if(sscanf(params, "us[50]", Target,Reason)) SendClientMessage(playerid, COLOR_LIGHTBLUE, "USAGE: /warn [playerid] [reason]");
{
//if(Target == playerid) return SendClientMessage(playerid, COLOR_RED, "SERVER: Cant perform this command on yourself!" );
if(!IsPlayerConnected(Target))
return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected!");
if(PlayerInfo[Target][pAdmin] > PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_RED,"ERROR: You can't perform this command on Admins that are higher than your level!");
PlayerInfo[Target][Warnings]++;
new tname[MAX_PLAYER_NAME];
GetPlayerName(Target,tname,sizeof(tname));
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
new MyString[128];
WarnLog(Target);
format(MyString,sizeof MyString, "You have warned %s! (Reason: %s) (Warnings: %d/%d)", tname, Reason, PlayerInfo[Target][Warnings],MAX_WARNINGS);
SendClientMessage(Target, COLOR_RED, MyString);
format(MyString,sizeof MyString, "Administrator %s has given %s a warning! Reason: %s (Warnings: %d/%d)", pname, tname, Reason,PlayerInfo[Target][Warnings],MAX_WARNINGS);
SendClientMessageToAll(COLOR_YELLOW, MyString);
if(PlayerInfo[Target][Warnings] == MAX_WARNINGS)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(Target,name,sizeof(name));
format(MyString,sizeof(MyString),"Player %s (ID:%d) got kicked! (Reason: Maximum warnings)", name, Target);
SendClientMessageToAll(COLOR_RED,MyString);
PlayerInfo[Target][Warnings] = 0;
WarnKick(Target);
Kick(Target);
}
}
}
else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be level 3 to perform this command!");
return 1;
}