Hi guys, can fix this guys M249 + HE BOMB + FLASH BOMBS Models For VIPS ADMIN_LEVEL_H
PHP Code:
#include <zombie_escape>
#define MODEL_MAX_LENGTH 64
// Models
new g_v_szMinigunModel[MODEL_MAX_LENGTH] = "models/VIPItems/v_m249_hum.mdl"
new g_p_szMinigunModel[MODEL_MAX_LENGTH] = "models/VIPItems/p_m249.mdl"
new g_v_szFrostGrenadeModel[MODEL_MAX_LENGTH] = "models/zombie_escape/v_grenade_frost.mdl"
new g_w_szFrostGrenadeModel[MODEL_MAX_LENGTH] = "models/zombie_escape/w_grenade_frost.mdl"
new g_v_szModelFireGrenade[MODEL_MAX_LENGTH] = "models/zombie_escape/v_grenade_fire.mdl"
new g_w_szModelFireGrenade[MODEL_MAX_LENGTH] = "models/zombie_escape/w_grenade_fire.mdl"
// Cvars
new cvar_dmgmultiplier
// Variables
new bool:g_bHaveMiniGun[33]
public plugin_natives()
{
register_native("ze_give_minigun", "native_ze_give_minigun", 1)
}
public plugin_init()
{
register_plugin("[Weapons] Minigun", "1.0", "Raheem")
// Cvars
cvar_dmgmultiplier = register_cvar("ze_minigun_damage", "1.5")
// Events
register_event("WeapPickup", "CheckModel", "b", "1=19")
register_event("CurWeapon", "CurrentWeapon", "be", "1=1")
// Forwards
register_forward(FM_SetModel, "Fw_SetModel")
// HookChains
RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
}
public plugin_precache()
{
// Models
precache_model(g_v_szMinigunModel)
precache_model(g_p_szMinigunModel)
precache_model(g_v_szFrostGrenadeModel)
precache_model(g_w_szFrostGrenadeModel)
precache_model(g_v_szModelFireGrenade)
precache_model(g_w_szModelFireGrenade)
}
public ze_user_humanized(id)
{
if (get_user_flags(id) & ADMIN_LEVEL_H)
{
set_task(0.1, "Give_M249", id)
}
}
public Give_M249(id)
{
native_ze_give_minigun(id)
// Set custom grenade model
cs_set_player_view_model(id, CSW_FLASHBANG, g_v_szFrostGrenadeModel)
cs_set_player_weap_model(id, CSW_FLASHBANG, g_p_szFrostGrenadeModel)
cs_set_player_view_model(id, CSW_HEGRENADE, g_v_szModelFireGrenade)
cs_set_player_weap_model(id, CSW_HEGRENADE, g_w_szModelFireGrenade)
}
public native_ze_give_minigun(player)
{
g_bHaveMiniGun[player] = true
rg_remove_item(player, "weapon_m249")
rg_give_item(player, "weapon_m249", GT_APPEND)
rg_set_user_bpammo(player, WeaponIdType:get_weaponid("weapon_m249"), 200)
ze_colored_print(player, "!y+!tMinigun!y, !tDamage !gx%0.1f!y!", get_pcvar_float(cvar_dmgmultiplier))
}
public client_disconnect(id)
{
g_bHaveMiniGun[id] = false
}
public ze_user_infected(infected)
{
if (g_bHaveMiniGun[infected])
{
g_bHaveMiniGun[infected] = false
}
}
public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
{
if (!is_user_alive(iVictim) || !is_user_alive(iAttacker))
return HC_CONTINUE
if (g_bHaveMiniGun[iAttacker] && (get_user_weapon(iAttacker) == CSW_M249))
{
SetHookChainArg(4 , ATYPE_FLOAT, fDamage * get_pcvar_float(cvar_dmgmultiplier))
return HC_CONTINUE
}
return HC_CONTINUE
}
public CurrentWeapon(id)
{
if ((get_user_weapon(id) == CSW_M249) && g_bHaveMiniGun[id] == true)
{
CheckModel(id)
}
return PLUGIN_CONTINUE
}
public CheckModel(id)
{
if (is_user_alive(id) && g_bHaveMiniGun[id] == true)
{
set_pev(id, pev_viewmodel2, g_v_szMinigunModel)
set_pev(id, pev_weaponmodel2, g_p_szMinigunModel)
}
return PLUGIN_CONTINUE
}
public Fw_SetModel(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED
if(!equali(model, "models/w_m249.mdl"))
return FMRES_IGNORED
static iOwner, iStoredGlockID
// G3SG1 Owner
iOwner = entity_get_edict(entity, EV_ENT_owner)
// Get drop weapon index G3SG1
iStoredGlockID = find_ent_by_owner(-1, "weapon_m249", entity)
// If Player Has G3SG1
if(g_bHaveMiniGun[iOwner] && is_valid_ent(iStoredGlockID))
{
// Setting weapon options
entity_set_int(iStoredGlockID, EV_INT_impulse, 55)
// Set weaponbox new model
entity_set_model(entity, g_w_szMinigunModel)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}