[Ajuda] Problema em comandos '-'
#1

Boa Tarde.
Estou comparecendo aqui, pois meus comandos de "SmS" e "Chat Prуximo" estгo a dar problemas

Vejam as imagems;

Imagem do Chat Prуximo;

Como sai;

O problema deste й que o que o player digita nгo sai, somente a ultima letra...
Cуdigo;
PHP код:
CMD:p(playerid, params[])
{
    new 
str[128], proximo[128];
    
strmid(proximo, params, 2, strlen(params));
    if(!
strlen(proximo))
    {
       
SendClientMessage(playerid, 0x00CCCCAA, "Uso: /p [mensagem]");
       return 
1;
    }
    else
    {
       for(new 
P=0; P < MAX_PLAYERS; P++)
       {
          if(
GetDistanceBetweenPlayers(playerid, P) < 25)
          {
             
format(str, sizeof(str), "(Chat Prуximo) %s diz: %s", Nome(playerid), proximo);
             
SendClientMessage(P, 0x00EE00AA, str);
             }
          }
       }
       return 
1;
} 
__________________________________________________ __________________________

SmS;

Como sai:

Nesse os problemas sгo dois, o "SmS recebido" era para ir para o id que eu digitei no chat, e nгo para mim mesmo, e tambйm nгo estб indo a mensagem que eu digito. :/
Cуdigo;

PHP код:
CMD:sms(playerid, params[])
{
    new 
tmp[50], idx, string[128];
    new 
giveplayerid;
    
tmp = strtok(params,idx);
    if(!
strlen(tmp) || strlen(tmp) > 5)
    {
       
SendClientMessage(playerid, -1, "{FFFE10}|| INFO ||{FFFFFF} Uso: /pm [id] [mensagem]");
       return 
1;
    }
    new 
gMessage[128];
    
gMessage = strrest(params,idx);
    if(!
strlen(gMessage))
    {
       
SendClientMessage(playerid, -1, "{FFFE10}|| INFO ||{FFFFFF} Uso: /pm [id] [mensagem]");
       return 
1;
    }
    else
    {
        if(
IsPlayerConnected(playerid))
        {
            if(
IsPlayerConnected(giveplayerid))
            {
                
GetPlayerName(playerid, playername, sizeof(playername));
                
GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
                
format(string,sizeof(string),"{F4FFB8}SmS{FFFFFF} Enviado para: %s: %s", giveplayername, texto);
                
SendClientMessage(playerid,-1,string);
                
format(string,sizeof(string),"{F4FFB8}SmS{FFFFFF} Recebido de: %s: %s", playername, texto);
                
SendClientMessage(giveplayerid,-1,string);
                
PlayerPlaySound(giveplayerid, 1085, 0.0, 0.0, 0.0);
                
printf("SmS: %s envio para %s: %s", playername, giveplayername, texto);
                for(new 
i; i < MAX_PLAYERS; i++)
                {
                    if(
IsPlayerAdmin(playerid) && LerPms[i] == true)
                    {
                        
format(string, sizeof(string), "{FF8000}|| Admin || %s envio para %s: %s", playername, giveplayername, texto);
                        
SendClientMessage(i, -1, string);
                    }
                }
            }
            else
            {
                
format(string, sizeof(string), "{FF0000}|| ERRO ||{FFFFFF} O ID %d nгo estб online.", giveplayerid);
                
SendClientMessage(playerid, -1, string);
            }
        }
        else
        {
            
SendClientMessage(playerid, -1, "{FF0000}|| ERRO ||{FFFFFF} Vocк tem que estб logado para usar este comando!");
        }
    }
    return 
1;
} 
Porfavor alguйm ajuda, e se nгo for pedir muito, colocar explicaзгo aonde errei.
Grato, espero respostas.
Reply
#2

Up...
Reply
#3

nunca usei sscanf, mais o 1є comando eu resolvi
PHP код:
CMD:p(playerid, params[])
{
    new 
str[128], proximo;
    if(
sscanf(params, "s", proximo))return SendClientMessage(playerid, 0x00CCCCAA, "Uso: /p [mensagem]");
       for(new 
P=0; P < MAX_PLAYERS; P++)
       {
          if(
GetDistanceBetweenPlayers(playerid, P) < 25)
        {
               
format(str, sizeof(str), "(Chat Prуximo) %s diz: %s", PlayerName(playerid), proximo);
               
SendClientMessage(P, 0x00EE00AA, str);
        }
    }
    return 
true;
} 
Reply
#4

Cуdigos bagunзados '-'
PHP код:
@Edit '-'
CMD:p(playerid, params[])
{
    new 
t[128], String[50];
    if(!
IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Nгo estб online");
    if(
sscanf(params, "us", ID, t)) return SendClientMessage(playerid, -1,"Use /p [ID] [texto]");
    
format(String, sizeof(String), "Particular de {E0D01B}%s{FFFF00}: %s", Nome(playerid), t);
    
SendClientMessage(ID, -1, String);
    
format(String, sizeof(String), "Particular enviada com sucesso para %s", Nome(ID));
    
SendClientMessage(playerid, -1, String);
    return 
1;
}
//---------------------------------//
CMD:sms(playerid, params[])
{
    new 
id, texto, string[75];
    if(!
IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Nгo estб online !");
    if(
sscanf(params, "us", id,texto)) return SendClientMessage(playerid,-1,"Use: /sms [ID/Nome] [Texto]");
     if(
IsPlayerConnected(ID))
      {
          
format(string,sizeof(string),"{F4FFB8}SmS{FFFFFF} Enviado para: %s: %s", Nome(ID), texto);
           
SendClientMessage(playerid,-1,string);
        
format(string,sizeof(string),"{F4FFB8}SmS{FFFFFF} Recebido de: %s: %s", Nome(playerid), texto);
        
SendClientMessage(ID,-1,string);
        
PlayerPlaySound(ID, 1085, 0.0, 0.0, 0.0);
        
printf("SmS: %s envio para %s: %s", Nome(playerid), Nome(ID), texto);
        for(new 
i; i < MAX_PLAYERS; i++)
        {
            if(
IsPlayerAdmin(playerid) && LerPms[i] == true)
             {
                  
format(string, sizeof(string), "{FF8000}|| Admin || %s envio para %s: %s", Nome(playerid), Nome(ID), texto);
                
SendClientMessage(i, -1, string);
            }
            else
            {
                
format(string, sizeof(string), "{FF0000}|| ERRO ||{FFFFFF} O ID %d nгo estб online.", Nome(ID));
                
SendClientMessage(playerid, -1, string);
            }
        }
        else
        {
            
SendClientMessage(playerid, -1, "{FF0000}|| ERRO ||{FFFFFF} Vocк tem que estб logado para usar este comando!");
        }
    }
    return 
1;
} 
Reply
#5

PHP код:
CMD:p(playerid, params[])
{
    if(!
strlen(params)) return SendClientMessage(playerid, 0x00CCCCAA, "Uso: /p [mensagem]");
    
format(params, 128, "(Chat Prуximo) %s diz: %s", Nome(playerid), params);
    static 
i;
    for(
i = GetMaxPlayers(); i > -1; --i)
    {
       if(
GetDistanceBetweenPlayers(playerid, i) < 25)
       {
         
SendClientMessage(i, 0x00EE00AA, params);
       }
    }
    return 
1;
} 
Reply
#6

Ali nгo estб em sscanf, ta em strtok.
Eu nгo estou podendo usar sscanf em meu servidor, o comando nгo funciona, pedi ajuda de tudo quanter jeito, e nгo resolveu.
Alguйm ajuda.. Comando em strtok ._.
Reply
#7

UP... '-'
Reply
#8

Esse comando /p nem precisa de sscanf, pode usar isnull.
Reply
#9

'-'
Reply
#10

Quote:
Originally Posted by Life Advanced
Посмотреть сообщение
Cуdigos bagunзados '-'
PHP код:
@Edit '-'
CMD:p(playerid, params[])
{
    new 
t[128], String[50];
    if(!
IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Nгo estб online");
    if(
sscanf(params, "us", ID, t)) return SendClientMessage(playerid, -1,"Use /p [ID] [texto]");
    
format(String, sizeof(String), "Particular de {E0D01B}%s{FFFF00}: %s", Nome(playerid), t);
    
SendClientMessage(ID, -1, String);
    
format(String, sizeof(String), "Particular enviada com sucesso para %s", Nome(ID));
    
SendClientMessage(playerid, -1, String);
    return 
1;
}
//---------------------------------//
CMD:sms(playerid, params[])
{
    new 
id, texto, string[75];
    if(!
IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Nгo estб online !");
    if(
sscanf(params, "us", id,texto)) return SendClientMessage(playerid,-1,"Use: /sms [ID/Nome] [Texto]");
     if(
IsPlayerConnected(ID))
      {
          
format(string,sizeof(string),"{F4FFB8}SmS{FFFFFF} Enviado para: %s: %s", Nome(ID), texto);
           
SendClientMessage(playerid,-1,string);
        
format(string,sizeof(string),"{F4FFB8}SmS{FFFFFF} Recebido de: %s: %s", Nome(playerid), texto);
        
SendClientMessage(ID,-1,string);
        
PlayerPlaySound(ID, 1085, 0.0, 0.0, 0.0);
        
printf("SmS: %s envio para %s: %s", Nome(playerid), Nome(ID), texto);
        for(new 
i; i < MAX_PLAYERS; i++)
        {
            if(
IsPlayerAdmin(playerid) && LerPms[i] == true)
             {
                  
format(string, sizeof(string), "{FF8000}|| Admin || %s envio para %s: %s", Nome(playerid), Nome(ID), texto);
                
SendClientMessage(i, -1, string);
            }
            else
            {
                
format(string, sizeof(string), "{FF0000}|| ERRO ||{FFFFFF} O ID %d nгo estб online.", Nome(ID));
                
SendClientMessage(playerid, -1, string);
            }
        }
        else
        {
            
SendClientMessage(playerid, -1, "{FF0000}|| ERRO ||{FFFFFF} Vocк tem que estб logado para usar este comando!");
        }
    }
    return 
1;
} 
Nгo funciona, todos os comandos que utiliza sscanf fica dando o mesmo problema;
Mesmo eu digitando corretamente;


Quando dou enter para confirmar o que digitei e executar o comando acontece isto;
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)