YSI: o que é e quando usar no seu gamemode
O YSI (Y_Less' Server Includes) é uma das bibliotecas de Pawn mais completas da comunidade SA-MP e open.mp. Não é um plugin: é um grande conjunto de includes que expandem o que a linguagem consegue fazer.
Os módulos mais usados
y_hooks
Permite que vários arquivos tratem o mesmo callback:
#include <YSI_Coding\y_hooks>
hook OnPlayerConnect(playerid)
{
// lógica deste módulo
return 1;
}
É fundamental para gamemodes modulares.
foreach (y_iterate)
Percorre só os jogadores conectados, sem testar os 1.000 slots:
foreach (new i : Player)
{
SendClientMessage(i, -1, "Evento começando!");
}
Também permite iteradores próprios (casas ocupadas, veículos de uma facção).
y_timers
Timers declarativos:
task SalvarTudo[300000]()
{
// a cada 5 minutos
}
ptask AtualizarFome[60000](playerid)
{
// a cada 1 minuto, por jogador
}
y_inline e y_dialog
Diálogos e consultas com callbacks inline, sem espalhar a lógica em OnDialogResponse com dezenas de IDs.
Outros
y_commands (comandos), y_ini (arquivos INI), y_va (funções variádicas), y_text (textos multilíngues) e mais.
Vantagens
- Código mais organizado e legível;
- Soluções testadas pela comunidade;
- Muito usado, então é fácil achar exemplos.
Desvantagens
- Tempo de compilação maior e mensagens de erro às vezes confusas;
- Curva de aprendizado: muita "mágica" de macros;
- Incluir tudo sem necessidade aumenta o
.amx.
Quando usar
- Gamemodes médios e grandes, especialmente roleplay: quase sempre vale a pena, pelo menos y_hooks, foreach e y_timers;
- Projetos pequenos ou de aprendizado: comece sem YSI para entender o Pawn puro e adote depois.
Compatibilidade
Use uma versão recente do YSI, compatível com o compilador e os includes do open.mp. Inclua só os módulos que usa.
Hospede seu servidor com a VittHost
Nos planos OPENMP-BR da VittHost, seu gamemode com YSI roda em servidores no Brasil com painel Pterodactyl, proteção DDoS, MySQL incluso, compatibilidade total com scripts SA-MP e teste grátis de 3 dias.