[Ajuda] pegar parametros que o player digitou no comando sem utilizar sscanf ?
#1

eu queria pegar oque o player digitou sem utilizar sscanf o motivo й que o sscanf ta bugando na minha host quando eu o coloco as dialogs nгo pega tipo as seleзхes ficam sem funзгo e o dialog fecha , exemplo:

PHP код:

CMD
:trazer(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"{FF0000}Vocк nгo й admin!");
    new 
idESCOLHIDO;
    if(
sscanf(params"d"idESCOLHIDO)) return SendClientMessage(playerid, -1"{FF0000}Uso Correto: /trazer [id]");
       if(!
IsPlayerConnected(idESCOLHIDO)) return SendClientMessage(playerid, -1"{FF0000}Jogador nгo conectado!");
    if(
IsPlayerInAnyVehicle(idESCOLHIDO))
    {
        new 
Float:X,Float:Y,Float:Z,Float:AGetPlayerPos(playeridXYZ); GetPlayerFacingAngle(playerid,A);
        new 
interior GetPlayerInterior(playerid);
        new 
veiculo GetPlayerVehicleID(idESCOLHIDO);
          
SetVehiclePos(veiculo552);
          
SetPlayerInterior(idESCOLHIDOinterior);
          
LinkVehicleToInterior(veiculointerior);
     }
     else
     {
         new 
Float:X,Float:Y,Float:Z,Float:string[120]; GetPlayerPos(playeridXYZ); GetPlayerFacingAngle(playerid,A);
         
SetPlayerPos(idESCOLHIDO552);
         
format(stringsizeof(string), "{00FF00}Vocк trouxe o jogador: {FF0000}%s(%d) {00FF00}atй vocк"PlayerName(idESCOLHIDO), idESCOLHIDO);
         
SendClientMessage(playerid, -1string);
     }
    return 
1;

mais isso sem utilizar o sscanf teria como ?
Reply
#2

tem como fazer, mas recomendo ainda tentar resolver o problema com scanf, ele traz muitas funcionalidades, e desempenho, aos seus codes, alem de deixб-los facil e limpos!



segue o code sem scanf:
PHP код:
CMD:trazer(playeridparams[]) 

    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"{FF0000}Vocк nгo й admin!"); 
    new 
idESCOLHIDOstrval(param); //linha alterada, para converter o texto, em int
                                    //sscanf removido
       
if(!IsPlayerConnected(idESCOLHIDO)) return SendClientMessage(playerid, -1"{FF0000}Jogador nгo conectado!"); 
    if(
IsPlayerInAnyVehicle(idESCOLHIDO)) 
    { 
        new 
Float:X,Float:Y,Float:Z,Float:AGetPlayerPos(playeridXYZ); GetPlayerFacingAngle(playerid,A); 
        new 
interior GetPlayerInterior(playerid); 
        new 
veiculo GetPlayerVehicleID(idESCOLHIDO); 
          
SetVehiclePos(veiculo552); 
          
SetPlayerInterior(idESCOLHIDOinterior); 
          
LinkVehicleToInterior(veiculointerior); 
     } 
     else 
     { 
         new 
Float:X,Float:Y,Float:Z,Float:string[120]; GetPlayerPos(playeridXYZ); GetPlayerFacingAngle(playerid,A); 
         
SetPlayerPos(idESCOLHIDO552); 
         
format(stringsizeof(string), "{00FF00}Vocк trouxe o jogador: {FF0000}%s(%d) {00FF00}atй vocк"PlayerName(idESCOLHIDO), idESCOLHIDO); 
         
SendClientMessage(playerid, -1string); 
     } 
    return 
1

Reply
#3

Quote:
Originally Posted by Star01
Посмотреть сообщение
PHP код:
CMD:trazer(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"{FF0000}Vocк nгo й admin!");
//params zcmd
    
if(isnull(params)) return SendClientMessage(playerid, -1"{FF0000}Uso Correto: /trazer [id]");
    new 
idESCOLHIDO strval(params);
//fim params zcmd
    
if(!IsPlayerConnected(idESCOLHIDO)) return SendClientMessage(playerid, -1"{FF0000}Jogador nгo conectado!");
    new 
Float:X,Float:Y,Float:Z,Float:A;
    if(
IsPlayerInAnyVehicle(idESCOLHIDO))
    {
        new 
            
interior GetPlayerInterior(playerid),
            
veiculo GetPlayerVehicleID(idESCOLHIDO)
        ;
        
        
GetPlayerPos(playeridXYZ);
        
GetPlayerFacingAngle(playerid,A);
        
SetVehiclePos(veiculo552);
        
SetPlayerInterior(idESCOLHIDOinterior);
        
LinkVehicleToInterior(veiculointerior);
    }
    else
    {
        new 
string[65 MAX_PLAYER_NAME];
        
        
GetPlayerPos(playeridXYZ);
        
GetPlayerFacingAngle(playerid,A);
        
SetPlayerPos(idESCOLHIDO552);
        
format(stringsizeof(string), "{00FF00}Vocк trouxe o jogador: {FF0000}%s(%d) {00FF00}atй vocк",PlayerName(idESCOLHIDO), idESCOLHIDO);
        
SendClientMessage(playerid, -1string);
    }
    return 
1;

* Obs: Vocк pode usar os prуprios parвmetro do zcmd, porйm
o zcmd sу permite usar apenas 1(um) parвmetro
Exemplo: /GiveWeapon [arma]

e se vocк estiver usando Sscanf, ou a velha strtok, poderб fazer mais
Exemplo: /GiveWeapon [id] [arma] [muniзгo]

Espero que tenha entendido.
nгo mesmo! O zcmd aceita bem mais que um nгo inventa coisa.
Reply
#4

Quote:
Originally Posted by HoodScript
Посмотреть сообщение
nгo mesmo! O zcmd aceita bem mais que um nгo inventa coisa.
Ele ta falando do isnull e nгo do zcmd em si
Reply
#5

deixa pra la pessoal nгo era o sscanf q estava atrapalhando os dialogs dos outros fs e sim outro fs que eu estava usando =3
Reply
#6

Quote:
Originally Posted by IlanZ
Посмотреть сообщение
Ele ta falando do isnull e nгo do zcmd em si
Nгo, eu estava falando do zcmd mesmo, estarei no aguardo sobre tal exemplo
de multi parвmetros, sem sscanf e strtok vindo dele, para me corrigir.
Reply
#7

Quote:
Originally Posted by Star01
Посмотреть сообщение
Nгo, eu estava falando do zcmd mesmo, estarei no aguardo sobre tal exemplo
de multi parвmetros, sem sscanf e strtok vindo dele, para me corrigir.
"params[]" й uma string contendo tudo o que foi digitado apуs o comando. Se eu digitar "/teste olб mundo", o "params[]" conterб "olб mundo". Da pra gente pegar os parвmetros manualmente procurando pelos espaзos, mas й tanto trabalho que nгo vale a pena se temos o sscanf.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)