Remove unused legacy ZRTools code.

This commit is contained in:
Richard Helgeby 2015-08-01 15:31:03 +02:00 committed by Oleg Tsvetkov
parent 71d5c297d3
commit 6550dd9e02
6 changed files with 66 additions and 217 deletions

View File

@ -25,9 +25,6 @@
* ============================================================================ * ============================================================================
*/ */
// Comment to use ZR Tools Extension, otherwise SDK Hooks Extension will be used.
#define USE_SDKHOOKS
#pragma semicolon 1 #pragma semicolon 1
#include <sourcemod> #include <sourcemod>
#include <sdktools> #include <sdktools>
@ -37,19 +34,7 @@
#include <zombiereloaded> #include <zombiereloaded>
#undef INCLUDED_BY_ZOMBIERELOADED #undef INCLUDED_BY_ZOMBIERELOADED
#if defined USE_SDKHOOKS #include <sdkhooks>
#include <sdkhooks>
#define ACTION_CONTINUE Plugin_Continue
#define ACTION_CHANGED Plugin_Changed
#define ACTION_HANDLED Plugin_Handled
#else
#include <zrtools>
#define ACTION_CONTINUE ZRTools_Continue
#define ACTION_CHANGED ZRTools_Changed
#define ACTION_HANDLED ZRTools_Handled
#endif
#define VERSION "3.1" #define VERSION "3.1"

View File

@ -59,11 +59,6 @@
*/ */
#define ANTISTICK_DEFAULT_HULL_WIDTH 32.0 #define ANTISTICK_DEFAULT_HULL_WIDTH 32.0
/**
* Stores "StartTouch" HookID's for each client.
*/
new g_iStartTouchHookID[MAXPLAYERS + 1] = {-1, ...};
/** /**
* List of components that make up the model's rectangular boundaries. * List of components that make up the model's rectangular boundaries.
* *
@ -100,15 +95,7 @@ AntiStickOnCommandsCreate()
*/ */
AntiStickClientInit(client) AntiStickClientInit(client)
{ {
// Hook "StartTouch" and "EndTouch" on client. SDKHook(client, SDKHook_StartTouch, AntiStickStartTouch);
#if defined USE_SDKHOOKS
SDKHook(client, SDKHook_StartTouch, AntiStickStartTouch);
// Set dummy value so it think it's hooked.
g_iStartTouchHookID[client] = 1;
#else
g_iStartTouchHookID[client] = ZRTools_HookStartTouch(client, AntiStickStartTouch);
#endif
} }
/** /**
@ -118,17 +105,7 @@ AntiStickClientInit(client)
*/ */
AntiStickOnClientDisconnect(client) AntiStickOnClientDisconnect(client)
{ {
// Unhook "StartTouch" callback, and reset variable. SDKUnhook(client, SDKHook_StartTouch, AntiStickStartTouch);
if (g_iStartTouchHookID[client] != -1)
{
#if defined USE_SDKHOOKS
SDKUnhook(client, SDKHook_StartTouch, AntiStickStartTouch);
#else
ZRTools_UnhookStartTouch(g_iStartTouchHookID[client]);
#endif
g_iStartTouchHookID[client] = -1;
}
} }
/** /**
@ -137,11 +114,7 @@ AntiStickOnClientDisconnect(client)
* @param client The client index. * @param client The client index.
* @param entity The entity index of the entity being touched. * @param entity The entity index of the entity being touched.
*/ */
#if defined USE_SDKHOOKS
public AntiStickStartTouch(client, entity) public AntiStickStartTouch(client, entity)
#else
public ZRTools_Action:AntiStickStartTouch(client, entity)
#endif
{ {
// If antistick is disabled, then stop. // If antistick is disabled, then stop.
new bool:antistick = GetConVarBool(g_hCvarsList[CVAR_ANTISTICK]); new bool:antistick = GetConVarBool(g_hCvarsList[CVAR_ANTISTICK]);

View File

@ -25,19 +25,17 @@
* ============================================================================ * ============================================================================
*/ */
#if defined USE_SDKHOOKS /**
/** * @section Counter Strike: Source specific damage flags.
* @section Counter Strike: Source specific damage flags. */
*/ #define DMG_CSS_FALL (DMG_FALL) // Client was damaged by falling.
#define DMG_CSS_FALL (DMG_FALL) // Client was damaged by falling. #define DMG_CSS_BLAST (DMG_BLAST) // Client was damaged by explosion.
#define DMG_CSS_BLAST (DMG_BLAST) // Client was damaged by explosion. #define DMG_CSS_BURN (DMG_DIRECT) // Client was damaged by fire.
#define DMG_CSS_BURN (DMG_DIRECT) // Client was damaged by fire. #define DMG_CSS_BULLET (DMG_NEVERGIB) // Client was shot or knifed.
#define DMG_CSS_BULLET (DMG_NEVERGIB) // Client was shot or knifed. #define DMG_CSS_HEADSHOT (1 << 30) // Client was shot in the head.
#define DMG_CSS_HEADSHOT (1 << 30) // Client was shot in the head. /**
/** * @endsection
* @endsection */
*/
#endif
/** /**
* @section Suicide intercept defines. * @section Suicide intercept defines.
@ -48,16 +46,6 @@
* @endsection * @endsection
*/ */
/**
* Array to store TraceAttack HookIDs.
*/
new g_iDamageTraceAttackHookID[MAXPLAYERS + 1] = {-1, ...};
/**
* Array to store OnTakeDamage HookIDs.
*/
new g_iDamageOnTakeDamageHookID[MAXPLAYERS + 1] = {-1, ...};
/** /**
* Array to keep track of normal/mother zombies. * Array to keep track of normal/mother zombies.
*/ */
@ -108,17 +96,8 @@ DamageLoad()
DamageClientInit(client) DamageClientInit(client)
{ {
// Hook damage callbacks. // Hook damage callbacks.
#if defined USE_SDKHOOKS SDKHook(client, SDKHook_TraceAttack, DamageTraceAttack);
SDKHook(client, SDKHook_TraceAttack, DamageTraceAttack); SDKHook(client, SDKHook_OnTakeDamage, DamageOnTakeDamage);
SDKHook(client, SDKHook_OnTakeDamage, DamageOnTakeDamage);
// Set dummy values so it think it's hooked.
g_iDamageTraceAttackHookID[client] = 1;
g_iDamageOnTakeDamageHookID[client] = 1;
#else
g_iDamageTraceAttackHookID[client] = ZRTools_HookTraceAttack(client, DamageTraceAttack);
g_iDamageOnTakeDamageHookID[client] = ZRTools_HookOnTakeDamage(client, DamageOnTakeDamage);
#endif
} }
/** /**
@ -128,29 +107,8 @@ DamageClientInit(client)
*/ */
DamageOnClientDisconnect(client) DamageOnClientDisconnect(client)
{ {
// Unhook damage callbacks, and reset variables. SDKUnhook(client, SDKHook_TraceAttack, DamageTraceAttack);
SDKUnhook(client, SDKHook_OnTakeDamage, DamageOnTakeDamage);
if (g_iDamageTraceAttackHookID[client] != -1)
{
#if defined USE_SDKHOOKS
SDKUnhook(client, SDKHook_TraceAttack, DamageTraceAttack);
#else
ZRTools_UnhookTraceAttack(g_iDamageTraceAttackHookID[client]);
#endif
g_iDamageTraceAttackHookID[client] = -1;
}
if (g_iDamageOnTakeDamageHookID[client] != -1)
{
#if defined USE_SDKHOOKS
SDKUnhook(client, SDKHook_OnTakeDamage, DamageOnTakeDamage);
#else
ZRTools_UnhookOnTakeDamage(g_iDamageOnTakeDamageHookID[client]);
#endif
g_iDamageOnTakeDamageHookID[client] = -1;
}
} }
/** /**
@ -178,22 +136,18 @@ DamageOnClientInfected(client, bool:motherinfect)
* @return Return ZRTools_Handled to stop bullet from hitting client. * @return Return ZRTools_Handled to stop bullet from hitting client.
* ZRTools_Continue to allow bullet to hit client. * ZRTools_Continue to allow bullet to hit client.
*/ */
#if defined USE_SDKHOOKS
public Action:DamageTraceAttack(client, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup) public Action:DamageTraceAttack(client, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup)
#else
public ZRTools_Action:DamageTraceAttack(client, inflictor, attacker, Float:damage, hitbox, hitgroup)
#endif
{ {
// If attacker isn't valid, then stop. // If attacker isn't valid, then stop.
if (!ZRIsClientValid(attacker)) if (!ZRIsClientValid(attacker))
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// If client is attacking himself, then stop. // If client is attacking himself, then stop.
if(attacker == client) if(attacker == client)
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// Get zombie flag for each client. // Get zombie flag for each client.
@ -207,11 +161,11 @@ public ZRTools_Action:DamageTraceAttack(client, inflictor, attacker, Float:damag
new bool:damageblockff = GetConVarBool(g_hCvarsList[CVAR_DAMAGE_BLOCK_FF]); new bool:damageblockff = GetConVarBool(g_hCvarsList[CVAR_DAMAGE_BLOCK_FF]);
if (!damageblockff) if (!damageblockff)
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// Stop bullet from hurting client. // Stop bullet from hurting client.
return ACTION_HANDLED; return Plugin_Handled;
} }
// Here we know that attacker and client are different teams. // Here we know that attacker and client are different teams.
@ -220,14 +174,14 @@ public ZRTools_Action:DamageTraceAttack(client, inflictor, attacker, Float:damag
if (ImmunityOnClientTraceAttack(client, attacker, damage, hitgroup, damagetype)) if (ImmunityOnClientTraceAttack(client, attacker, damage, hitgroup, damagetype))
{ {
// Block damage. // Block damage.
return ACTION_HANDLED; return Plugin_Handled;
} }
// If client is a human, then allow damage. // If client is a human, then allow damage.
if (InfectIsClientHuman(client)) if (InfectIsClientHuman(client))
{ {
// Allow damage. // Allow damage.
return ACTION_CONTINUE; return Plugin_Continue;
} }
// If damage hitgroups cvar is disabled, then allow damage. // If damage hitgroups cvar is disabled, then allow damage.
@ -237,7 +191,7 @@ public ZRTools_Action:DamageTraceAttack(client, inflictor, attacker, Float:damag
if (!damagehitgroups) if (!damagehitgroups)
{ {
// Allow damage. // Allow damage.
return ACTION_CONTINUE; return Plugin_Continue;
} }
// If damage is disabled for this hitgroup, then stop. // If damage is disabled for this hitgroup, then stop.
@ -247,18 +201,18 @@ public ZRTools_Action:DamageTraceAttack(client, inflictor, attacker, Float:damag
if (index == -1) if (index == -1)
{ {
// Allow damage. // Allow damage.
return ACTION_CONTINUE; return Plugin_Continue;
} }
new bool:candamage = HitgroupsCanDamage(index); new bool:candamage = HitgroupsCanDamage(index);
if (!candamage) if (!candamage)
{ {
// Stop bullet from hurting client. // Stop bullet from hurting client.
return ACTION_HANDLED; return Plugin_Handled;
} }
// Allow damage. // Allow damage.
return ACTION_CONTINUE; return Plugin_Continue;
} }
/** /**
@ -274,11 +228,7 @@ public ZRTools_Action:DamageTraceAttack(client, inflictor, attacker, Float:damag
* @return Return ZRTools_Handled to stop the damage to client. * @return Return ZRTools_Handled to stop the damage to client.
* ZRTools_Continue to allow damage to client. * ZRTools_Continue to allow damage to client.
*/ */
#if defined USE_SDKHOOKS
public Action:DamageOnTakeDamage(client, &attacker, &inflictor, &Float:damage, &damagetype) public Action:DamageOnTakeDamage(client, &attacker, &inflictor, &Float:damage, &damagetype)
#else
public ZRTools_Action:DamageOnTakeDamage(client, inflictor, attacker, Float:damage, damagetype, ammotype)
#endif
{ {
// Get classname of the inflictor. // Get classname of the inflictor.
decl String:classname[64]; decl String:classname[64];
@ -287,22 +237,18 @@ public ZRTools_Action:DamageOnTakeDamage(client, inflictor, attacker, Float:dama
// If entity is a trigger, then allow damage. (Map is damaging client) // If entity is a trigger, then allow damage. (Map is damaging client)
if (StrContains(classname, "trigger") > -1) if (StrContains(classname, "trigger") > -1)
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
new action; new Action:action;
// Forward this hook to another module an return (or not) what it wants. // Forward this hook to another module an return (or not) what it wants.
action = NapalmOnTakeDamage(client, damagetype); action = Action:NapalmOnTakeDamage(client, damagetype);
// If the napalm module wants to return here, then return the int casted into the action type. // If the napalm module wants to return here, then return the int casted into the action type.
if (action > -1) if (action > Action:-1)
{ {
#if defined USE_SDKHOOKS return action;
return Action:action;
#else
return ZRTools_Action:action;
#endif
} }
// Client was shot or knifed. // Client was shot or knifed.
@ -311,7 +257,7 @@ public ZRTools_Action:DamageOnTakeDamage(client, inflictor, attacker, Float:dama
// If attacker isn't valid, then allow damage. // If attacker isn't valid, then allow damage.
if (!ZRIsClientValid(attacker)) if (!ZRIsClientValid(attacker))
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// Get zombie flag for each client. // Get zombie flag for each client.
@ -321,7 +267,7 @@ public ZRTools_Action:DamageOnTakeDamage(client, inflictor, attacker, Float:dama
// If client and attacker are on the same team, then let CS:S handle the rest. // If client and attacker are on the same team, then let CS:S handle the rest.
if (clientzombie == attackerzombie) if (clientzombie == attackerzombie)
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// We know that clientzombie is the opposite of attacker zombie. // We know that clientzombie is the opposite of attacker zombie.
@ -329,7 +275,7 @@ public ZRTools_Action:DamageOnTakeDamage(client, inflictor, attacker, Float:dama
// If the client is a zombie, then allow damage. // If the client is a zombie, then allow damage.
if (clientzombie) if (clientzombie)
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// Check if immunity module blocked or modified the damage. // Check if immunity module blocked or modified the damage.
@ -367,7 +313,7 @@ public ZRTools_Action:DamageOnTakeDamage(client, inflictor, attacker, Float:dama
SetEntityHealth(client, health + RoundToNearest(damage)); SetEntityHealth(client, health + RoundToNearest(damage));
// Allow damage. // Allow damage.
return ACTION_CONTINUE; return Plugin_Continue;
} }
} }
// Client was damaged by explosion. // Client was damaged by explosion.
@ -377,23 +323,23 @@ public ZRTools_Action:DamageOnTakeDamage(client, inflictor, attacker, Float:dama
new bool:damageblockblast = GetConVarBool(g_hCvarsList[CVAR_DAMAGE_BLOCK_BLAST]); new bool:damageblockblast = GetConVarBool(g_hCvarsList[CVAR_DAMAGE_BLOCK_BLAST]);
if (!damageblockblast) if (!damageblockblast)
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// If attacker isn't valid, then allow damage. // If attacker isn't valid, then allow damage.
if (!ZRIsClientValid(attacker)) if (!ZRIsClientValid(attacker))
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// If client is a zombie, then allow damage. // If client is a zombie, then allow damage.
if (InfectIsClientInfected(client)) if (InfectIsClientInfected(client))
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// Stop damage. // Stop damage.
return ACTION_HANDLED; return Plugin_Handled;
} }
// Client was damaged by falling. // Client was damaged by falling.
else if (damagetype & DMG_CSS_FALL) else if (damagetype & DMG_CSS_FALL)
@ -402,15 +348,15 @@ public ZRTools_Action:DamageOnTakeDamage(client, inflictor, attacker, Float:dama
new bool:blockfalldamage = ClassGetNoFallDamage(client); new bool:blockfalldamage = ClassGetNoFallDamage(client);
if (!blockfalldamage) if (!blockfalldamage)
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// Stop damage. // Stop damage.
return ACTION_HANDLED; return Plugin_Handled;
} }
// Allow damage. // Allow damage.
return ACTION_CONTINUE; return Plugin_Continue;
} }
/** /**

View File

@ -104,7 +104,7 @@ NapalmOnTakeDamage(client, damagetype)
} }
} }
return _:ACTION_CONTINUE; return _:Plugin_Continue;
} }
} }
} }

View File

@ -38,11 +38,6 @@ enum RestrictData
RESTRICT_DATA_NAME = 0, RESTRICT_DATA_NAME = 0,
} }
/**
* Array that stores the "HookID" to be later unhooked on player disconnect.
*/
new g_iCanUseHookID[MAXPLAYERS + 1] = {-1, ...};
/** /**
* Array to block any client from picking up weapons. * Array to block any client from picking up weapons.
*/ */
@ -137,17 +132,7 @@ RestrictOnCommandsCreate()
*/ */
RestrictClientInit(client) RestrictClientInit(client)
{ {
// Hook "Weapon_CanUse" on client. SDKHook(client, SDKHook_WeaponCanUse, RestrictCanUse);
#if defined USE_SDKHOOKS
SDKHook(client, SDKHook_WeaponCanUse, RestrictCanUse);
// Set dummy value so it think it's hooked.
g_iCanUseHookID[client] = 1;
#else
g_iCanUseHookID[client] = ZRTools_HookWeapon_CanUse(client, RestrictCanUse);
#endif
// Reset block weapons flag.
g_bRestrictBlockWeapon[client] = false; g_bRestrictBlockWeapon[client] = false;
} }
@ -158,17 +143,7 @@ RestrictClientInit(client)
*/ */
RestrictOnClientDisconnect(client) RestrictOnClientDisconnect(client)
{ {
// Unhook "Weapon_CanUse" callback, and reset variable. SDKUnhook(client, SDKHook_WeaponCanUse, RestrictCanUse);
if (g_iCanUseHookID[client] != -1)
{
#if defined USE_SDKHOOKS
SDKUnhook(client, SDKHook_WeaponCanUse, RestrictCanUse);
#else
ZRTools_UnhookWeapon_CanUse(g_iCanUseHookID[client]);
#endif
g_iCanUseHookID[client] = -1;
}
} }
/** /**
@ -179,17 +154,15 @@ RestrictOnClientDisconnect(client)
RestrictOnClientSpawn(client) RestrictOnClientSpawn(client)
{ {
// Re-hook "canuse" on client. // Re-hook "canuse" on client.
#if defined USE_SDKHOOKS SDKUnhook(client, SDKHook_WeaponCanUse, RestrictCanUse);
SDKUnhook(client, SDKHook_WeaponCanUse, RestrictCanUse); // <--- What happens if it's not already hooked??? SDKHook(client, SDKHook_WeaponCanUse, RestrictCanUse);
SDKHook(client, SDKHook_WeaponCanUse, RestrictCanUse);
g_iCanUseHookID[client] = 1;
#else
ZRTools_UnhookWeapon_CanUse(g_iCanUseHookID[client]);
g_iCanUseHookID[client] = ZRTools_HookWeapon_CanUse(client, RestrictCanUse);
#endif
// H4x. Unfortunately I can't disable this flag early enough for CS:S to give start USP/Glock. // H4x. Unfortunately I can't disable this flag early enough for CS:S to give start USP/Glock.
// So I have to give BOOTLEG weapons. (Sorry Valve) // So I have to give BOOTLEG weapons. (Sorry Valve)
// CS:GO TODO: Move this into separate functions for CS:S and CS:GO. And
// call the correct function.
if (g_bRestrictBlockWeapon[client]) if (g_bRestrictBlockWeapon[client])
{ {
// Reset block weapons flag. // Reset block weapons flag.
@ -613,45 +586,44 @@ stock bool:RestrictIsTypeUniform(bool:restricted, index)
* @return Return ZRTools_Handled to stop weapon pickup. * @return Return ZRTools_Handled to stop weapon pickup.
* ZRTools_Continue to allow weapon pickup. * ZRTools_Continue to allow weapon pickup.
*/ */
#if defined USE_SDKHOOKS
public Action:RestrictCanUse(client, weapon) public Action:RestrictCanUse(client, weapon)
#else
public ZRTools_Action:RestrictCanUse(client, weapon)
#endif
{ {
// WARNING: This function is called _frequently_. Every game tick per
// player, I think. Make sure any code here is optimized.
new String:weaponentity[WEAPONS_MAX_LENGTH]; new String:weaponentity[WEAPONS_MAX_LENGTH];
GetEdictClassname(weapon, weaponentity, sizeof(weaponentity)); GetEdictClassname(weapon, weaponentity, sizeof(weaponentity));
// If weapon is a knife, then allow pickup. // If weapon is a knife, then allow pickup.
if (StrEqual(weaponentity, "weapon_knife")) if (StrEqual(weaponentity, "weapon_knife"))
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// If the player is a zombie, then prevent pickup. // If the player is a zombie, then prevent pickup.
if (InfectIsClientInfected(client)) if (InfectIsClientInfected(client))
{ {
return ACTION_HANDLED; return Plugin_Handled;
} }
// If client is flagged for not picking up weapons, then stop. // If client is flagged for not picking up weapons, then stop.
if (g_bRestrictBlockWeapon[client]) if (g_bRestrictBlockWeapon[client])
{ {
return ACTION_HANDLED; return Plugin_Handled;
} }
// If weapons module is disabled, then stop. // If weapons module is disabled, then stop.
new bool:weapons = GetConVarBool(g_hCvarsList[CVAR_WEAPONS]); new bool:weapons = GetConVarBool(g_hCvarsList[CVAR_WEAPONS]);
if (!weapons) if (!weapons)
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// If restrict module is disabled, then stop. // If restrict module is disabled, then stop.
new bool:restrict = GetConVarBool(g_hCvarsList[CVAR_WEAPONS_RESTRICT]); new bool:restrict = GetConVarBool(g_hCvarsList[CVAR_WEAPONS_RESTRICT]);
if (!restrict) if (!restrict)
{ {
return ACTION_CONTINUE; return Plugin_Continue;
} }
// If the weapon is restricted, then prevent pickup. // If the weapon is restricted, then prevent pickup.
@ -662,20 +634,20 @@ public ZRTools_Action:RestrictCanUse(client, weapon)
if (weaponindex == -1) if (weaponindex == -1)
{ {
// Allow pickup. // Allow pickup.
return ACTION_CONTINUE; return Plugin_Continue;
} }
// If weapon is restricted, then stop. // If weapon is restricted, then stop.
if (RestrictIsWeaponRestricted(weaponindex)) if (RestrictIsWeaponRestricted(weaponindex))
{ {
return ACTION_HANDLED; return Plugin_Handled;
} }
// Forward event to weapons module. // Forward event to weapons module.
WeaponsOnItemPickup(client, weapon); WeaponsOnItemPickup(client, weapon);
// Allow pickup. // Allow pickup.
return ACTION_CONTINUE; return Plugin_Continue;
} }
/** /**

View File

@ -30,11 +30,6 @@
*/ */
#define WEAPONALPHA_DEFAULT_VALUE 255 #define WEAPONALPHA_DEFAULT_VALUE 255
/**
* Array that stores the "HookID" to be later unhooked on player disconnect.
*/
new g_iWeaponDropHookID[MAXPLAYERS + 1] = {-1, ...};
/** /**
* Client is joining the server. * Client is joining the server.
* *
@ -43,15 +38,7 @@ new g_iWeaponDropHookID[MAXPLAYERS + 1] = {-1, ...};
WeaponAlphaClientInit(client) WeaponAlphaClientInit(client)
{ {
return; return;
// Hook "Weapon_Drop" on client. SDKHook(client, SDKHook_WeaponDrop, WeaponAlphaDrop);
#if defined USE_SDKHOOKS
SDKHook(client, SDKHook_WeaponDrop, WeaponAlphaDrop);
// Set dummy value so it think it's hooked.
g_iWeaponDropHookID[client] = 1;
#else
g_iWeaponDropHookID[client] = ZRTools_HookWeapon_Drop(client, WeaponAlphaDrop);
#endif
} }
/** /**
@ -62,17 +49,7 @@ WeaponAlphaClientInit(client)
WeaponAlphaOnClientDisconnect(client) WeaponAlphaOnClientDisconnect(client)
{ {
return; return;
// Unhook "Weapon_Drop" callback, and reset variable. SDKUnhook(client, SDKHook_WeaponDrop, WeaponAlphaDrop);
if (g_iWeaponDropHookID[client] != -1)
{
#if defined USE_SDKHOOKS
SDKUnhook(client, SDKHook_WeaponDrop, WeaponAlphaDrop);
#else
ZRTools_UnhookWeapon_Drop(g_iWeaponDropHookID[client]);
#endif
g_iWeaponDropHookID[client] = -1;
}
} }
/** /**
@ -108,11 +85,7 @@ WeaponAlphaOnItemPickupPost(client, weapon)
* @param client The client index. * @param client The client index.
* @param weapon The weapon index. * @param weapon The weapon index.
*/ */
#if defined USE_SDKHOOKS
public Action:WeaponAlphaDrop(client, weapon) public Action:WeaponAlphaDrop(client, weapon)
#else
public ZRTools_Action:WeaponAlphaDrop(client, weapon)
#endif
{ {
return; return;
// If weapon isn't a valid entity, then stop. // If weapon isn't a valid entity, then stop.