SA-MP Forums Archive
[Ajuda] Tem como 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] Tem como sscanf? (/showthread.php?tid=571070)



Tem como sscanf? - Dayvison_ - 15.04.2015

Tem como eu colocar um parametro opcional em sscanf?
exemplo:
PHP код:
CMD:duel(playerid,params[])
{
    new 
id,arma1[20],arma2[20];
    if(
sscanf(params,"us[20]s[20]",id,arma1,arma2))    return Mensagem(playerid,USO,"/duel <Id/Nick> <Nome Arma1> <Nome Arma2(Opcional)>");

Queria fazer com que pudesse ser chamada o sscanf tanto assim:
PHP код:
if(sscanf("4 Eagle Shotgun","us[20]s[20]",id,arma1,arma2)) 
Como assim:
PHP код:
if(sscanf("4 Eagle","us[20]s[20]",id,arma1,arma2)) 



Re: Tem como sscanf? - arakuta - 16.04.2015

bom, sscanf retorna true quando nгo tem os parвmetros de forma correta. Basta fazer a segunda verificaзгo dentro da primeira

PHP код:
new idarma1[20], arma2[20];
// primeiro 3 parвmetros
if(sscanf("4 Eagle","us[20]s[20]",id,arma1,arma2))
{
    
// Aqui nгo teve 3 parвmetros. Verifique 2
    
if(sscanf("4 Eagle","us[20]",id,arma1))
        return 
SendClientMessage(playerid,-1,"Uso: /cmd ID Arma1 Arma 2 OU /cmd ID Arma1");
    
// 2 Parвmetros :D
    
return 1;
}
// 3 Parвmetros 
Agora se tem uma forma de parвmetro opcional dentro de 1 sscanf, eu particularmente desconheзo.


Edit: Dб pra fazer com um sscanf sу se vocк fazer o formato baseado no nъmero de parвmetros digitado no comando. Mas precisaria fazer um algoritmo mais complexo que 2 sscanf em condiзгo pra isso.


Re: Tem como sscanf? - Crayder - 16.04.2015

Код:
CMD:duel(playerid,params[]) 
{ 
    new id,arma1[20],arma2[20]; 
    if(sscanf(params,"us[20]S()[20]",id,arma1,arma2))    return Mensagem(playerid,USO,"/duel <Id/Nick> <Nome Arma1> <Nome Arma2(Opcional)>"); 
}
'S' - opcional
's' - ordinario

arakuta estб errado (sem ofensa). Use letras maiъsculas para os parвmetros opcionais.

- ****** Translate

http://webcache.******usercontent.co...s%22-Specifier