Tutorial: Criando plugins de AMXX – AMX Mod X – Counter Stri
Requisitos para a aprendizagem:
- Ter conhecimento pelo menos de alguma linguagem (recomendável C ou C++); - Saber a estrutura do AMX MOD X; - Noções de cabeçalhos, funções, implementações, operadores, clases, etc; - Dominar lógica; - Conhecer em profundo todas as funções do AMX MOD X. - Conhecer os Paths. - Saber manipular os executáveis; - Conhecer a engine do Half-Life. Tutorial:
Primeiro você vai precisar do programa AMXX Studio, para baixá-lo clique aqui.
Ele é um utilitário, que serve para editar e compilar seus plugins, estilo um DEV-C++.
Após o termino do download, execute-o e instale a onde desejar; Após a instalação ele vai querer instalar outra coisa, você deve clicar em não; Pronto, seu AMXX Studio está instalado e com um ícone no seu desktop.
Agora sim podemos começar a escrever plugins
Abra seu AMXX Studio, provavelmente ele vai ter um ‘plugin’ já aberto, que é um exemplo, você pode apagar tudo o que se encontra nele pois nós vamos começar do zero.
Primeira etapa:
Incluir a biblioteca que você utilizará. Para fazer isso basta escrever:
Citação:
#include <Nome da Biblioteca>
Pronto, após inserir a biblioteca você deverá escrever a função principal, que nesse caso (do AMXModX) se chama “plugin_init“, para isso clique aqui.
Como escrever uma função no AMXModX:
Primeiro você terá que definir qual tipo de função é. Nesse caso é uma função do tipo PUBLIC. Para se iniciar a função se escreve da seguinte forma: CLIQUE AQUI
A biblioteca principal, que você devera usar em todos os plugins é a amxmodx, assim dando o include:
Código:
#include <amxmodx>
Pronto, após inserir a biblioteca você deverá escrever a função principal, que nesse caso (do AMXModX) se chama “plugin_init“, para isso CLIQUE AQUI clique aqui.
Como escrever uma função no AMXModX:
Primeiro você terá que definir qual tipo de função é. Nesse caso é uma função do tipo PUBLIC. Para se iniciar a função se escreve da seguinte forma:
Citação:
public nome_da_funcao() { // espaço aonde será chamada outras funções. }
No caso da função principal:
Citação:
public plugin_init() { // espaço aonde será chamada outras funções. }
Agora o seu plugin já tem um inicio, por onde ele vai começar
Sua próxima etapa é registrar o seu plugin, clique aquipara acessar a área do site oficial e proceder.
Citação:
public plugin_init() { register_plugin(“Welcome MSG”,”1.0″,”OffspringBR”) // a funçao deve ser usada na forma de register_plugin(“Nome do Plugin”,”Versao do Plugin”, “ Nome do Autor” ) // . . . }
public plugin_init() { register_plugin(“Welcome MSG”,”1.0″,”OffspringBR”) return PLUGIN_CONTINUE // define que seu plugin continuará rodando… }
Pronto, para esse plugin a função principal vai fazer nada mais do que registrar o criador do plugin.
Próxima etapa
O plugin se baseia em, quando o usuário entrar no servidor ele receberá uma mensagem de boas vindas no chat. Então, o que precisamos? Nós precisamos identificar quando o usuário entra no servidor e para isso (graças a equipe AMX MOD X) tem-se uma função pronta incluída na BIBLIOTECA amxmodx que nós já adicionamos. A função é client_putinserver(id), que pode ser iniciada como uma função publica, ou seja, PUBLIC:client_putinserver
Citação:
public client_putinserver(id) // iniciando a função para identificar se o usuario entrou no server, o ‘id’ representa a indentificaçao do usuario, ou seja, quem é ele para o jogo. { // . . . }
Agora sabemos quando o usuário entrou no servidor
Próximo passo seria dar as boas-vindas, mas como quando o usuário entra ele vê muitas outras coisas além do chat nós vamos pedir para o plugin esperar alguns segundos até mostrar a mensagem e para mostrar a mensagem nós vamos criar uma FUNÇÃO, que pode ser chamada como você quiser, nesse caso vou chamá-la de ‘print_msg‘, já que sabemos como iniciar a função vou continuar a explicar o que será feito dentro dela e depois voltaremos a função que identifica o usuário quando entrar no servidor. Agora a parte mais simples, imprimir a mensagem no chat do usuário, vamos usar a função client_print(id, tipo_de_mensagem, “mensagem”)
Citação:
public print_msg(id) // Inciando a funçao feita por voce, ela será public e tera como parametro ( o que ta dentro do ‘()’ ) o ‘id’ do usuário { client_print(id, print_chat, “Bem-vindo ao meu servidor”) // aqui é chamada a funçao client_print como explicado acima… o segundo parametro ‘print_chat’ define que a mensagem vai aparecer no chat do usuário }
Pronto! Agora podemos voltar a função que identifica o usuário que entrou. O que ela vai fazer? Vai chamar a função ‘print_msg‘ que vai Imprimir no chat a mensagem, com um espaçamento de tempo de 4 segundos, utilizando a função set_task (tempo, “função”, id):
Citação:
public client_putinserver(id) { set_task(4.0, “print_msg”, id)// vai chamar a funçao ‘print_msg’ depois de 4 segundos para o usuário ‘id’ return PLUGIN_CONTINUE // continua a rodar o plugin }
Agora sim! O plugin está 100% pronto!
O algoritmo foi bem básico, é só você pensar o que você quer fazer, e foi: Quando o usuário entrar (função client_putinserver) eu vou imprimir (client_print) depois de um certo tempo (funçao set_task).
Parte final
Agora você deve clicar em File > Save As e salvar com o nome que você quiser. Depois de salvo você clica na Setinha Verde ‘>’ para compilar! E pronto! Seu plugin AMXX estará na mesma pasta de onde você salvou como dito acima.
Pronto, esse foi o algoritmo usado, e é assim que você deverá pensar quando for escrever seu plugin. O seu resultado final devera ser parecido com este:
Citação:
#include <amxmodx>
public plugin_init() { register_plugin(“Welcome MSG”,”1.0″,”OffspringBR”) //return PLUGIN_CONTINUE }
public client_putinserver(id) { set_task(4.0, “print_msg”, id) //return PLUGIN_CONTINUE }
public print_msg(id) { client_print(id, print_chat, “Bem-vindo ao meu servidor”) }