Portal SAMP
[Ajuda] Modulação (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: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Modulação (y_hooks) (/showthread.php?tid=308)



Modulação (y_hooks) - Gomes - 12/11/2020

Ajuda em modular com y_hooks

Alguém tem, ou pode fazer um tutorial de como utilizar e modular com y_hooks?


Obs: Sim, já vi o vídeo do Chainksain e não entendi muito bem


RE: Modulação (y_hooks) - Carlos Victor - 13/10/2024

A modulação é um sistema de gerenciamento do seu próprio projeto; é a forma como você organiza o projeto em partes menores, como sistemas, variáveis, comandos, funções, entre outros.

Uma estrutura de modulação deve seguir uma regra fundamental: a hierarquia. Por exemplo, se você definir uma variável em ./src/variaveis.pwn e tentar usá-la em ./src/login.pwn usando a estrutura:
Código:
#include "./src/login.pwn"
#include "./src/variaveis.pwn"

Você receberá erros, porque, para o compilador, a variável ainda não foi criada. Por isso, é essencial respeitar essa regra hierárquica.
Usando o y_hooks, a modulação se torna mais fácil (comparado ao ALS Hook, por exemplo). Basta incluir
Código:
#include <YSI_Coding/y_hooks>

No início do seu arquivo modulado e, também, definir esse arquivo no arquivo principal. Veja o exemplo abaixo:
Código:
// gamemodes/main.pwn
#include <a_samp>
#include <YSI_Coding/y_hooks> // Inicializa o YSI

// Módulos
#include "./src/server/header.pwn"

main() {
    print("Server has been started!");
}

No arquivo header.pwn, você coloca:
Código:
// ./src/server/header.pwn
#include <YSI_Coding/y_hooks>

hook OnGameModeInit() {
    // Código aqui...
    return 1;
}
E você seguirá a mesma estrutura para todos os outros arquivos que precisam de hooks. Essa é uma explicação básica, mas que já deve ajudar a abrir a mente do pessoal.