help warn?
#1

error 029: invalid expression, assumed zero "else"

CMD:warn(playerid, params[])
{
new string[128],reason[128],id;
if(sscanf(params, "uS(No Reason)[128]", id, reason)) return SendClientMessage(playerid, COLOR_WHITE,"Usage: /warn [ID][Reason]");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "ERROR: Player not connected.");
if(id == playerid) return SendClientMessage(playerid, COLOR_RED, "ERROR: You cannot warn yourself.");
if(PlayerInfo[playerid][pAdmin] < PlayerInfo[id][pAdmin]) return SendClientMessage(playerid, COLOR_RED, "ERROR: You cannot use this command on higher admin.");
PlayerInfo[id][warns] += 1;
{
format(string, sizeof(string), "%s has been warned by %s [Reason] %s [%i/3]", GetName(id), GetName(playerid), reason,PlayerInfo[id][warns]);
SendClientMessageToAll(COLOR_RED, string);
}
else
{
format(string, sizeof(string), "%s has been kicked by %s [Reason] %s [%i/3]", GetName(id), GetName(playerid), reason,PlayerInfo[id][warns]);
SendClientMessageToAll(COLOR_RED, string);
KickDelay(id);
}
return 1;
}
Reply
#2

Well, the problem is that this:

Код:
PlayerInfo[id][warns] += 1;
{
format(string, sizeof(string), "%s has been warned by %s [Reason] %s [%i/3]", GetName(id), GetName(playerid), reason,PlayerInfo[id][warns]);
SendClientMessageToAll(COLOR_RED, string);
}
Is wrong, therefore you can't use the "else" function.

The key { must be used after an "if" statement "Playerinfo[id][warns] += 1;" is just a function, not a statement.

Also, using just "else" won't give you the result that you need, you should add the following:

Код:
if(PlayerInfo[id][warns] == 3)
{
format(string, sizeof(string), "%s has been kicked by %s [Reason] %s [%i/3]", GetName(id), GetName(playerid), reason,PlayerInfo[id][warns]);
SendClientMessageToAll(COLOR_RED, string);
KickDelay(id);
}
Reply
#3

Thank you Cepillado <3
Reply
#4

Hey /unwarn?
Reply
#5

WTF xd

Quote:

Tween73 has been warned by Tween73 [Reason] test [1/3] <-- "1"

Tween73 has been warned by Tween73 [Reason] test [2/3] <-- "2"

Tween73 has been warned by Tween73 [Reason] test [3/3] <-- "3"

Tween73 has been kicked by Tween73 [Reason] test [3/3] <-- "4"

Server closed the connection.

Reply
#6

Sorry, change
Код:
if(PlayerInfo[id][warns] == 3)
to
Код:
if(PlayerInfo[id][warns] == 2)
Reply
#7

Thank you
Reply
#8

warn wtf Only "2"?
Tween73 has been kicked by Tween73 [Reason] test [2/3]
Reply
#9

PHP код:
CMD:warn(playeridparams[])
{
new 
string[128],reason[128],id;
if(
sscanf(params"uS(No Reason)[128]"idreason)) return SendClientMessage(playeridCOLOR_WHITE,"Usage: /warn [ID][Reason]");
if(
id == INVALID_PLAYER_ID) return SendClientMessage(playeridCOLOR_RED"ERROR: Player not connected.");
if(
id == playerid) return SendClientMessage(playeridCOLOR_RED"ERROR: You cannot warn yourself.");
if(
PlayerInfo[playerid][pAdmin] < PlayerInfo[id][pAdmin]) return SendClientMessage(playeridCOLOR_RED"ERROR: You cannot use this command on higher admin.");
PlayerInfo[id][warns] += 1;
if(
PlayerInfo[id]warns] < 3) {
format(stringsizeof(string), "%s has been warned by %s [Reason] %s [%i/3]"GetName(id), GetName(playerid), reason,PlayerInfo[id][warns]);
SendClientMessageToAll(COLOR_REDstring);
}
else
{
format(stringsizeof(string), "%s has been kicked by %s [Reason] %s [%i/3]"GetName(id), GetName(playerid), reason,PlayerInfo[id][warns]);
SendClientMessageToAll(COLOR_REDstring);
KickDelay(id);
}
return 
1;

That should work
Reply
#10

Fix change
Quote:

if(PlayerInfo[id]warns] < 3) {

to

Quote:

if(PlayerInfo[id][warns] < 3) {

Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)