How to check if player didnt enter a reason?
#1

How would i check if a player didnt enter a reason?

pawn Код:
CMD:kick(playerid, params[])
{
    new id, reason;
    new string[128];
    if(!(BaseInfo[playerid][AdminLevel] > 1)) return SendClientMessage(playerid, COLOR_RED, "You are not an administrator with the required level");
    if(sscanf(params, "uz", id, reason)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kick [PlayerID/PartOfName] [Reason]");
    if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "Player not Found");
    if(BaseInfo[id][AdminLevel] > 4) return SendClientMessage(playerid, COLOR_RED, "Cannot kick the Highest Level Admin");
    if(id == playerid) return SendClientMessage(playerid, COLOR_RED, "Cannot kick Yourself");
   
    if(WHATEVERHERE(reason)) {
        format(string, sizeof string, "Administrator %s has kicked %s with reason: no reason given", GetPlayersName(playerid), GetPlayersName(id));
        SendClientMessageToAll(COLOR_BLUE, string);
   
        Kick(id);
    } else {
        format(string, sizeof string, "Administrator %s has kicked %s with reason: %s", GetPlayersName(playerid), GetPlayersName(id), reason);
        SendClientMessageToAll(COLOR_BLUE, string);

        Kick(id);
    }
    return 1;
}
Does anyone know how i check if they didnt enter one?
Reply
#2

z is an optional string in sscanf. You need to replace it with s.
Код:
if(sscanf(params, "us", id, reason))
Reply
#3

Maybe

pawn Код:
if(!reason[0]) { // reason not entered
?
Reply
#4

Quote:
Originally Posted by Mастерминд
z is an optional string in sscanf. You need to replace it with s.
Код:
if(sscanf(params, "us", id, reason))
Dude that wasnt my question!
I want a optional string
Quote:
Originally Posted by Dreft
Maybe

pawn Код:
if(!reason[0]) { // reason not entered
?
Maybe, Not sure, Will try ina bit
Reply
#5

I always use if(!strlen(reason) return Blablabla)
Reply


Forum Jump:


Users browsing this thread: