SA-MP Forums Archive
[Ajuda] Problema com SSCANF2 - 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] Problema com SSCANF2 (/showthread.php?tid=617964)



Problema com SSCANF2 - matheusdorado - 29.09.2016

Olб Pessoal, eu desenvolvi um comandinho para o Administrador aplicar um gmx.

Segue o Codigo:
PHP код:
CMD:gmx(playeridparams[])
{
    new 
string[135], Motivo[25];
     if(
PlayerInfo[playerid][Admin] <= 444 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"SERVER: Acesso Restrito! Vocк nгo й um {B22222} ADMIN MASTER {FFFFFF}!");
    else if(
sscanf(params"s"Motivo)) return SendClientMessage(playerid, -1"[ ERRO ] Use: /Gmx [Motivo]");
    
format(stringsizeof(string),"SERVER:{FFFFFF}ATENЗГO! {0000FF}O Administrador(a) {FFFFFF}%s {0000FF}Realizara um {FFFFFF}GMX {0000FF}em {FFFFFF}10 SEGUNDOS {0000FF}! Motivo: {FFFFFF}%s"PlayerName(playerid), Motivo);
    
SendClientMessageToAll(BRANCOstring);
    
TimerGMX(playerid);
    return 
1;

Quando entro no servidor e digito apenas /gmx, sem o motivo ele retorna a mensagem de erro normalmente, como deveria ser.
PHP код:
ERRO ] Use: /Gmx [Motivo
Porem o problema й quando eu coloco um motivo, ex: /gmx TESTE, ele repete a mensagem de erro do gmx.
PHP код:
ERRO ] Use: /Gmx [Motivo
E fica repetindo e nгo executa o cуdigo do gmx, mesmo com os parвmetros corretos, sendo assim, solicito a ajuda de vocкs, o problema й meu cуdigo? Fiz Algo errado? Qual a soluзгo?
Aguardo a resposta de vocкs.

Obs: Os comandos funcionavam porem todos os comandos que uso para sscanf pararam de funcionar. Ex /SetAdmin /Tapa /Tv /Gmx.

Atenciosamente,
Matheus Dorado


Re: Problema com SSCANF2 - Ermanhaut - 29.09.2016

Tente usar assim para ver se resolve seu problema.
Код:
CMD:gmx(playerid, params[]) 
{ 
    new string[135], Motivo[25];
    if(PlayerInfo[playerid][Admin] <= 444 && IsPlayerAdmin(playerid))
   	{
    		if(sscanf(params, "s", Motivo)) return SendClientMessage(playerid, -1, "[ ERRO ] Use: /Gmx [Motivo]");
    		format(string, sizeof(string),"SERVER:{FFFFFF}ATENЗГO! {0000FF}O Administrador(a) {FFFFFF}%s {0000FF}Realizara um {FFFFFF}GMX {0000FF}em {FFFFFF}10 SEGUNDOS {0000FF}! Motivo: {FFFFFF}%s", PlayerName(playerid), Motivo); 
    		SendClientMessageToAll(BRANCO, string); 
    		TimerGMX(playerid);
   	}
   	else
   	{
   		SendClientMessage(playerid, -1, "SERVER: Acesso Restrito! Vocк nгo й um {B22222} ADMIN MASTER {FFFFFF}!"); 
   	}
}



Re: Problema com SSCANF2 - Casttiel - 29.09.2016

Ex:
PHP код:
CMD:gmx(playeridparams[]) 

    new 
string[135], Motivo[25]; 
    if(
PlayerInfo[playerid][Admin] <= 444 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"SERVER: Acesso Restrito! Vocк nгo й um {B22222} ADMIN MASTER {FFFFFF}!"); 
    if(
sscanf(params"s[25]"Motivo)) return SendClientMessage(playerid, -1"[ ERRO ] Use: /Gmx [Motivo]"); 
    
format(stringsizeof(string),"SERVER:{FFFFFF}ATENЗГO! {0000FF}O Administrador(a) {FFFFFF}%s {0000FF}Realizara um {FFFFFF}GMX {0000FF}em {FFFFFF}10 SEGUNDOS {0000FF}! Motivo: {FFFFFF}%s"PlayerName(playerid), Motivo); 
    
SendClientMessageToAll(BRANCOstring); 
    
TimerGMX(playerid); 
    return 
true




Respuesta: Problema com SSCANF2 - SammyJ - 29.09.2016

Por ser somente um parвmetro, vocк pode usar a definiзгo isnull.
PHP код:
CMD:gmx(playeridparams[])
{
    new 
string[128];
    if(
PlayerInfo[playerid][Admin] <= 444 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"SERVER: Acesso Restrito! Vocк nгo й um {B22222} ADMIN MASTER {FFFFFF}!");
    else if(
isnull(params)) return SendClientMessage(playerid, -1"[ ERRO ] Use: /Gmx [Motivo]");
    
format(stringsizeof(string),"SERVER:{FFFFFF}ATENЗГO! {0000FF}O Administrador(a) {FFFFFF}%s {0000FF}Realizara um {FFFFFF}GMX {0000FF}em {FFFFFF}10 SEGUNDOS {0000FF}! Motivo: {FFFFFF}%s"PlayerName(playerid), params);
    
SendClientMessageToAll(BRANCOstring);
    
TimerGMX(playerid);
    return 
1;

Caso nгo tenha a definiзгo isnull, adicione no topo de sua GM
PHP код:
#if !defined isnull
    #define isnull(%1) \
        
((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif 



Re: Problema com SSCANF2 - matheusdorado - 29.09.2016

Obrigado a todos que me ajudaram, ams a unica soluзгo que deu certo foi a do Glederson_dom.
Obrigado Glederson_dom.

Porem estou cismado, sscanf precisa funcionar, algum erro esta passando por despercebido, pois o comando funcionava antes e agora parou.

Estranho nгo acham?

Comando Final:
PHP код:
CMD:gmx(playeridparams[])
{
    new 
string[165];
    if(
PlayerInfo[playerid][Admin] <= 444 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"SERVER: Acesso Restrito! Vocк nгo й um {B22222} ADMIN MASTER {FFFFFF}!");
    else if(
isnull(params)) return SendClientMessage(playerid, -1"[ ERRO ] Use: /Gmx [Motivo]");
    
SendClientMessageToAll(BRANCO,"________________________________{0000FF}||ADMINISTRAЗГO||{FFFFFF}__________________________________");
    
format(stringsizeof(string),"{0000FF}        O Admin{FFFFFF}%s {0000FF}Realizara um {FFFFFF}GMX {0000FF}em {FFFFFF}10 SEGUNDOS {0000FF}! Motivo: {FFFFFF}%s"PlayerName(playerid), params);
    
SendClientMessageToAll(BRANCOstring);
    
SendClientMessageToAll(BRANCO,"___________________________________________________________________________________");
    
TimerGMX(playerid);
    return 
1;




Respuesta: Re: Problema com SSCANF2 - SammyJ - 29.09.2016

Quote:
Originally Posted by matheusdorado
Посмотреть сообщение
Obrigado a todos que me ajudaram, ams a unica soluзгo que deu certo foi a do Glederson_dom.
Obrigado Glederson_dom.

Porem estou cismado, sscanf precisa funcionar, algum erro esta passando por despercebido, pois o comando funcionava antes e agora parou.

Estranho nгo acham?

Comando Final:
PHP код:
CMD:gmx(playeridparams[])
{
    new 
string[165];
    if(
PlayerInfo[playerid][Admin] <= 444 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"SERVER: Acesso Restrito! Vocк nгo й um {B22222} ADMIN MASTER {FFFFFF}!");
    else if(
isnull(params)) return SendClientMessage(playerid, -1"[ ERRO ] Use: /Gmx [Motivo]");
    
SendClientMessageToAll(BRANCO,"________________________________{0000FF}||ADMINISTRAЗГO||{FFFFFF}__________________________________");
    
format(stringsizeof(string),"{0000FF}        O Admin{FFFFFF}%s {0000FF}Realizara um {FFFFFF}GMX {0000FF}em {FFFFFF}10 SEGUNDOS {0000FF}! Motivo: {FFFFFF}%s"PlayerName(playerid), params);
    
SendClientMessageToAll(BRANCOstring);
    
SendClientMessageToAll(BRANCO,"___________________________________________________________________________________");
    
TimerGMX(playerid);
    return 
1;

nгo sei dizer oque pode estб ocorrendo, mais tente por assim.

By: @Castiell
PHP код:
CMD:gmx(playeridparams[])
{
    new 
string[135], Motivo[25];
    if(
PlayerInfo[playerid][Admin] <= 444 && !IsPlayerAdmin(playerid))
        return 
SendClientMessage(playerid, -1"SERVER: Acesso Restrito! Vocк nгo й um {B22222} ADMIN MASTER {FFFFFF}!");
    
    if(
sscanf(params"s[25]"Motivo))
        return 
SendClientMessage(playerid, -1"[ ERRO ] Use: /Gmx [Motivo]");
    
    
format(stringsizeof(string),"SERVER:{FFFFFF}ATENЗГO! {0000FF}O Administrador(a) {FFFFFF}%s {0000FF}Realizara um {FFFFFF}GMX {0000FF}em {FFFFFF}10 SEGUNDOS {0000FF}! Motivo: {FFFFFF}%s"PlayerName(playerid), Motivo);
    
SendClientMessageToAll(BRANCOstring);
    
TimerGMX(playerid);
    return 
1;

e veja tambйm se seu plugin estб atualizado.


Re: Problema com SSCANF2 - Casttiel - 29.09.2016

@Descupa o double poste.



Tenta dnv da maneira que eu fiz, da quele mйtodo tб correto, qualquer coisa me chama no skype.


Parabйns Glenderson lembra kkkkkk.


Respuesta: Re: Problema com SSCANF2 - SammyJ - 29.09.2016

Quote:
Originally Posted by Castiell
Посмотреть сообщение
@Descupa o double poste.



Tenta dnv da maneira que eu fiz, da quele mйtodo tб correto, qualquer coisa me chama no skype.


Parabйns Glenderson lembra kkkkkk.
kk nem vi que vocк tinha postado.