SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 26/02/2018, 03:26 PM   #1
RazorGuigo
High-roller
 
RazorGuigo's Avatar
 
Join Date: May 2016
Location: South is my Country
Posts: 1,068
Reputation: 100
Default [RCMD2] Processador de Comandos RCON [no GM]

[RCMD] Simple Rcon Commands in GM
versão 2.1 com código bem mais otimizado, disponível no github, e sem o sscanf2


Bom, como alguns não sabem, para criar um novo comando rcon, não é possivel nativamente em uma GM, você deve criar um filterscript, só para os comandos, e isso é meio chato!

Você tem uma larga opção de utilização dessa include, pode-se se fazer de diversas maneiras, de acordo com a que lhe agradar melhor!


Callback:

parecida com a nativa, porem é chamada no seu Gamemode (e todos filterscripts caso tenha), alem de vir os comandos separadamente de seus parametros
Code:
OnRconCommandCalled(cmd[], param[]);
OnRCMDFinishCommand(cmd[], param[], sucess);
Macros:
Você pode usar tambem como processador de cmds rcon, é muito similar ao ZCMD!
Code:
rcmd(%1,%2) 
RCONCOMMAND:%1(%2)        
RCONCMD:%1(%2)
RCMD:%0(%1)
Exemplo:
Bom não basta só falar, vou dar alguns exemplos sobre esta include, que fiz aqui para testar...
PHP Code:
//chamada: 1
public OnRconCommandCalled(cmd[], param[])
{
    
printf("GM recebeu comando: %s",cmd);
}
//chamada: 2
RCMD:funfa()
{
    print(
"funcionou!");
    return 
1;
}
//chamada: 3
public OnRCMDFinishCommand(cmd[], param[], sucess)
{
    if(!
sucess)
        
printf("[RCMD] este comando nao existe: %s"cmd);
    return 
1;







instalação:
  • Baixe o arquivo .zip e após extraia em seu local de preferencia
  • Copie o arquivo "filterscript/RCMD.amx" e coloque na pasta "filterscript" de seu servidor
  • abra o "server.cfg", e onde estiver escrito filterscripts adicione "RCMD"
  • copie o arquivo "pawno/include/rcmd_include.inc" e cole no diretório de "pawno/include/"
  • escreva no topo do GM: "#include <rcmd_include>", após isto estará pronto e poderá desfrutar ;)


Link para download:

GitHub: https://github.com/RodrigoDornelles/RCMD

Last edited by RazorGuigo; 27/02/2018 at 12:33 PM.
RazorGuigo is offline   Reply With Quote
Old 26/02/2018, 04:00 PM   #2
SpikeCompiler
Huge Clucker
 
SpikeCompiler's Avatar
 
Join Date: Dec 2017
Location: Rio de Janeiro - RJ
Posts: 302
Reputation: 14
Default Re: [RCMD2] Processador de Comandos RCON [no GM]

Boa Include, +REP.
__________________
* Los Angeles, Califórnia - EUA
SpikeCompiler is offline   Reply With Quote
Old 27/02/2018, 02:24 AM   #3
zG
Big Clucker
 
zG's Avatar
 
Join Date: Oct 2013
Location: not found
Posts: 170
Reputation: 23
Default Re: [RCMD2] Processador de Comandos RCON [no GM]

Genial
zG is offline   Reply With Quote
Old 27/02/2018, 10:43 AM   #4
Dayvison_
High-roller
 
Dayvison_'s Avatar
 
Join Date: Nov 2013
Posts: 1,314
Reputation: 200
Default Re: [RCMD2] Processador de Comandos RCON [no GM]

funcidx só funciona no escopo do amx.
você deveria ter feito a ligação no tópico informando que depende do plugin sscanf.
Você poderia ao invés de fazer todo o processamento via filterscript, faze-lo via gamemode com um filterscript ligado embutidamente(Para corrigir o onrconcommand)
Sscanf vai gerar um warning por não informar o tamanho máximo da string(cmd).

A ideia pode ter sido boa, porém não foi bem implementada.
__________________


Dayvison_ is offline   Reply With Quote
Old 27/02/2018, 11:54 AM   #5
RazorGuigo
High-roller
 
RazorGuigo's Avatar
 
Join Date: May 2016
Location: South is my Country
Posts: 1,068
Reputation: 100
Default Re: [RCMD2] Processador de Comandos RCON [no GM]

Quote:
Originally Posted by Dayvison_ View Post
funcidx só funciona no escopo do amx.
você deveria ter feito a ligação no tópico informando que depende do plugin sscanf.
Você poderia ao invés de fazer todo o processamento via filterscript, faze-lo via gamemode com um filterscript ligado embutidamente(Para corrigir o onrconcommand)
Sscanf vai gerar um warning por não informar o tamanho máximo da string(cmd).

A ideia pode ter sido boa, porém não foi bem implementada.
oks vou implementar, suas ideias, eu estava com certa duvida se deveria fazer o processamento no GM ou FS, mas vou mover agora
RazorGuigo is offline   Reply With Quote
Old 27/02/2018, 01:59 PM   #6
WLSF
High-roller
 
Join Date: Aug 2011
Posts: 3,538
Reputation: 771
Default Re: [RCMD2] Processador de Comandos RCON [no GM]

Interessante...

Eu vim mais pra ver a implementação, é legal de ver quando a galera encontra uma forma diferente de resolver um problema de forma melhor...

mas me deparei com um código igual ao da ZCMD, uma pena...
WLSF is offline   Reply With Quote
Old 27/02/2018, 04:38 PM   #7
RazorGuigo
High-roller
 
RazorGuigo's Avatar
 
Join Date: May 2016
Location: South is my Country
Posts: 1,068
Reputation: 100
Default não entendi porque não gostou que 4% do codigo é compartilhado do ZCMD?

Quote:
Originally Posted by WLSF View Post
Interessante...

Eu vim mais pra ver a implementação, é legal de ver quando a galera encontra uma forma diferente de resolver um problema de forma melhor...

mas me deparei com um código igual ao da ZCMD, uma pena...
antes eu estava usando sscanf2, mas era desnecessário ao invés de trocar para strtock, eu dei uma olhada no ZCMD e copiei as 3 linhas para separar comandos de paremetros

foi o estudo de caso, que fez escolher essa maneira, se quiser sugerir ou método mais otimizado sem dependências explique:
RazorGuigo is offline   Reply With Quote
Old 28/02/2018, 12:05 AM   #8
RebeloX
High-roller
 
RebeloX's Avatar
 
Join Date: Jul 2011
Location: Portugal
Posts: 2,261
Reputation: 442
Default Re: [RCMD2] Processador de Comandos RCON [no GM]

O que o Dayvison_ disse é verdade, a ideia até é boa, contudo está mal implementada.

Por exemplo, se eu desejar usar esta include vou ter que definir sempre isto no OnRconCommand:

PHP Code:
return CallRemoteFunction("I_RCMD""s"cmd); 
Não é que dê muito trabalho, mas é chato ter que sempre definir isto, portanto o ideal seria colocar a tua lógica diretamente no OnRconCommand e isso pode ser atingido através da utilização do método ALS [ALS 4 (Hook Method 7)], o resultado final seria então:

PHP Code:
public OnRconCommand(cmd[]){
    
//código aqui
}

#if defined _ALS_OnRconCommand
    #undef OnRconCommand
#else
    #define _ALS_OnRconCommand
#endif
#define OnRconCommand hooked_OnRconCommand
forward hooked_OnRconCommand(cmd[]); 
Devo também dizer que o seguinte é desnecessário:
PHP Code:
#if defined OnRconCommandCalled
    
forward OnRconCommandCalled(cmd[], param[]);
#endif
#if defined OnRCMDFinishCommand
    
forward OnRCMDFinishCommand(cmd[], param[], sucess);
#endif 
Eu, como utilizador da include, não necessito de definir qualquer coisa, a não ser que seja extremamente necessário, por exemplo, valores máximos. Desta forma, eu não necessito de definir o OnRconCommandCalled nem o OnRCMDFinishCommand, se desejar usar, sei que eles lá estarão para me ajudar. É de relembrar que se os defines forem removidos, é necessário usar o funcidx e sim, ele funciona corretamente e tem a sua respetiva utilidade.

Eu aconselho-te a ver algumas includes, como o zcmd, bcmd ou icmd para entenderes um pouco a lógica por de trás do processamento de comandos, qualquer dúvida podes mandar uma mensagem!
__________________
RebeloX is offline   Reply With Quote
Old 28/02/2018, 02:35 AM   #9
RazorGuigo
High-roller
 
RazorGuigo's Avatar
 
Join Date: May 2016
Location: South is my Country
Posts: 1,068
Reputation: 100
Smile Cara tua intenção até foi legal em fazer uma boa critica... mas não falou nada de aproveitação:

Quote:
Originally Posted by RebeloX View Post
PHP Code:
return CallRemoteFunction("I_RCMD""s"cmd); 
Não é que dê muito trabalho, mas é chato ter que sempre definir isto, portanto o ideal seria colocar a tua lógica diretamente no OnRconCommand e isso pode ser atingido através da utilização do método ALS [ALS 4 (Hook Method 7)], o resultado final seria então:

PHP Code:
public OnRconCommand(cmd[]){
    
//código aqui
}

#if defined _ALS_OnRconCommand
    #undef OnRconCommand
#else
    #define _ALS_OnRconCommand
#endif
#define OnRconCommand hooked_OnRconCommand
forward hooked_OnRconCommand(cmd[]); 
Isso não funciona, pois só é chamado em FS,mas para frente tera uma função hookando e escrevendo o binario do FS diretamente quando liga o servidor, e carregando o FS, como essa sugestão do day: https://github.com/Open-GTO/sa-mp-fixes/issues/80

(e eu não entendi o que tu quer fazer... escrever no seu GM no FS da include?)


Quote:
Originally Posted by RebeloX View Post
Devo também dizer que o seguinte é desnecessário:
PHP Code:
#if defined OnRconCommandCalled
    
forward OnRconCommandCalled(cmd[], param[]);
#endif
#if defined OnRCMDFinishCommand
    
forward OnRCMDFinishCommand(cmd[], param[], sucess);
#endif 
Eu, como utilizador da include, não necessito de definir qualquer coisa, a não ser que seja extremamente necessário, por exemplo, valores máximos. Desta forma, eu não necessito de definir o OnRconCommandCalled nem o OnRCMDFinishCommand, se desejar usar, sei que eles lá estarão para me ajudar. É de relembrar que se os defines forem removidos, é necessário usar o funcidx e sim, ele funciona corretamente e tem a sua respetiva utilidade.
metodos, e metodos, funcidx é uma função nativa que sera sempre chamada cada vez que executar o comando, sendo que não é necessário invista, que ou aquela compilação sempre dará verdadeiro, ou sempre sera falso.

faça um estudo de cada caso!

eu não usei só #defined ou funcidx porque eu gosto mais de um ou outro, eu pensei em qual seria mais vantajoso para cada situação (se tu prestar atenção pode ver que utilizei ambos)
RazorGuigo is offline   Reply With Quote
Old 28/02/2018, 05:20 AM   #10
Marllun
Gangsta
 
Marllun's Avatar
 
Join Date: Oct 2016
Location: Brazil
Posts: 831
Reputation: 32
Default Re: [RCMD2] Processador de Comandos RCON [no GM]

Muito bom!
__________________
Code:
Discord: Marllun#6297
>>>>>>>> Play.cm-rpg.com.br:7777 <<<<<<<<
Marllun is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Include] [RCMD] Processador de Comandos RCON [no GM] RazorGuigo Lançamentos/Releases 8 27/04/2017 08:44 PM
[Ajuda] Processador De comandos ? danielcantiliano Português/Portuguese 4 08/09/2013 09:18 PM
[Pedido] Processador de comandos ProgrammerZ Português/Portuguese 12 14/08/2013 07:20 PM
[Ajuda] Processador de comandos Skiinner Português/Portuguese 5 24/06/2013 11:31 PM
[Ajuda] Processador de comandos. NuTShoT Português/Portuguese 15 29/01/2013 01:57 PM


All times are GMT. The time now is 11:38 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.