[Ajuda] Tem como sscanf?
#1

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)) 
Reply
#2

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.
Reply
#3

Код:
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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)