[Ajuda] Apenas determinados nick podem usar algum comando
#1

Ola, qual funзгo devo usar para restringir um comando para apenas alguns determinados nick poderem usar esse comando.

Esse й o "tal" comando
pawn Код:
if(strcmp(cmd, "/cnn", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if (PlayerInfo[playerid][pAdmin] >= 1)
            {
                GetPlayerName(playerid, sendername, sizeof(sendername));
                new length = strlen(cmdtext);
                while ((idx < length) && (cmdtext[idx] <= ' '))
                {
                    idx++;
                }
                new offset = idx;
                new result[64];
                while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                {
                    result[idx - offset] = cmdtext[idx];
                    idx++;
                }
                result[idx - offset] = EOS;
                if(!strlen(result))
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "USE: /cnn [cnn formato ~n~=NovaLinha ~r~=Vermelho ~g~=Verde ~b~=Azul ~w~=Branco ~y~=Amarelo ~l~=Preto]");
                    return 1;
                }
                else
                {
                    format(string, sizeof(string), "~b~%s: ~w~%s",sendername,result);
                }
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                    if(IsPlayerConnected(i))
                    {
                        GameTextForPlayer(i, string, 5000, 3);
                    }
                }
                return 1;
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   Vocк nгo estб autorizado a usar este comando!");
                return 1;
            }
        }
        return 1;
    }
Reply
#2

coloca assim
PHP код:
if(strfind(Nome(playerid),"[ARE]Garotin_[R]",true) != -1
    
if(strcmp(cmd"/cnn"true) == 0)
    {
        
GetPlayerName(playeridsendernamesizeof(sendername));
        if(
strfind(sendername,"Seu_Nome",true) != -1)
        {
            if (
PlayerInfo[playerid][pAdmin] >= 1)
            {
                new 
length strlen(cmdtext);
                while ((
idx length) && (cmdtext[idx] <= ' '))
                {
                    
idx++;
                }
                new 
offset idx;
                new 
result[64];
                while ((
idx length) && ((idx offset) < (sizeof(result) - 1)))
                {
                    
result[idx offset] = cmdtext[idx];
                    
idx++;
                }
                
result[idx offset] = EOS;
                if(!
strlen(result))
                {
                    
SendClientMessage(playeridCOLOR_GRAD2"USE: /cnn [cnn formato ~n~=NovaLinha ~r~=Vermelho ~g~=Verde ~b~=Azul ~w~=Branco ~y~=Amarelo ~l~=Preto]");
                    return 
1;
                }
                else
                {
                    
format(stringsizeof(string), "~b~%s: ~w~%s",sendername,result);
                }
                for(new 
0MAX_PLAYERSi++)
                {
                    if(
IsPlayerConnected(i))
                    {
                        
GameTextForPlayer(istring50003);
                    }
                }
                return 
1;
            }
            else
            {
                
SendClientMessage(playeridCOLOR_GRAD1"   Vocк nгo estб autorizado a usar este comando!");
                return 
1;
            }
        }
        return 
1;
    } 
@Edit
Qualquer erro me avise
Reply
#3

Quote:
Originally Posted by garotin
Посмотреть сообщение
coloca assim
PHP код:
if(strfind(Nome(playerid),"[ARE]Garotin_[R]",true) != -1
    
if(strcmp(cmd"/cnn"true) == 0)
    {
        
GetPlayerName(playeridsendernamesizeof(sendername));
        if(
strfind(sendername,"Seu_Nome",true) != -1)
        {
            if (
PlayerInfo[playerid][pAdmin] >= 1)
            {
                new 
length strlen(cmdtext);
                while ((
idx length) && (cmdtext[idx] <= ' '))
                {
                    
idx++;
                }
                new 
offset idx;
                new 
result[64];
                while ((
idx length) && ((idx offset) < (sizeof(result) - 1)))
                {
                    
result[idx offset] = cmdtext[idx];
                    
idx++;
                }
                
result[idx offset] = EOS;
                if(!
strlen(result))
                {
                    
SendClientMessage(playeridCOLOR_GRAD2"USE: /cnn [cnn formato ~n~=NovaLinha ~r~=Vermelho ~g~=Verde ~b~=Azul ~w~=Branco ~y~=Amarelo ~l~=Preto]");
                    return 
1;
                }
                else
                {
                    
format(stringsizeof(string), "~b~%s: ~w~%s",sendername,result);
                }
                for(new 
0MAX_PLAYERSi++)
                {
                    if(
IsPlayerConnected(i))
                    {
                        
GameTextForPlayer(istring50003);
                    }
                }
                return 
1;
            }
            else
            {
                
SendClientMessage(playeridCOLOR_GRAD1"   Vocк nгo estб autorizado a usar este comando!");
                return 
1;
            }
        }
        return 
1;
    } 
@Edit
Qualquer erro me avise
deu certo aki, vlw
Reply
#4

O problema de usar strfind para checar, por exemplo, se o nome do jogador й Seu_Nome, й que a verificaзгo й burlada se o jogador tiver a substring "Seu_Nome" no seu nome.



Por isso, no cуdigo postado acima, troque isto :


PHP код:
if(strfind(sendername,"Seu_Nome",true) != -1
Por:


PHP код:
if(strcmp(sendername"Seu_Nome"false) == 0


Espero ter ajudado .
Reply
#5

Caso queira adicionar mais nicknames na verificaзгo, use || no final de cada strcmp.
Exemplo:
Код:
if(!strcmp(sendername, "Nick 1", false) || !strcmp(sendername, "Nick 2", false))
{
    // aqui o cуdigo que irб executar caso o nick do jogador for igual a um dos 2 acima definidos...
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)