[Ajuda] Ajuda em um comando
#1

Boa tarde pessoal, eu montei um comando(/avisar) e deu 3 erros, passei um bom tempo tentando achar o problema e nгo consegui, se alguem puder me ajudar, ficarei muito grato

PHP код:
 CMD:avisar(playerid, params)
{
    if (
Player[playerid][pAdmin] >= 2)
    {
        new 
id, motivo[128];
        if (
sscanf(params, "us", id, motivo))
        return 
SendClientMessage(playerid, COR_AZUL, "|INFO| Use: /avisar [ID][Motivo]");
        if (!
IsPlayerConnected(id))
        return 
SendClientMessage(playerid, COR_VERMELHA, "|ERRO| O Jogador informado nгo estб conectado!");
        
Player[id][pAvisos] = ++;
        new 
nameid[MAX_PLAYER_NAME];
        new 
nameadm[MAX_PLAYER_NAME];
        
GetPlayerName(playerid, nameadm, MAX_PLAYER_NAME);
        
GetPlayerName(id, nameid, MAX_PLAYER_NAME);
        
IdPlayer[id] = id;
        
IdPlayer[playerid] = playerid;
        new 
str[128];
        new 
str2[128];
        new 
str3[128];
        
format(str, sizeof(str), "|BPD ADM| O Administrador(a) %s[%d] avisou o Jogador(a) %s[%d] pelo motivo de: %s", nameadm, IdPlayer[playerid], nameid, IdPlayer[id], motivo);
        
SendClientMessageToAll(COR_VERMELHA, str);
        
format(str2, sizeof(str2), "|INFO| Vocк foi avisado pelo Administrador(a) %s[%d] pelo motivo: %s", nameadm, IdPlayer[playerid], motivo);
        
SendClientMessage(id, COR_VERMELHA, str2);
        
format(str3, sizeof(str3), "|AVISO| Vocк possui %d/3 avisos, contabilizando 3 avisos vocк serб preso no carandiru!", Player[playerid][pAvisos]);
        
SendClientMessage(id, COR_VERMELHA, str3);
        return 
1;
    }
    else
    {
        
SendClientMessage(playerid, COR_VERMELHA, "|ERRO| Vocк nгo tem permiзгo!");
    }
    return 
1;
} 
Erros:

PHP код:
C:\Users\Sayden177\Desktop\Brasil Play Drip\gamemodes\BPD.pwn(1052) : error: 035: argument type mismatch (argument 1)
C:\Users\Sayden177\Desktop\Brasil Play Drip\gamemodes\BPD.pwn(1056) : error: 029: invalid expression, assumed zero
C
:\Users\Sayden177\Desktop\Brasil Play Drip\gamemodes\BPD.pwn(1056 -- 1057) : error: 022: must be lvalue (non-constant) 
Reply
#2

PHP код:
 CMD:avisar(playerid, params) 
{ 
    if (
Player[playerid][pAdmin] >= 2) 
    { 
        new 
id, motivo[128]; 
        if (
sscanf(params, "us[128]", id, motivo)) 
        return 
SendClientMessage(playerid, COR_AZUL, "|INFO| Use: /avisar [ID][Motivo]"); 
        if (!
IsPlayerConnected(id)) 
        return 
SendClientMessage(playerid, COR_VERMELHA, "|ERRO| O Jogador informado nгo estб conectado!"); 
        
Player[id][pAvisos] = ++; 
        new 
nameid[MAX_PLAYER_NAME]; 
        new 
nameadm[MAX_PLAYER_NAME]; 
        
GetPlayerName(playerid, nameadm, MAX_PLAYER_NAME); 
        
GetPlayerName(id, nameid, MAX_PLAYER_NAME); 
        
IdPlayer[id] = id; 
        
IdPlayer[playerid] = playerid; 
        new 
str[128]; 
        new 
str2[128]; 
        new 
str3[128]; 
        
format(str, sizeof(str), "|BPD ADM| O Administrador(a) %s[%d] avisou o Jogador(a) %s[%d] pelo motivo de: %s", nameadm, IdPlayer[playerid], nameid, IdPlayer[id], motivo); 
        
SendClientMessageToAll(COR_VERMELHA, str); 
        
format(str2, sizeof(str2), "|INFO| Vocк foi avisado pelo Administrador(a) %s[%d] pelo motivo: %s", nameadm, IdPlayer[playerid], motivo); 
        
SendClientMessage(id, COR_VERMELHA, str2); 
        
format(str3, sizeof(str3), "|AVISO| Vocк possui %d/3 avisos, contabilizando 3 avisos vocк serб preso no carandiru!", Player[playerid][pAvisos]); 
        
SendClientMessage(id, COR_VERMELHA, str3); 
        return 
1; 
    } 
    else 
    { 
        
SendClientMessage(playerid, COR_VERMELHA, "|ERRO| Vocк nгo tem permiзгo!"); 
    } 
    return 
1; 
} 
Reply
#3

Quote:
Originally Posted by zF3lKy3
Посмотреть сообщение
PHP код:
 CMD:avisar(playerid, params) 
{ 
    if (
Player[playerid][pAdmin] >= 2) 
    { 
        new 
id, motivo[128]; 
        if (
sscanf(params, "us[128]", id, motivo)) 
        return 
SendClientMessage(playerid, COR_AZUL, "|INFO| Use: /avisar [ID][Motivo]"); 
        if (!
IsPlayerConnected(id)) 
        return 
SendClientMessage(playerid, COR_VERMELHA, "|ERRO| O Jogador informado nгo estб conectado!"); 
        
Player[id][pAvisos] = ++; 
        new 
nameid[MAX_PLAYER_NAME]; 
        new 
nameadm[MAX_PLAYER_NAME]; 
        
GetPlayerName(playerid, nameadm, MAX_PLAYER_NAME); 
        
GetPlayerName(id, nameid, MAX_PLAYER_NAME); 
        
IdPlayer[id] = id; 
        
IdPlayer[playerid] = playerid; 
        new 
str[128]; 
        new 
str2[128]; 
        new 
str3[128]; 
        
format(str, sizeof(str), "|BPD ADM| O Administrador(a) %s[%d] avisou o Jogador(a) %s[%d] pelo motivo de: %s", nameadm, IdPlayer[playerid], nameid, IdPlayer[id], motivo); 
        
SendClientMessageToAll(COR_VERMELHA, str); 
        
format(str2, sizeof(str2), "|INFO| Vocк foi avisado pelo Administrador(a) %s[%d] pelo motivo: %s", nameadm, IdPlayer[playerid], motivo); 
        
SendClientMessage(id, COR_VERMELHA, str2); 
        
format(str3, sizeof(str3), "|AVISO| Vocк possui %d/3 avisos, contabilizando 3 avisos vocк serб preso no carandiru!", Player[playerid][pAvisos]); 
        
SendClientMessage(id, COR_VERMELHA, str3); 
        return 
1; 
    } 
    else 
    { 
        
SendClientMessage(playerid, COR_VERMELHA, "|ERRO| Vocк nгo tem permiзгo!"); 
    } 
    return 
1; 
} 
Continuou os mesmos erros...
Reply
#4

PHP код:
Player[id][pAvisos] = ++; 
Coloque

PHP код:
Player[id][pAvisos]++; 
Reply
#5

Quote:
Originally Posted by PedroH
Посмотреть сообщение
PHP код:
Player[id][pAvisos] = ++; 
Coloque

PHP код:
Player[id][pAvisos]++; 
Arrumou 2 erros, porйm continua o erro na linha 1052
Reply
#6

Faltou declara params como um array

PHP код:
CMD:avisar(playerid, params[]) 
Reply
#7

Quote:
Originally Posted by PedroH
Посмотреть сообщение
Faltou declara params como um array

PHP код:
CMD:avisar(playerid, params[]) 
Vlw, dei muito mole kkk
Reply
#8

Cara uma coisa que eu lhe recomendo muito a fazer, й tentar sempre otimizar o cуdigo no mбximo que conseguir.

Vou lhe dar um exemplo:

PHP код:
CMD:avisar(playerid, params) 
{ 
    if (
Player[playerid][pAdmin] >= 2) 
    { 
        new 
id, motivo[128]; 
        if (
sscanf(params, "us", id, motivo)) return SendClientMessage(playerid, COR_AZUL, "|INFO| Use: /avisar [ID][Motivo]"); //nгo й necessбrio retorna o erro em outra linha 
        
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COR_VERMELHA, "|ERRO| O Jogador informado nгo estб conectado!"); //mesmo caso acima 
        
Player[id][pAvisos]++; //aqui й outra coisa, por exemplo: vocк quer adicionar + 1 a uma tal variavel ent se usa ++ isso se chama incremento й bem mais simplificado 
        
new nameid[MAX_PLAYER_NAME], nameadm[MAX_PLAYER_NAME]; //use vнrgulas para criar varнav assim economiza mais linhas e assim otimiza o cуdigo 
        
GetPlayerName(playerid, nameadm, MAX_PLAYER_NAME); 
        
GetPlayerName(id, nameid, MAX_PLAYER_NAME); 
        
IdPlayer[id] = id; //nгo entendi muito bem o porquк disso, mas se oque vocк queria era o id do player jб possui a var "id" que foi usada no parвmetro do comando entгo podemos utilizar ela em qualquer outro momento...
        
IdPlayer[playerid] = playerid; //mesma coisa, jб possui o "playerid" definido lб encima em CMD:avisar(playerid) 
        
new str[128], str2[128], str3[128]; // mesmo caso acima. 
        
format(str, sizeof(str), "|BPD ADM| O Administrador(a) %s[%d] avisou o Jogador(a) %s[%d] pelo motivo de: %s", nameadm, IdPlayer[playerid], nameid, IdPlayer[id], motivo); 
        
SendClientMessageToAll(COR_VERMELHA, str); 
        
format(str2, sizeof(str2), "|INFO| Vocк foi avisado pelo Administrador(a) %s[%d] pelo motivo: %s", nameadm, IdPlayer[playerid], motivo); 
        
SendClientMessage(id, COR_VERMELHA, str2); 
        
format(str3, sizeof(str3), "|AVISO| Vocк possui %d/3 avisos, contabilizando 3 avisos vocк serб preso no carandiru!", Player[playerid][pAvisos]); 
        
SendClientMessage(id, COR_VERMELHA, str3); 
        return 
1; 
    } 
    else 
    { 
        
SendClientMessage(playerid, COR_VERMELHA, "|ERRO| Vocк nгo tem permiзгo!"); 
    } 
    return 
1; 
} 
Reply


Forum Jump:


Users browsing this thread: