[PEDIDO] Forзar comando
#1

Olб, eu estava a procura de um comando tipo esse, o administrador o /ForcaCmd [id] [comando]
ex: /forccmd 1 /ajuda, ai o jogador id:1 aparecia como se ele tivese digitado, e peзo desculpa
se ja existir aqui no forum, agradeзo desde ja,
Reply
#2

OnPlayerCommandText(playerid, "/exemplo");
Reply
#3

Coloque no OnPlayerCommandText, como um comando qualquer.
pawn Код:
if(strfind(cmdtext, "/forcarcmd") != -1)
    {
        if(!strlen(cmdtext[10]) || !strlen(cmdtext[12])) return SendClientMessage(playerid, 0xFF4040AA, "Erro, use /forcarcmd [ID] [COMANDO]");
        new pos = strfind(cmdtext, "/", false, 11);    
        OnPlayerCommandText(strval(cmdtext[10]), cmdtext[pos]);
        SendClientMessage(playerid, 0xFF4040AA, "Vocк forзou o jogador a digitar o comando.");
        return 1;
    }
Reply
#4

@Ricop



Vi seu Quote no tуpico Cуdigos Ъteis, e devo informб-lo que o OnPlayerCommandText nгo pode ser chamado para outros jogador apenas com a ativaзгo normal das funзхes, que й simplesmente o ponto e vнrgula no final ";".


Sei disso pois fiz testes hб alguns meses atrбs com o OnPlayerCommandText sendo usado em outros IDs, e acredite, simplesmente nгo funciona desta maneira.


Nгo foi бtoa que eu usei CallRemoteFunction para chamar o OnPlayerCommandText no tуpico Cуdigos Ъteis.


@Topic:

Isto deve resolver o seu problema :


Coloque:

pawn Код:
//No OnPlayerCommandText:


if(strcmp("/forcarcmd",cmdtext,true,10)==0)
    {
        new foco[128],foco2[128],text[100];
        foco = KcmD(1, cmdtext);
        foco2 = KcmD(2, cmdtext);
        if(!strlen(foco))   return SendClientMessage(playerid,0xFFFFFFAA,"Use /forcarcmd [id] [comando]");
        if(!strlen(foco2))   return SendClientMessage(playerid,0xFFFFFFAA,"Use /forcarcmd [id] [comando]");
        CallRemoteFunction("OnPlayerCommandText", "ds", strval(foco), foco2);
        format(text,sizeof(text),"[Server Info] Vocк fez o jogador de ID %d usar o comando %s",strval(foco),foco2);
        SendClientMessage(playerid,0xFFFFFFAA,text);
        return 1;
    }



//No final do GM:


stock KcmD(param, cmdtext[])
{
    new string[128], pos, var;
    format(string, sizeof(string), "%s ", cmdtext);

    while((pos = strfind(string, " ", true)) != -1)
    {
        if(var == param) return string;
        var++;

        strdel(string, 0, pos + 1);
        if(strcmp(string, " ", true, pos) == 0) goto end;
    }

end:
    string[0] = '\0';
    return string;
}

Exemplo de uso seria: /forcarcmd 1 /admins


Espero ter ajudado



Espero ter ajudado
Reply
#5

Obrigado mesmo, perfeito
Reply
#6

Nгo entendi. (:
Aqui sempre funcionou..
Reply
#7

@Rjjj

Olha o que deu, nгo sei se foi por que eu colquei algum coisa errado, mais olha

pawn Код:
...\gamemodes\oi.pwn(2606) : error 017: undefined symbol "KcmD"
...\gamemodes\oi.pwn(2606) : error 033: array must be indexed (variable "foco")
...\gamemodes\oi.pwn(2607) : error 017: undefined symbol "KcmD"
...\gamemodes\oi.pwn(2607) : error 033: array must be indexed (variable "foco2")
...\gamemodes\oi.pwn(8951) : warning 225: unreachable code
...\gamemodes\oi.pwn(8990) : warning 225: unreachable code
...\gamemodes\oi.pwn(17584) : error 029: invalid expression, assumed zero
...\gamemodes\oi.pwn(17584) : error 017: undefined symbol "KcmD"
...\gamemodes\oi.pwn(17587) : error 017: undefined symbol "cmdtext"
...\gamemodes\oi.pwn(17590) : error 017: undefined symbol "param"
...\gamemodes\oi.pwn(17590) : error 090: public functions may not return arrays (symbol "OnPlayerUpdate")
...\gamemodes\oi.pwn(17597) : error 090: public functions may not return arrays (symbol "OnPlayerUpdate")
...\gamemodes\oi.pwn(17600) : warning 225: unreachable code
...\gamemodes\oi.pwn(17612) : error 079: inconsistent return types (array & non-array)
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


11 Errors.
Reply
#8

Tenta usar o do CyNic
Reply
#9

Quote:
Originally Posted by Ricop522
Посмотреть сообщение
Nгo entendi. (:
Aqui sempre funcionou..
LoL, testei de novo aqui e funcionou sem o CallRemoteFunction

Estranho que eu tinha testado ainda hб pouco e nгo funcionou...lol........



@Jizzy


Vocк esqueceu de colocar no final do seu GM:

pawn Код:
stock KcmD(param, cmdtext[])
{
    new string[128], pos, var;
    format(string, sizeof(string), "%s ", cmdtext);

    while((pos = strfind(string, " ", true)) != -1)
    {
        if(var == param) return string;
        var++;

        strdel(string, 0, pos + 1);
        if(strcmp(string, " ", true, pos) == 0) goto end;
    }

end:
    string[0] = '\0';
    return string;
}
Esse cуdigo que mandei pra vocк, eu testei antes


Espero ter ajudado
Reply
#10

aaah, agora deu, desculpe-me o transtorno, e Obrigado
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)