Добрый вечер всем.
Хотелось бы конкретнее узнать как правильно заменить модели гранат в моде ZP 5.0
Пробовал два варианта решения
1 - Через Ham_Item_Deploy
2 - CurWeapon
Через Ham_Item_Deploy модели вовсе не менялись, а через CurWeapon модели без проблем меняются
Может кто подскажет или объяснит как можно заменить модели не применяя CurWeapon?
Хотелось бы конкретнее узнать как правильно заменить модели гранат в моде ZP 5.0
Пробовал два варианта решения
1 - Через Ham_Item_Deploy
2 - CurWeapon
C++:
#include <amxmodx>
#include <hamsandwich>
#include <reapi>
#include <zp50_items>
#include <zp50_grenade_fire>
#define GRENADE_ID 200
#define IsCustomGrenade(%0) bool:(get_entvar(%0, var_impulse) == GRENADE_ID)
new const g_szGrenadeName[] = "weapon_hegrenade"
new const g_szGrenadeVmodel[] = "models/zm_cso/weapons/grenade_cartfrag/v_cartfrag.mdl"
new const g_szGrenadePmodel[] = "models/zm_cso/weapons/grenade_cartfrag/p_cartfrag.mdl"
new g_Item_ID
new g_has_bomb[33]
public plugin_init()
{
register_plugin("[ZP] Weapon: Cartfrag", "0.1", "EPIDEMIC")
RegisterHam(Ham_Item_Deploy, g_szGrenadeName, "RG_Ham_Item_Deploy", true)
g_Item_ID = zp_items_register("ITEM_CART", 20, 2, 1, 5, 0)
}
public plugin_precache()
{
precache_model(g_szGrenadeVmodel)
precache_model(g_szGrenadePmodel)
}
public zp_fw_items_select_post(id, iItem_ID)
{
// This is not our item
if (iItem_ID != g_Item_ID)
{
return;
}
if(iItem_ID == g_Item_ID)
{
g_has_bomb[id] = 1
rg_give_item(id, "weapon_hegrenade");
}
}
public zp_fw_grenade_fire_pre(id)
{
return PLUGIN_HANDLED
}
public RG_Ham_Item_Deploy(iWeapon)
{
if(!IsCustomGrenade(iWeapon))
{
return HAM_IGNORED
}
static id
id = get_member(iWeapon, m_pPlayer)
if(get_user_weapon(id) == CSW_HEGRENADE && g_has_bomb[id])
{
set_entvar(id, var_viewmodel, g_szGrenadeVmodel)
set_entvar(id, var_weaponmodel, g_szGrenadePmodel)
}
return HAM_IGNORED
}
C++:
#include <amxmodx>
#include <fakemeta>
#include <reapi>
#include <zp50_items>
#include <zp50_grenade_fire>
new const g_szGrenadeVmodel[] = "models/zm_cso/weapons/grenade_cartfrag/v_cartfrag.mdl"
new const g_szGrenadePmodel[] = "models/zm_cso/weapons/grenade_cartfrag/p_cartfrag.mdl"
new g_Item_ID
new g_has_bomb[33]
public plugin_init()
{
register_plugin("[ZP] Weapon: Cartfrag", "0.1", "EPIDEMIC")
register_event("CurWeapon", "Event_CurWeapon", "be", "1=1");
g_Item_ID = zp_items_register("ITEM_CART", 20, 2, 1, 5, 0)
}
public plugin_precache()
{
precache_model(g_szGrenadeVmodel)
precache_model(g_szGrenadePmodel)
register_clcmd("weapon_firebomb", "Hook_Select")
}
public Hook_Select(id){
engclient_cmd(id, "weapon_hegrenade")
return PLUGIN_HANDLED
}
public zp_fw_items_select_post(id, iItem_ID)
{
// This is not our item
if (iItem_ID != g_Item_ID)
{
return;
}
if(iItem_ID == g_Item_ID)
{
g_has_bomb[id] = 1
rg_give_item(id, "weapon_hegrenade");
}
}
public zp_fw_grenade_fire_pre(id)
{
return PLUGIN_HANDLED
}
public Event_CurWeapon(id)
{
if (!is_user_alive(id))
return
if(get_user_weapon(id) == CSW_HEGRENADE && g_has_bomb[id])
{
set_entvar(id, var_viewmodel, g_szGrenadeVmodel)
set_entvar(id, var_weaponmodel, g_szGrenadePmodel)
}
}
Через Ham_Item_Deploy модели вовсе не менялись, а через CurWeapon модели без проблем меняются
Может кто подскажет или объяснит как можно заменить модели не применяя CurWeapon?