¿Qué es ReAPI?
ReAPI es un módulo de AMX Mod X que expone las interioridades de ReHLDS y ReGameDLL_CS a los plugins de Pawn como nativas normales, en lugar de obligar a sus autores a parchear desplazamientos de memoria o a reconstruir estructuras por su cuenta. Da al código en Pawn un acceso seguro y versionado a comportamientos del motor y de la GameDLL que quedan fuera del alcance de AMX Mod X y Metamod por sí solos.
Qué te ofrece
- Cadenas de enganches — intercepta funciones del motor (ReHLDS) y de la GameDLL (ReGameDLL_CS) en
preypost, con control preciso sobre el valor devuelto e incluso sobre los argumentos de la función original. - Acceso a miembros de estructuras — lee y escribe miembros internos de las estructuras del motor y de la GameDLL (jugador, arma, granada, reglas de juego y más) por su nombre, en lugar de por un desplazamiento calculado a mano.
- Comprobaciones del entorno en ejecución — nativas como
is_rehlds(),is_regamedll(),has_reunion(),has_vtc()yhas_rechecker()permiten que un plugin se adapte al entorno en el que realmente se está ejecutando. - Cabeceras de integración opcionales —
reapi_reunion.inc,reapi_vtc.incyreapi_rechecker.incexponen enganches para ReUnion, el antitrampas VTC y ReChecker cuando están instalados.
Requisitos, en resumen
- AMX Mod X funcionando sobre Metamod-R (o Metamod) y ReHLDS. Los enganches y miembros del motor necesitan ReHLDS.
- ReGameDLL_CS si tu plugin usa enganches o miembros de la GameDLL (
reapi_gamedll.inc). Los plugins que solo trabajan a nivel de motor funcionan sin él.
Los pasos exactos están en Instalación.
Un ejemplo mínimo
#include <amxmodx>
#include <reapi>
public plugin_init()
{
register_plugin("ReAPI Test", "1.0", "s1lent");
RegisterHookChain(RG_CBasePlayer_GiveAmmo, "CBasePlayer_GiveAmmo");
}
public CBasePlayer_GiveAmmo(const this, iAmount, szName[], iMax)
{
server_print("-> CBasePlayer_GiveAmmo: index:(%d), amount:(%d), name:(%s), max:(%d)", this, iAmount, szName, iMax);
return HC_CONTINUE;
}
Este código engancha CBasePlayer::GiveAmmo del lado de la GameDLL y registra cada llamada sin alterar el comportamiento (HC_CONTINUE). La API completa de cadenas de enganches y los tipos de valores y argumentos disponibles están en Configuración.
Qué consultar a continuación
- Instalación — instala el módulo y actívalo en tus plugins.
- Configuración — la API de cadenas de enganches y de acceso a miembros, con las nativas que realmente vas a llamar.
- Instrucciones de compilación — compila ReAPI desde el código fuente.
- Créditos — licencia y enlaces del proyecto.