[Ajuda] Problema com SSCANF2
#1

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

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}!"); 
   	}
}
Reply
#3

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

Reply
#4

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 
Reply
#5

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;

Reply
#6

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

@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.
Reply
#8

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


Forum Jump:


Users browsing this thread: 1 Guest(s)