SSGamers - Fique atualizado
Chegou o novo tema 6.1.3 / SSGames - Servidores online de qualidade - Inscreva-se Ja! é entre para nossa comunidade! - Ouça nossa web radio -Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

Bcmd - Processador de comandos

Weslley_Script
SS - Fundador
SS - Fundador
Weslley_Script
Steam Steam : WeslleySSGames
Zello : WeslleySSGames
Mensagens : 9109
Moedas : 1024576
Data de inscrição : 06/10/2011
Idade : 24
Localização : Brasil

Mensagem por Weslley_Script em Ter 17 Mar 2015 - 6:36

bCMD
"Novo processador de comandos"

Depois de ter desenvolvido o bcmd eu deparei-me com vários problemas no código e com bugs críticos, prometi resolver esses bugs, mas com alguma preguiça minha não resolvi os bugs, depois veio a escola e ainda pior, mas agora chegou as férias e já algum tempo estava a editar ele, estava a desenvolver a versão 2.0, mas antes disso necessitei de fazer um upgrade para a versão 1.8, acho que seria mais importante, do que criar outras coisas não tão importantes, mas bem, o bcmd é um processador de comandos, processado por via CallLocalFunction, o comando cria callbacks o que torna mais rápido a sua execução.

Symtaxs
Código:
bCMD[nome_do_comando]>(playerid:params[]:help) return 1; CMD::nome_do_comando(playerid,params[],help) return 1; cmd(nome_do_comando:playerid,params[],help) return 1;

Reformulei a syntax do bcmd, lembrando que é necessário colocar todos os parametros (playerid,params[],help), caso não coloque um erro ocorrerá no bcmd o que pode prejudicar o seu funcionamento.

help

Este sistema é idêntico ao YCMD, alguns membros pediram-me para adicionar e eu adicionei em umas versões anteriores.

exemplo de uso:


Código:
bCMD[grana]>(playerid:params[]:help) {     if(help)         return SendClientMessage(playerid,-1,"Este comando é usado para dar dinheiro, ex: /grana 100");     if(isnull(params)         return SendClientMessage(playerid,-1,"USE: /grana [valor]");     GivePlayerMoney(playerid,strval(params));     return 1; }

Quando voce executar o comando, ao digitar /grana help ou /grana ajuda ele irá processar a condição if(help){...}

AVISO: Lembre-se que é necessário colocar a condição if(help) primeiro que if(isnull) ou if(sscanf(...))

CallBacks

Quando o comando é chamando também é chamada a função OnPlayerCallCommand, você pode usa-lo e verificar se o comando existe ou não, exemplo:

Código:
public OnPlayerCallCommand(playerid,cmdtext[],sucess){     if(!sucess) {         new result[128];         format(result,sizeof(result),"O comando %s não existe",cmdtext);         SendClientMessage(playerid,-1,result);     }


BenchMarks

Todas as benchmarks anteriores foram consideradas com nulas, após eu ter descoberto que benchmark do slice mostra quantas vezes uma função pode ser executada em um ms(milissegundo)

Código:
Bench for bcmd2: executes, by average, 236.99 times/ms. Bench for bcmd: executes, by average, 98.40 times/ms.

Esta benchmark é uma comparação entre a versão antiga (bcmd) e a versão recente (bcmd2)

ChangeLog

  • 18/07/2012 - v1.0

    • Lançameto



  • 19/07/2012 - v1.1 (BETA)

    • Optimização do código.
    • Perda de velocidade, não era essa minha intenção, logo depois estarei reparando isso.
    • Nova forma de usar comandos, agora em vez de usarmos /meucommando podemos usar !meucommando ou @meucommando (mais informações veja no topo)



  • 20/07/2012 - v1.2

    • Optimização
    • Mais velocidade.



  • 21/07/2012 - v1.3

    • Reparação de bugs, agradecimentos ao paulor por ter reportado!
    • Optimização
    • Mais um pouco de velocidade, não muita.



  • 27/07/2012 - v1.4

    • Reparação de bugs críticos.
    • Adicionado o parâmetro help. (veja como funciona no topo do tópico)



  • 30/07/2012 - v1.5

    • Reparação de bugs críticos. Obrigado Paulo!
    • Optimização, agradecimentos ao bruno por me falar sobre o funcidx.
    • Agora também detectamos a palavra "ajuda" (ver na parte do help)



  • 30/07/2012 - v1.6

    • Optimização do código.
    • Agora também é chamada a OnPlayerCallCommand caso o comando exista



  • 22/08/2012 - v1.7

    • Resolução de bugs.



  • 17/12/2012 - v1.8

    • Reparação de um bug critico.
    • Optimização do código.
    • Reajuste no código.
    • Nova syntax.




Download

Download-Pastebin v1.8

Pastebin v1.7

Pastebin v1.6

Pastebin v1.5

Pastebin v1.4

Pastebin v1.3

Pastebin v1.2

Pastebin v1.1

Download - Pastebin v1.0

Nota: Versão 1.0 não está para download por causa dos links corrompidos e não tenho o mesmo link, as outras versões deixo apenas o pastebin
BUG'S

Testei muitas vezes para ver se existia qualquer bug, mas não detetei nenhum bug, porém eu testei apenas por via console, pois não conseguia entrar InGame devido a problemas internos do meu bonito computador, enfim, penso que não existem bugs, mas caso encontre um bug reporte-me por PM ou aqui no tópico.

Créditos

  • ZeeX

    • Criador do ZCMD e deu-me a luz para o inicio da include.



  • BlueX

    • Criador da include.



  • Y_Less

    • Criador do sscanf



  • [iPs]Team

    • Melhor equipe de programação.



  • SA-MP Team

    • Team past, present and future - SA:MP.



  • Paulo_Terror

    • Tirou-me algumas duvidas.



  • Stewie`

    • Um grande amigo.



  • Wiki SA-MP

    • Tirou-me algumas duvidas.



  • DraKiNs ou Bruno

    • Ajudou-me em optimização.





Bcmd - Processador de comandos D07Xwqb
Bcmd - Processador de comandos Yjab9HN
Day_
--> Postador Fanático
--> Postador Fanático
Day_
Mensagens : 154
Moedas : 2522
Data de inscrição : 09/07/2014
Idade : 22

Mensagem por Day_ em Ter 17 Mar 2015 - 15:25

Hm kra n sabia desta include '-' achei foda, pois o processamento e igual ao zcmd porem com parametro help Smile



Em Breve Brasil Start Life FreeRoam
http://bslrpg.com/forum/
Life_Advanced
--> Postador Iniciante
--> Postador Iniciante
Life_Advanced
Mensagens : 37
Moedas : 2902
Data de inscrição : 16/11/2012
Idade : 70
Localização : Polo Norte

Mensagem por Life_Advanced em Ter 17 Mar 2015 - 22:34

@Day_ escreveu:Hm kra n sabia desta include '-' achei foda, pois o processamento e igual ao zcmd porem com parametro help Smile

confused  Mal Informado ? 
Ainda acho a include zcmd muito melhor.



+ Informações Skype:   team_speak.    
Weslley_Script
SS - Fundador
SS - Fundador
Weslley_Script
Steam Steam : WeslleySSGames
Zello : WeslleySSGames
Mensagens : 9109
Moedas : 1024576
Data de inscrição : 06/10/2011
Idade : 24
Localização : Brasil

Mensagem por Weslley_Script em Qua 18 Mar 2015 - 9:14

também mas eu to atras da YCMD, para postar aqui no forum se puderem coloquem aqui, obrigado.



Bcmd - Processador de comandos D07Xwqb
Bcmd - Processador de comandos Yjab9HN
Conteúdo patrocinado

Mensagem por Conteúdo patrocinado


^
subir
Data/hora atual: Qui 6 Ago 2020 - 19:53