AMX_NATIVE original_OnPlayerConnect;
cell AMX_NATIVE_CALL hooked_OnPlayerConnect(AMX* amx, cell* params)
{
logprintf(" ON PLAYER CONNECT called!");
// logprintf("%d | %d", params[0], params[1]);
return original_OnPlayerConnect(amx, params);
}
AMX_HEADER* hdr = (AMX_HEADER*)amx->base;
AMX_FUNCSTUB* func;
for (int idx = 0, num = NUMENTRIES(hdr, publics, natives); idx != num; ++idx)
{
func = GETENTRY(hdr, publics, idx);
// logprintf("founded callback = %s", GETENTRYNAME(hdr, func));
if (!strcmp("OnPlayerConnect", GETENTRYNAME(hdr, func)))
{
logprintf("fname = %s | %x | %x", GETENTRYNAME(hdr, func), func, func->address);
original_OnPlayerConnect = (AMX_NATIVE)func->address;
func->address = (ucell)hooked_OnPlayerConnect;
logprintf("hooked onplayerconnect | %x", original_OnPlayerConnect);
}
}