[Tutorial] Uso do Y_Hooks - Versão de Impressão +- Portal SAMP (https://portalsamp.com) +-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5) +--- Fórum: Guias e Tutoriais (https://portalsamp.com/forumdisplay.php?fid=7) +--- Tópico: [Tutorial] Uso do Y_Hooks (/showthread.php?tid=2172) |
Uso do Y_Hooks - Gomes - 06/03/2022 Um breve tutorial sobre a utilização da include y_hooks para a modularização de sistemas no SA-MP. Repositório: https://github.com/Gomaink/Tutorial-Y-Hooks 1. Instalação Na instalação é onde muitos se perdem, porém é algo muito simples de ser feito. Acesse o GitHub do Y_Less e baixe a biblioteca YSI. Link do GitHub: https://github.com/pawn-lang/YSI-Includes<br> Link para download direto: https://www.mediafire.com/file/koiqd2q9m2thelf/YSI-Includes.zip/file Se optou em baixar pelo GitHub, clique em Code e depois em Download Zip como na imagem. Caso contrário e você tenha optado pelo mediafire, apenas clique no botão download como na imagem. Após a instalação, extraia o arquivo após isso irá lhe dar uma pasta com o nome "YSI-Includes" ou algo parecido. Clique sobre a pasta, pressione o botão direito do mouse e clique em copiar, após isso vá até a pasta de seu gamemode e cole em pawno/includes. 2. Utilizando Primeiro de tudo, precisamos criar uma pasta onde se localizará os módulos de seu Gamemode, ele deve estar na pasta principal de seu GM e não pode conter espaços ou números, você pode optar por algo como: modulos ou modules. Após a criação da pasta, devemos criar os seus módulos, use uma extensão como .pwn/.inc/.sys. Dentro do arquivo criado, podemos começar definindo o uso da include y_hooks que será responsável pela modularização de seu Gamemode, use: #include <YSI-Includes\YSI_Coding\y_hooks> Após isso, você precisa vincular o módulo ao Gamemode, você pode usar: #include "../suapastademodulos/nomedoseumodulo" Você deve fazer isso antes da main ou no final do gamemode. IMPORTANTE: Você deve definir a include y_hooks em todos os seus módulos! 3. Callbacks Para a utilização de callbacks em módulos é bem simples, você deve apenas trocar o nome "public" por "hook" em seu módulo, algo como: Após isso você pode utilizar a callback dentro de seu módulo sem problemas. IMPORTANTE: A ordem em que você declara seu módulo no seu GM principal vai interferir na ordem de acontecimentos, por exemplo: Você criou um módulo onde dá pontos para uma pessoa ao matar alguém e também cria um módulo onde salva as contas ao desconectar, se você declarar o módulo de salvar ao desconectar antes do módulo de dar pontos a pessoa, não irá salvar os pontos pelo fato da ordem (Espero que isso tenha ficado claro pois é muito importante). 4. Útil Algumas informações úteis. Includes - Ao declarar uma include no GM principal, ela será vinculada a todos os módulos, por tanto não é necessário declarar uma include duas vezes. Comandos - A utilização de comandos é totalmente permitida nos módulos, você pode utilizar tanto a Callback nativa quanto um processador de comandos como ZCMD ou Pawn.CMD, basta declara-lo no GM principal. Órdem dos módulos: Já citei antes mas é importante; A ordem em que você declara seu módulo no seu GM principal vai interferir na ordem de acontecimentos, por exemplo: Você criou um módulo onde dá pontos para uma pessoa ao matar alguém e também cria um módulo onde salva as contas ao desconectar, se você declarar o módulo de salvar ao desconectar antes do módulo de dar pontos a pessoa, não irá salvar os pontos pelo fato da ordem. Exagear - Provavelmente a biblioteca YSI não será compilada no Exagear, impossibilitando o uso da modularização pelo y_hooks Erros: Qualquer erro ortográfico ou alguma dúvida na utilização, me contate em meu discord: gomaink#3403 RE: Uso do Y_Hooks - Sr.Careca - 07/03/2022 Ensina y_timer RE: Uso do Y_Hooks - SubiluBR - 25/03/2022 (07/03/2022 01:34)Sr.Careca Escreveu: Ensina y_timer Poise RE: Uso do Y_Hooks - Apelaum - 06/06/2022 O meu apareceu um erro: error 021: symbol already defined: "DONT_USE_SCM" Na linha do main da minha gamemode RE: Uso do Y_Hooks - Dr Editor - 06/06/2022 (07/03/2022 01:34)Sr.Careca Escreveu: Ensina y_timer (25/03/2022 19:36)SubiluBR Escreveu:(07/03/2022 01:34)Sr.Careca Escreveu: Ensina y_timer https://ysi.fandom.com/wiki/Library:YSI%5Cy_timers RE: Uso do Y_Hooks - xbruno1000x - 06/06/2022 (06/06/2022 12:34)Apelaum Escreveu: O meu apareceu um erro: Creio que seja a #define SCM SendClientMessage. RE: Uso do Y_Hooks - Apelaum - 06/06/2022 Obrigado |