warn command
#1

Код:
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
Reply
#2

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;
	}
Reply
#3

thank you
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)