23.02.2012, 20:34
'Sup y'all?
Well, I'm makin' a warn-command, which kicks the player when he gets more than 3 warnings, but it doesn't work! When I warn myself, there's written: 98/3 warnings, and the player won't after 3 times get kicked...Okay, I get no errors, but I still am not sure what to do:
Well, I'm makin' a warn-command, which kicks the player when he gets more than 3 warnings, but it doesn't work! When I warn myself, there's written: 98/3 warnings, and the player won't after 3 times get kicked...Okay, I get no errors, but I still am not sure what to do:
PHP код:
#define MAX_WARNINGS 3
PHP код:
CMD:warn(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] >= 3)
{
new Target;
new Reason[50];
// if(sscanf(params, "us[50]", Target)) SendClientMessage(playerid, COLOR_LIGHTBLUE, "USAGE: /warn [playerid] [reason]");
if(!sscanf(params, "us[50]", Target, 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[256];
new TargetString[256];
WarnLog(Target);
format(MyString,sizeof MyString, "You have warned %s! (Reason: %s) (Warnings: %d/%d)", tname, Reason, PlayerInfo[Target][Warnings],MAX_WARNINGS);
format(TargetString,sizeof TargetString, "Administrator %s has given %s a warning! Reason: %s (Warnings: %d/%d)", pname, tname, Reason,PlayerInfo[Target][Warnings],MAX_WARNINGS);
SendClientMessage(Target, COLOR_RED, TargetString);
SendClientMessageToAll(COLOR_YELLOW, MyString);
if(PlayerInfo[Target][Warnings] == MAX_WARNINGS)
{
new kstring[256];
new name[MAX_PLAYER_NAME];
GetPlayerName(Target,name,sizeof(name));
format(kstring,sizeof(kstring),"Player %s (ID:%d) got kicked! (Reason: Maximum warnings)", name, Target);
SendClientMessageToAll(COLOR_RED,kstring);
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;
}
PHP код:
stock WarnKick(Target)
{
new File:Log = fopen(warnPATH, io_append);
new logData[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(Target,name,sizeof(name));
new fTime[6];
getdate(fTime[0], fTime[1], fTime[2]);
gettime(fTime[3], fTime[4], fTime[5]);
format(logData, sizeof logData, "[%02d/%02d/%04d || %02d:%02d:%02d]%s got kicked for reaching maximum warnings!\r\n", fTime[2], fTime[1], fTime[0], fTime[3], fTime[4], fTime[5], name);
fwrite(Log, logData);
fclose(Log);
return 1;
}
stock WarnLog(Target)
{
new File:Log = fopen(warnPATH, io_append);
new logData[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(Target,name,sizeof(name));
new fTime[6];
getdate(fTime[0], fTime[1], fTime[2]);
gettime(fTime[3], fTime[4], fTime[5]);
format(logData, sizeof logData, "[%02d/%02d/%04d || %02d:%02d:%02d]%s got warned!\r\n", fTime[2], fTime[1], fTime[0], fTime[3], fTime[4], fTime[5], name);
fwrite(Log, logData);
fclose(Log);
return 1;
}