[AJUDA] Erro em comando /relatorio
#1

Quando digito a menssagem nгo aparece tal menssagem apenas o nome do player, comando abaixo

PHP код:
dcmd_relatorio(playerid,params[])
{
new 
texto=strval(params);
new 
Texto[128];
new 
string[256];
if(!
strlen(params))return SendClientMessage(playerid0xDCDCDCAA"Use: /relatorio [Texto]");
else
{
        
format(string,256,"[Relatorio] %s: %s",Nome(playerid),Texto);
        for(new 
i=0;i<MAX_PLAYERS;i++)
        {
        if(
IsPlayerConnected(i) && Admin[i] >= 1)
        
SendClientMessage(i,0xDCDCDCAA,string);
        }
}
return 
1;

Reply
#2

pawn Код:
dcmd_relatorio(playerid,params[])
{
       new Texto[128];
       new string[256];
       new Texto=strval(params);
       if(!strlen(params))return SendClientMessage(playerid, 0xDCDCDCAA, "Use: /relatorio [Texto]");  
       format(string,256,"[Relatorio] %s: %s",Nome(playerid),Texto);
       for(new i=0;i<MAX_PLAYERS;i++)
       {
            if(IsPlayerConnected(i) && Admin[i] >= 1)
            SendClientMessage(i,0xDCDCDCAA,string);
       }
}
return 1;
}
Reply
#3

Quote:
Originally Posted by Hardware
Посмотреть сообщение
pawn Код:
dcmd_relatorio(playerid,params[])
{
       new Texto[128];
       new string[256];
       new Texto=strval(params);
       if(!strlen(params))return SendClientMessage(playerid, 0xDCDCDCAA, "Use: /relatorio [Texto]");  
       format(string,256,"[Relatorio] %s: %s",Nome(playerid),Texto);
       for(new i=0;i<MAX_PLAYERS;i++)
       {
            if(IsPlayerConnected(i) && Admin[i] >= 1)
            SendClientMessage(i,0xDCDCDCAA,string);
       }
}
return 1;
}
pq strval? ate onde eu vi esse codigo й pra mandar uma string

pawn Код:
dcmd_relatorio(playerid, params[])
{
    if(!strlen(params))return SendClientMessage(playerid, 0xDCDCDCAA, "Use: /relatorio [Texto]");
    format(params,strlen(params)+38,"[Relatorio] %s: %s",Nome(playerid),params);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerConnected(i) && Admin[i] >= 1)
        SendClientMessage(i,0xDCDCDCAA,string);
    }
    return 1;
}
Reply
#4

pawn Код:
dcmd_relatorio(playerid,params[])
{
    new Texto[128];
    new string[256];
    if(sscanf(params, "s[128]", Texto))return SendClientMessage(playerid, 0xDCDCDCAA, "Use: /relatorio [Texto]");
    format(string,256,"[Relatorio] %s: %s",Nome(playerid),Texto);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
        if(!IsPlayerConnected(i) && Admin[i] >= 1) return 1;
        SendClientMessage(i,0xDCDCDCAA,string);
    }
}
return 1;
}
Reply
#5

Quote:
Originally Posted by Cristhian
Посмотреть сообщение
pawn Код:
dcmd_relatorio(playerid,params[])
{
    new Texto[128];
    new string[256];
    if(sscanf(params, "s[128]", Texto))return SendClientMessage(playerid, 0xDCDCDCAA, "Use: /relatorio [Texto]");
    format(string,256,"[Relatorio] %s: %s",Nome(playerid),Texto);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerConnected(i) && Admin[i] >= 1)
        SendClientMessage(i,0xDCDCDCAA,string);
    }
}
return 1;
}
sscanf em comando de 1 parametro = perda de tempo unformatando.
Reply
#6

Quote:
Originally Posted by Pharrel
Посмотреть сообщение
sscanf em comando de 1 parametro = perda de tempo unformatando.
quando ta em dcmd, zcmd.. nгo precisa de sscanf, strtok, nem nada pra pegar o que o player digitou с ?
Reply
#7

Quando vc usa 1 parametro nгo, oq vc digitar depois do comando fica tudo armazenado na variavel "params" entao й sу usa-la como fiz no codigo que postei antes.

pawn Код:
dcmd_relatorio(playerid, params[])//veja a variavel params aqui serve como qualquer outro parametro em uma public ou stock
{
    if(!strlen(params)) return SendClientMessage(playerid, 0xDCDCDCAA, "Use: /relatorio [Texto]"); // se o tamanho do texto dentro da string for = 0 retorna a msg
    format(params,strlen(params)+38,"[Relatorio] %s: %s",Nome(playerid),params);
    //format(params = pega a variavel params e formata  ja que ela nгo й uma constante
    //strlen(params)+38 isso porque "[Relatorio] %s: " pode ter no maximo 38 caracteres entao pega o tamanho do texto em params + oque jб esta digitado
    for(new i=0;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerConnected(i) && Admin[i] >= 1)
        SendClientMessage(i,0xDCDCDCAA,string);
    }
    return 1;
}
Reply
#8

Quote:
Originally Posted by Pharrel
Посмотреть сообщение
Quando vc usa 1 parametro nгo, oq vc digitar depois do comando fica tudo armazenado na variavel "params" entao й sу usa-la como fiz no codigo que postei antes.

pawn Код:
dcmd_relatorio(playerid, params[])//veja a variavel params aqui serve como qualquer outro parametro em uma public ou stock
{
    if(!strlen(params)) return SendClientMessage(playerid, 0xDCDCDCAA, "Use: /relatorio [Texto]"); // se o tamanho do texto dentro da string for = 0 retorna a msg
    format(params,strlen(params)+38,"[Relatorio] %s: %s",Nome(playerid),params);
    //format(params = pega a variavel params e formata  ja que ela nгo й uma constante
    //strlen(params)+38 isso porque "[Relatorio] %s: " pode ter no maximo 38 caracteres entao pega o tamanho do texto em params + oque jб esta digitado
    for(new i=0;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerConnected(i) && Admin[i] >= 1)
        SendClientMessage(i,0xDCDCDCAA,string);
    }
    return 1;
}
sakei vlw
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)