[ Ajuda ] Executar o Cmd
#1

Bom meu problema й que esse cmd esta sendo executado sem nenhum problema, o unico problema e que no player que eu faзo o fakecmd nao da

exemplo: /fakecmd 0 /regras
Ai faria com que o Player 0 usa - se o cmd /regras

pawn Код:
CMD:fakecmd(playerid, params[])
{
    new giverid, stringtext[126], comando[258], pgiver[50];
    if(PlayerInfo[playerid][pAdmin] < 1000) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Voce Nao Tem Autorizaзгo");
    if(sscanf(params, "us[90]", giverid, comando)) return  SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Uso /fakecmd [id] [comando]");
    if(giverid == INVALID_PLAYER_ID) return SendClientMessage(playerid, VERMELHO_ESCURO, "ID invalido.");
    if(!IsPlayerConnected(giverid)) return SendClientMessage(playerid, VERMELHO_ESCURO, "Usuario nгo conectado.");
    if(PlayerInfo[playerid][pAdmin] == 2000)
    {
        GetPlayerName(playerid, pgiver, sizeof(pgiver));
        GetPlayerName(giverid, pNome, sizeof(pNome));
        format(stringtext, sizeof(stringtext), "[BCV Admin] O Administrador %s fez o Jogador %s usar o comando ( %s )", pgiver, pNome, comando);
        SendClientMessageToAll(AZUL_CLARO_3, stringtext);
    }
    return 1;
}
Reply
#2

pawn Код:
CMD:fakecmd(playerid, params[])
{
    new giverid, stringtext[126], comando[258], pgiver[50];
    if(PlayerInfo[playerid][pAdmin] < 1000) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Voce Nao Tem Autorizaзгo");
    if(sscanf(params, "us[90]", giverid, comando)) return  SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Uso /fakecmd [id] [comando]");
    if(giverid == INVALID_PLAYER_ID) return SendClientMessage(playerid, VERMELHO_ESCURO, "ID invalido.");
    if(!IsPlayerConnected(giverid)) return SendClientMessage(playerid, VERMELHO_ESCURO, "Usuario nгo conectado.");
    if(PlayerInfo[playerid][pAdmin] == 2000)
    {
        GetPlayerName(playerid, pgiver, sizeof(pgiver));
        GetPlayerName(giverid, pNome, sizeof(pNome));
        format(stringtext, sizeof(stringtext), "[BCV Admin] O Administrador %s fez o Jogador %s usar o comando ( %s )", pgiver, pNome, comando);
        SendClientMessageToAll(AZUL_CLARO_3, stringtext);
        CallRemoteFunction("OnPlayerCommandText", "is", giverid, comando);
    }
    return 1;
}
Tenta fazer assim.
Reply
#3

Bom, Pelo o que posso ver. apenas fizeste um comando sem nada a fazer.

O seu comando nгo estб bom, estб dizendo caso for menor que 1000 irб retornar tal mensagem , e si somente si for igual a 2000 fazer tal comando,Poderia ter evitado chamar 2 vezes a mesma coisa.

pawn Код:
if(PlayerInfo[playerid][pAdmin] !=2000 && !IsPlayerAdmin(playerid)) // Seria mais fбcil assim, Caso seja diferente de 2000 e nгo seja rcon admin retornar tal mensagem.
E sobre a parte do funcionamento, o seu comando apenas faz a parte de enviar a mensagem e mas nada.

Acho que isto pode ajudar

pawn Код:
#define comando(%0,%1) cmd_%0(%1,params);

//como usar?

comando(ban,playerid)  // Nгo precisa de ";", ele vai retornar o comando ban, se existir й claro.

//Bom, Isto foi o mбximo que consegui pensar pois jб й tarde e tenho sono.(o vнcio de merda  ._.)
Espero que tenha ajudado.

@Pedro_Miranda: ixi nem vi e nem lembrava desta funзгo xD.
Reply
#4

Quote:
Originally Posted by leonardo1434
Посмотреть сообщение
Bom, Pelo o que posso ver. apenas fizeste um comando sem nada a fazer.

O seu comando nгo estб bom, estб dizendo caso for menor que 1000 irб retornar tal mensagem , e si somente si for igual a 2000 fazer tal comando,Poderia ter evitado chamar 2 vezes a mesma coisa.

pawn Код:
if(PlayerInfo[playerid][pAdmin] !=2000 && !IsPlayerAdmin(playerid)) // Seria mais fбcil assim, Caso seja diferente de 2000 e nгo seja rcon admin retornar tal mensagem.
E sobre a parte do funcionamento, o seu comando apenas faz a parte de enviar a mensagem e mas nada.

Acho que isto pode ajudar

pawn Код:
#define comando(%0,%1) cmd_%0(%1,params);

//como usar?

comando(ban,playerid)  // Nгo precisa de ";", ele vai retornar o comando ban, se existir й claro.

//Bom, Isto foi o mбximo que consegui pensar pois jб й tarde e tenho sono.(o vнcio de merda  ._.)
Espero que tenha ajudado.

@Pedro_Miranda: ixi nem vi e nem lembrava desta funзгo xD.
Seu cуdigo vai dar erro.
Quer saber por que?

Ele usa uma array chamada comando.

Se ele por:

pawn Код:
comando(comando, playerid)
Vai ser a mesma coisa que por cmd_comando(playerid, params); - Outro erro, o correto seria 'params[]'
E como nгo hб um comando /comando darб undefined symbol.
Reply
#5

Testei aqui й funcional, porйm estб errado, pois nгo vai funcionar com um comando digitado in game, ele apenas returna um comando jб feito no prуprio cmd. Este й o problema.
Reply
#6

Entгo tente compilar este script criado com seu macro.

pawn Код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>

#define comando(%0,%1) cmd_%0(%1,params)

CMD:message(playerid, params[])
{
    if(isnull(params))
        return SendClientMessage(playerid, -1, "/message <texto>");
       
    new str[128 char];
    new name[24 char];
    GetPlayerName(playerid, name, sizeof(name));
    format(str, sizeof(str), "%s: %s", name, params);
    SendClientMessageToAll(-1, str);
    return 1;
}

CMD:fakecmd(playerid, params[])
{
    new id, cmd[32 char];
    if(sscanf(params, "us[32]", id, cmd))
        return SendClientMessage(playerid, -1, "/fakecmd [id/nome] [comando]");

    comando(cmd, id);
    return 1;
}

public OnPlayerConnect(playerid)
{
    comando(message, playerid);
    return 1;
}
Reply
#7

a Callback onplayercommandtext nгo й utilizada no 'zcmd' entгo como vai funciona pedro?
Reply
#8

ao usar o CallRemote vai chamar na include e ai vai processar o comando.
Reply
#9

Pedro_Miranda, Vocк nгo entendeu o que eu quis dizer.

veja o seguinte exemplo.
pawn Код:
#define comando(%0,%1) cmd_%0(%1,params);

CMD:qualquercoisa(playerid,params[])
{
  SendClientMessage(playerid,-1,"qualquer coisa");
  comando(funfou,playerid)
  return 1;
}
CMD:funfou(playerid,params[])
{
   SendClientMessage(playerid,-1"Isso funfa veja!");
}
Sу pode chamar comandos "prontos",assim nгo podendo mudar-lo in game. Um erro.

De qualquer maneira, porque discutir sobre um comando mal feito? xD
Reply
#10

Nada, mas seu cуdigo entгo nada tem a ver com o que pede o criador do tуpico.

Vocк mantйm o erro ao esquecer o [] no params em seu macro, alйm de que isso nгo funcionarб em qualquer bloco de cуdigos em que params nгo esteja declarado.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)