diff --git a/scripting/eventqueuefix.sp b/scripting/eventqueuefix.sp index 1b8e72b..37170d2 100644 --- a/scripting/eventqueuefix.sp +++ b/scripting/eventqueuefix.sp @@ -135,18 +135,10 @@ public void OnClientPutInServer(int client) } } -public void OnClientDisconnect(int client) +public void OnClientDisconnect_Post(int client) { - if(g_aPlayerEvents[client] != null) - { - g_aPlayerEvents[client].Clear(); - } - - if(g_aOutputWait[client] != null) - { - g_aOutputWait[client].Clear(); - delete g_aOutputWait[client]; - } + delete g_aPlayerEvents[client]; + delete g_aOutputWait[client]; } public void OnEntityCreated(int entity, const char[] classname) @@ -224,26 +216,27 @@ int EntityToBCompatRef(Address player) public MRESReturn DHook_AddEventThree(Handle hParams) { event_t event; + event.activator = EntRefToEntIndex(EntityToBCompatRef(view_as
(DHookGetParam(hParams, 5)))); + + if (event.activator < 1 || event.activator > MaxClients) + { + return MRES_Ignored; + } + DHookGetParamString(hParams, 1, event.target, 64); DHookGetParamString(hParams, 2, event.targetInput, 64); DHookGetParamObjectPtrString(hParams, 3, 0, ObjectValueType_String, event.variantValue, sizeof(event.variantValue)); int ticks = RoundToCeil((view_as