Cant use the dcmd/sscanf
#3

I can see a couple of problems.
First of all, if you're using SSCANF2, it should be
pawn Код:
if(sscanf(params, "us[64]", targetid, reason)) [...]
If you're using SSCANF 1, it should be
pawn Код:
if(sscanf(params, "us", targetid, reason)) [...]
But I highly recommend you to use SSCANF2.

Let's try this:

At OnPlayerCommandText:
pawn Код:
dcmd(kick, 4, cmdtext);
Somewhere in your script:
pawn Код:
dcmd_kick(playerid, params[])
{
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    if(!IsPlayerAdmin(playerid)) return 0;

    new targetid, reason[64], string[128];
    if(sscanf(params, "us[64]", targetid, reason)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kick [playerid/partofname] [reason]");

    if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_RED, "Player not connected or is yourself!");

    format(string, sizeof(string), "%s has been kicked by Rcon Admin (Reason: %s)",pName, reason);
    SendClientMessageToAll(COLOR_RED, string); // The yellow define will be up!
    Kick(targetid);
}
If it still doesn't work, try to define DCMD again, but then this line:
pawn Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
It is possible you made a typo at defining DCMD.
Reply


Messages In This Thread
Cant use the dcmd/sscanf - by bijoyekuza - 19.03.2011, 10:22
Re: Cant use the dcmd/sscanf - by iJumbo - 19.03.2011, 10:27
Re: Cant use the dcmd/sscanf - by Biesmen - 19.03.2011, 10:31
[No subject] - by bijoyekuza - 19.03.2011, 11:07
Re: Cant use the dcmd/sscanf - by Biesmen - 19.03.2011, 11:11

Forum Jump:


Users browsing this thread: 4 Guest(s)