Пытаюсь сделать что б нож не исчезал после смерти но чет не выходит. Не работает функция PlayerSpawn, подскажите где я допускаю ошибку
Код:
#include <amxmodx>
#include <hamsandwich>
#include <reapi>
#define WEAPON_ID WEAPON_KNIFE // ID оружия
#define WEAPON_NAME "weapon_knife" // Название оружия
#define WEAPON_GRAVITY 0.7 // Гравитация (1.0 == sv_gravity). Закоментировать если количество по умолчанию.
#define MODEL_V "models/Knife/Gravity/v_shiner.mdl" // Модель V оружия.
#define MODEL_P "models/Knife/Gravity/p_shiner.mdl" // Модель P оружия.
#define WEAPON_UID 2
#define ActiveWeapon(%0) get_member(%0, m_pActiveItem)
#define GetWeponID(%1) WeaponIdType:get_member(%1, m_iId)
#define IsCustomWeapon(%1) bool:(get_entvar(%1, var_impulse) == WEAPON_UID)
#define IsUserValid(%0) (1 <= %0 <= MaxClients)
public plugin_precache() {
precache_model(MODEL_V);
precache_model(MODEL_P);
}
public plugin_init() {
RegisterHam(Ham_Item_Deploy, WEAPON_NAME, "Item_Deploy_Post", true);
RegisterHookChain(RG_CBasePlayer_Spawn, "PlayerSpawn", true);
RegisterHam(Ham_Item_Holster, WEAPON_NAME, "HookHolster", 1);
}
public CmdGive(id) {
rg_remove_item(id, WEAPON_NAME)
new weapon = rg_give_custom_item(id, WEAPON_NAME, GT_REPLACE, WEAPON_UID);
if (is_nullent(weapon)) {
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
public Item_Deploy_Post(weapon) {
if (!IsCustomWeapon(weapon)) {
return HAM_IGNORED;
}
new id = get_member(weapon, m_pPlayer);
set_entvar(id, var_viewmodel, MODEL_V);
set_entvar(id, var_weaponmodel, MODEL_P);
set_entvar(id, var_gravity, WEAPON_GRAVITY);
return HAM_IGNORED;
}
public HookHolster(weapon) {
new id = get_member(weapon, m_pPlayer);
if (!is_user_connected(id) || !IsCustomWeapon(weapon)) {
return HAM_IGNORED;
}
set_entvar(id, var_gravity, 1.0);
return HAM_IGNORED;
}
public PlayerSpawn(weapon){
new id = get_member(weapon, m_pPlayer);
if (!is_user_connected(id) || !IsCustomWeapon(weapon)) {
return PLUGIN_HANDLED;
}
CmdGive(id)
return PLUGIN_HANDLED;
}
public plugin_natives()
{
register_native("CustomWeaponKnifeGravity", "__CustomWeaponKnifeGravity");
}
public __CustomWeaponKnifeGravity(iPlugin, iParams)
{
enum { player = 1 };
new id = get_param(player);
if(!IsUserValid(id))
abort(AMX_ERR_NATIVE, "Player out of range (%i)", id);
CmdGive(id);
}