SA-MP Forums Archive
[Ajuda] pegar parametros que o player digitou no comando sem utilizar sscanf ? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] pegar parametros que o player digitou no comando sem utilizar sscanf ? (/showthread.php?tid=636381)



pegar parametros que o player digitou no comando sem utilizar sscanf ? - JhonnyBR - 26.06.2017

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 ?


Programando & Relaxando! - RazorGuigo - 26.06.2017

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




Re: pegar parametros que o player digitou no comando sem utilizar sscanf ? - HoodScript - 28.06.2017

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.


Re: pegar parametros que o player digitou no comando sem utilizar sscanf ? - IlanZ - 28.06.2017

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


Re: pegar parametros que o player digitou no comando sem utilizar sscanf ? - JhonnyBR - 29.06.2017

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


Re: pegar parametros que o player digitou no comando sem utilizar sscanf ? - Star01 - 29.06.2017

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.


Re: pegar parametros que o player digitou no comando sem utilizar sscanf ? - renatog - 30.06.2017

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.