Dcmd_ban help
#1

Hello,I don't know how to fix this.My Ban command:

Код:
dcmd_ban(playerid, params[])
{
	if(gPlayerLogged[playerid] = 1) {
		if(PlayerInfo[playerid][pAdminLevel] >= 1) {
		new tmp[256], tmp2[256];
		tmp = strtok(params)
		tmp2 = strtok(params)
        if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /ban [playerid] [reason]");
		if(!strlen(tmp2)) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must give a reason");
		strval(tmp) = playerid;
        new string[128];
        new playername[MAX_PLAYER_NAME];
        GetPlayerName(playerid, playername, sizeof(playername));
        format(string,sizeof(string),"%s have been banned from this server[Reason: %s]",playername,params[2]);
        SendClientMessageToAll(COLOR_RED,string);
        BanEx(playerid,string);
        }
        else{
        SendClientMessage(playerid, COLOR_RED, "You are not admin.");
        }
	  }
   return;
}
and my warnings and erros:
Код:
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2066) : warning 211: possibly unintended assignment
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2069) : warning 202: number of arguments does not match definition
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2070) : error 001: expected token: ";", but found "-identifier-"
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2070) : warning 202: number of arguments does not match definition
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2071) : error 001: expected token: ";", but found "if"
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2073) : error 022: must be lvalue (non-constant)
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2073) : warning 215: expression has no effect
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2085) : warning 217: loose indentation
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2085) : warning 209: function "dcmd_ban" should return a value
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Errors.
Any help ?
Reply
#2

1 error fix:
you have:
pawn Код:
return;
}
and you should have:
pawn Код:
return 1;
}
And now un untested thinks...
Try replace
pawn Код:
tmp = strtok(params)
tmp2 = strtok(params)
for
pawn Код:
tmp = strtok(params);
tmp2 = strtok(params);
Becoming this:

pawn Код:
dcmd_ban(playerid, params[])
{
    if(gPlayerLogged[playerid] = 1) {
        if(PlayerInfo[playerid][pAdminLevel] >= 1) {
        new tmp[256], tmp2[256];
        tmp = strtok(params);
        tmp2 = strtok(params);
        if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /ban [playerid] [reason]");
        if(!strlen(tmp2)) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must give a reason");
        strval(tmp) = playerid;
        new string[128];
        new playername[MAX_PLAYER_NAME];
        GetPlayerName(playerid, playername, sizeof(playername));
        format(string,sizeof(string),"%s have been banned from this server[Reason: %s]",playername,params[2]);
        SendClientMessageToAll(COLOR_RED,string);
        BanEx(playerid,string);
        }
        else{
        SendClientMessage(playerid, COLOR_RED, "You are not admin.");
        }
      }
   return 1;
}
Reply
#3

Now I am getting 1 error and some warnings:
Код:
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2068) : warning 211: possibly unintended assignment
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2072) : warning 202: number of arguments does not match definition
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2073) : warning 202: number of arguments does not match definition
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2076) : error 022: must be lvalue (non-constant)
C:\Users\bendra\Desktop\Samp Serveriai\Serv\gamemodes\LSTW2v2.pwn(2076) : warning 215: expression has no effect
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
Reply
#4

what is the mysteries line 2076?
Reply
#5

Use sscanf alot faster.

pawn Код:
dcmd_ban(playerid, params[])
{
    new pID;
    if(PlayerInfo[playerid][pAdminLevel] >= 1) {
    if(sscanf(params, "us[128]", pID, params[2])) return SendClientMessage(playerid, Red, "USAGE: /ban [playerid] [reason]");
    if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid, Red, "This player is not connected");
    new string[128];
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername, sizeof(playername));
    format(string,sizeof(string),"%s have been banned from this server[Reason: %s]",playername,params[2]);
    SendClientMessageToAll(Red,string);
    Ban(pID);
    } else if(PlayerInfo[playerid][pAdminLevel] == 0) return SendClientMessage(playerid, Red, "You are not admin.");
    return 1;
}
Reply
#6

Tell me what is the 2076 line plz
Reply
#7

ok with sscanf works
Reply
#8

hum... isn't bad a "Thanks guys" but ok....
Reply
#9

Thanks guys ,but how to show Admin name who banned too ?
Reply
#10

Some think like:
Код:
new adminname;
adminname = GetPlayerName(playerid);

   format(string,sizeof(string),"%s have been banned from this server[Reason: %s][Admin: %s]",playername,params[2],adminname);
Some think like that ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)