warn command -
Flo_White - 27.02.2009
Код:
dcmd_warn(playerid,params[])
{
new opfer,string[128],string1[128],grund,oname[MAX_PLAYER_NAME],warnings,t,mo,y,h,minu,s;
warnings = PlayerData[playerid][Warns];
gettime(h,minu,s); getdate(t,mo,y);
if(PlayerData[playerid][Level] >= 1)
{
if(sscanf(params,"us",opfer,grund)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /warn [playerid] [reason]");
if (!IsPlayerConnected(opfer)) return SendClientMessage(playerid, COLOR_SYSTEM, "Invalid ID!");
PlayerData[opfer][Warns]++;
GetPlayerName(opfer,oname,sizeof(oname));
format(string,sizeof(string),"[Server] %s has been warned by Administrator %s [Reason: %s] (%d/3)",oname,PlayerName(playerid),grund,warnings);
SendClientMessageToAll(COLOR_YELLOW,string);
format(string1,sizeof(string1),"%s has been warned by Administrator %s [Reason: %s] (%d/3) (%d.%d.%d)",oname,PlayerName(playerid),grund,warnings,t,mo,y);
WarnLog(string1);
return 1;
}
if(PlayerData[opfer][Warns] == 3)
{
GetPlayerName(opfer,oname,sizeof(oname));
SendClientMessage(playerid, COLOR_RED, "You have been kicked. Reason: (3 Warnings)");
format(string, sizeof(string), "[Server] %s has been kicked by Administrator %s [Reason: 3 Warnings]", oname, PlayerName(playerid));
format(string1,sizeof(string1),"[Server] %s has been kicked by Administrator %s [Reason: 3 Warnings] (%d.%d.%d || %d:%d:%d)",oname,PlayerName(playerid),t,mo,y,h,minu,s);
KickLog(string1);
Kick(opfer);
return 1;
}
else return SendClientMessage(playerid,COLOR_RED,"Admins only!");
}
it start at (0/3) but it should start (1/3). and when i warn it goes up to 3 and then to 4,5,6... but after 3 warnings it should kick the guy who got warned the third time :/
greetings
Re: warn command -
Jefff - 27.02.2009
Maybe that.
Код:
dcmd_warn(playerid,params[])
{
new opfer,string[128],string1[128],grund,oname[MAX_PLAYER_NAME],t,mo,y,h,minu,s;
gettime(h,minu,s); getdate(t,mo,y);
if(PlayerData[playerid][Level] >= 1)
{
if(sscanf(params,"us",opfer,grund)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /warn [playerid] [reason]");
if (!IsPlayerConnected(opfer)) return SendClientMessage(playerid, COLOR_SYSTEM, "Invalid ID!");
PlayerData[opfer][Warns]++;
GetPlayerName(opfer,oname,sizeof(oname));
format(string,sizeof(string),"[Server] %s has been warned by Administrator %s [Reason: %s] (%d/3)",oname,PlayerName(playerid),grund,PlayerData[opfer][Warns]);
SendClientMessageToAll(COLOR_YELLOW,string);
format(string1,sizeof(string1),"%s has been warned by Administrator %s [Reason: %s] (%d/3) (%d.%d.%d)",oname,PlayerName(playerid),grund,PlayerData[opfer][Warns],t,mo,y);
WarnLog(string1);
if(PlayerData[opfer][Warns] == 3)
{
SendClientMessage(playerid, COLOR_RED, "You have been kicked. Reason: (3 Warnings)");
format(string, sizeof(string), "[Server] %s has been kicked by Administrator %s [Reason: 3 Warnings]", oname, PlayerName(playerid));
format(string1,sizeof(string1),"[Server] %s has been kicked by Administrator %s [Reason: 3 Warnings] (%d.%d.%d || %d:%d:%d)",oname,PlayerName(playerid),t,mo,y,h,minu,s);
KickLog(string1);
Kick(opfer);
}
}
return 1;
}
U cant place here return 1; because U stop the command here and this not check the 3 warns
Код:
if(sscanf(params,"us",opfer,grund)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /warn [playerid] [reason]");
if (!IsPlayerConnected(opfer)) return SendClientMessage(playerid, COLOR_SYSTEM, "Invalid ID!");
PlayerData[opfer][Warns]++;
GetPlayerName(opfer,oname,sizeof(oname));
format(string,sizeof(string),"[Server] %s has been warned by Administrator %s [Reason: %s] (%d/3)",oname,PlayerName(playerid),grund,warnings);
SendClientMessageToAll(COLOR_YELLOW,string);
format(string1,sizeof(string1),"%s has been warned by Administrator %s [Reason: %s] (%d/3) (%d.%d.%d)",oname,PlayerName(playerid),grund,warnings,t,mo,y);
WarnLog(string1);
return 1;
}
Re: warn command -
Flo_White - 27.02.2009
thank you