- #include <zombie_escape>
- #include <cstrike>
- #include <engine>
- new const V_M4A1_MODEL[] = "models/zombie_escape/v_frost_m4a1.mdl"
- new const P_M4A1_MODEL[] = "models/zombie_escape/p_frost_m4a1.mdl"
- new const W_M4A1_MODEL[] = "models/zombie_escape/w_frost_m4a1.mdl"
- new const W_OLD_M4A1_MODEL[] = "models/w_m4a1.mdl"
- new g_iItemID, g_iHudSync, g_iSpriteLaser, g_iFreezeDmg, g_iDmgMultiplier
- new bool:g_bHasFrostM4A1[33]
- new g_iDmg[33]
- public plugin_init()
- {
- register_plugin("[ZE] Extra Item: Frost M4A1", "1.0", "Raheem")
- // Cvars
- g_iFreezeDmg = register_cvar("ze_freezing_m4a1_damage", "2000") // Damage Requried So Zombie got Frozen
- g_iDmgMultiplier = register_cvar("ze_multiplier_m4a1_damage", "2") // Multiplie Weapon Damage
- // Message IDS
- g_iHudSync = CreateHudSyncObj()
- // ITEM NAME & COST
- g_iItemID = ze_register_item("Frost M4A1", 30, 0) // It's cost 30 Ammo Pack
- // 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)
- // Hams
- RegisterHam(Ham_TraceAttack, "player", "Fw_TraceAttack_Post", 1)
- RegisterHam(Ham_TraceAttack, "worldspawn", "Fw_TraceAttack_Post", 1)
- RegisterHam(Ham_Item_AddToPlayer, "weapon_m4a1", "Fw_AddFrostM4A1ToPlayer")
- }
- public plugin_precache()
- {
- // Models
- precache_model(V_M4A1_MODEL)
- precache_model(P_M4A1_MODEL)
- precache_model(W_M4A1_MODEL)
- // Sprites
- g_iSpriteLaser = precache_model( "sprites/Newlightning.spr")
- }
- public client_disconnected(id)
- {
- g_bHasFrostM4A1[id] = false
- }
- public ze_select_item_pre(id, itemid)
- {
- // Return Available and we will block it in Post, So it dosen't affect other plugins
- if (itemid != g_iItemID)
- return ZE_ITEM_AVAILABLE
- // Available for Humans only, So don't show it for zombies
- if (ze_is_user_zombie(id))
- return ZE_ITEM_DONT_SHOW
- return ZE_ITEM_AVAILABLE
- }
- public ze_select_item_post(player, itemid)
- {
- if (itemid != g_iItemID)
- return
- g_bHasFrostM4A1[player] = true
- rg_remove_item(player, "weapon_m4a1")
- rg_give_item(player, "weapon_m4a1", GT_APPEND)
- rg_set_user_bpammo(player, WeaponIdType:get_weaponid("weapon_m4a1"), 90)
- new szName[32]
- get_user_name(player, szName, charsmax(szName))
- set_hudmessage(random(255), random(255), random(255), -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1)
- show_hudmessage(0, "%s Has bought Frost M4A1!", szName)
- ze_colored_print(player, "!tYou Have bought Frost M4A1!y!")
- }
- public Fw_TraceAttack_Post(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
- {
- if(!is_user_alive(iAttacker) && ze_is_user_zombie(iEnt))
- return
- if(get_user_weapon(iAttacker) != CSW_M4A1 || !g_bHasFrostM4A1[iAttacker])
- return
- set_hudmessage(34, 138, 255, -1.0, 0.17, 1, 0.0, 2.0, 1.0, 1.0, -1)
- ShowSyncHudMsg(iAttacker, g_iHudSync, "Freeze Damage^n%d/%d", g_iDmg[iAttacker], get_pcvar_num(g_iFreezeDmg))
- new vec1[3], vec2[3]
- get_user_origin(iAttacker, vec1, 1)
- get_user_origin(iAttacker, vec2, 4)
- make_beam(vec1, vec2, g_iSpriteLaser, 0, 50, 200, 200)
- }
- public ze_user_infected(infected)
- {
- if (g_bHasFrostM4A1[infected])
- {
- g_bHasFrostM4A1[infected] = false
- }
- }
- public ze_user_humanized(id)
- {
- g_bHasFrostM4A1[id] = false
- g_iDmg[id] = 0
- }
- public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
- {
- // Not Vaild Victim or Attacker
- if (!ze_is_user_zombie(iVictim) || !is_user_connected(iAttacker))
- return HC_CONTINUE
- if (g_bHasFrostM4A1[iAttacker] && (get_user_weapon(iAttacker) == CSW_M4A1))
- {
- SetHookChainArg(4 , ATYPE_FLOAT, fDamage * get_pcvar_num(g_iDmgMultiplier))
- }
- if((get_user_weapon(iAttacker) == CSW_M4A1) && g_bHasFrostM4A1[iAttacker])
- {
- g_iDmg[iAttacker] += (floatround(fDamage) * get_pcvar_num(g_iDmgMultiplier))
- }
- if((g_iDmg[iAttacker] >= get_pcvar_num(g_iFreezeDmg)) && (get_user_weapon(iAttacker) == CSW_M4A1) && g_bHasFrostM4A1[iAttacker])
- {
- new szName[32]
- get_user_name(iVictim, szName, charsmax(szName))
- ze_set_frost_grenade(iVictim, true)
- g_iDmg[iAttacker] = 0
- set_dhudmessage(34, 138, 255, -1.0, 0.25, 2, 6.0, 3.0, 0.1, 1.5)
- show_dhudmessage(iAttacker, "%s Has been Freezed!", szName)
- }
- return HC_CONTINUE
- }
- public CheckModel(id)
- {
- if (is_user_alive(id))
- {
- set_pev(id, pev_viewmodel2, V_M4A1_MODEL)
- set_pev(id, pev_weaponmodel2, P_M4A1_MODEL)
- }
- return PLUGIN_CONTINUE
- }
- public CurrentWeapon(id)
- {
- if ((get_user_weapon(id) == CSW_M4A1) && g_bHasFrostM4A1[id] == true)
- {
- CheckModel(id)
- }
- else
- {
- ClearSyncHud(id, g_iHudSync)
- }
- return PLUGIN_CONTINUE
- }
- make_beam(const origin2[3], const origin[3], sprite, red, green, blue, alpha)
- {
- //BEAMENTPOINTS
- message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
- write_byte (0) //TE_BEAMENTPOINTS 0
- write_coord(origin2[0])
- write_coord(origin2[1])
- write_coord(origin2[2])
- write_coord(origin[0])
- write_coord(origin[1])
- write_coord(origin[2])
- write_short(sprite) // sprite
- write_byte(1) // framestart
- write_byte(5) // framerate
- write_byte(2) // life
- write_byte(20) // width
- write_byte(0) // noise
- write_byte(red) // r, g, b
- write_byte(green) // r, g, b
- write_byte(blue) // r, g, b
- write_byte(alpha) // brightness
- write_byte(150) // speed
- message_end()
- }
- public Fw_SetModel(entity, model[])
- {
- if(!is_valid_ent(entity))
- return FMRES_IGNORED
- if(!equali(model, W_OLD_M4A1_MODEL))
- return FMRES_IGNORED
- new className[33]
- entity_get_string(entity, EV_SZ_classname, className, 32)
- static iOwner, iStoredM4A1ID
- // Frost M4A1 Owner
- iOwner = entity_get_edict(entity, EV_ENT_owner)
- // Get drop weapon index (Frost M4A1) to use in fw_FrostM4A1AddToPlayer forward
- iStoredM4A1ID = find_ent_by_owner(-1, "weapon_m4a1", entity)
- // If Player Has Frost M4A1 and It's weapon_m4a1
- if(g_bHasFrostM4A1[iOwner] && is_valid_ent(iStoredM4A1ID))
- {
- // Setting weapon options
- entity_set_int(iStoredM4A1ID, EV_INT_impulse, 1997)
- // Rest Var
- g_bHasFrostM4A1[iOwner] = false
- // Set weaponbox new model
- entity_set_model(entity, W_M4A1_MODEL)
- return FMRES_SUPERCEDE
- }
- return FMRES_IGNORED
- }
- public Fw_AddFrostM4A1ToPlayer(FrostM4A1, id)
- {
- // Make sure that this is M4A1
- if(is_valid_ent(FrostM4A1) && is_user_connected(id) && entity_get_int(FrostM4A1, EV_INT_impulse) == 1997)
- {
- // Update Var
- g_bHasFrostM4A1[id] = true
- // Reset weapon options
- entity_set_int(FrostM4A1, EV_INT_impulse, 0)
- return HAM_HANDLED
- }
- return HAM_IGNORED
- }
Frost M4A1
Check Now:
- #include <zombie_escape>
- #include <cstrike>
- #include <engine>
- new const V_M4A1_MODEL[] = "models/zombie_escape/v_frost_m4a1.mdl"
- new const P_M4A1_MODEL[] = "models/zombie_escape/p_frost_m4a1.mdl"
- new const W_M4A1_MODEL[] = "models/zombie_escape/w_frost_m4a1.mdl"
- new const W_OLD_M4A1_MODEL[] = "models/w_m4a1.mdl"
- new g_iItemID, g_iHudSync, g_iSpriteLaser, g_iFreezeDmg, g_iDmgMultiplier
- new bool:g_bHasFrostM4A1[33]
- new g_iDmg[33]
- public plugin_init()
- {
- register_plugin("[ZE] Extra Item: Frost M4A1", "1.0", "Raheem")
- // Cvars
- g_iFreezeDmg = register_cvar("ze_freezing_m4a1_damage", "2000") // Damage Requried So Zombie got Frozen
- g_iDmgMultiplier = register_cvar("ze_multiplier_m4a1_damage", "2") // Multiplie Weapon Damage
- // Message IDS
- g_iHudSync = CreateHudSyncObj()
- // ITEM NAME & COST
- g_iItemID = ze_register_item("Frost M4A1", 30, 0) // It's cost 30 Ammo Pack
- // 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)
- // Hams
- RegisterHam(Ham_TraceAttack, "player", "Fw_TraceAttack_Post", 1)
- RegisterHam(Ham_TraceAttack, "worldspawn", "Fw_TraceAttack_Post", 1)
- RegisterHam(Ham_Item_AddToPlayer, "weapon_m4a1", "Fw_AddFrostM4A1ToPlayer")
- }
- public plugin_precache()
- {
- // Models
- precache_model(V_M4A1_MODEL)
- precache_model(P_M4A1_MODEL)
- precache_model(W_M4A1_MODEL)
- // Sprites
- g_iSpriteLaser = precache_model( "sprites/Newlightning.spr")
- }
- public client_disconnected(id)
- {
- g_bHasFrostM4A1[id] = false
- }
- public ze_select_item_pre(id, itemid)
- {
- // Return Available and we will block it in Post, So it dosen't affect other plugins
- if (itemid != g_iItemID)
- return ZE_ITEM_AVAILABLE
- // Available for Humans only, So don't show it for zombies
- if (ze_is_user_zombie(id))
- return ZE_ITEM_DONT_SHOW
- return ZE_ITEM_AVAILABLE
- }
- public ze_select_item_post(player, itemid)
- {
- if (itemid != g_iItemID)
- return
- g_bHasFrostM4A1[player] = true
- rg_remove_item(player, "weapon_m4a1")
- rg_give_item(player, "weapon_m4a1", GT_APPEND)
- rg_set_user_bpammo(player, WeaponIdType:get_weaponid("weapon_m4a1"), 90)
- new szName[32]
- get_user_name(player, szName, charsmax(szName))
- set_hudmessage(random(255), random(255), random(255), -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1)
- show_hudmessage(0, "%s Has bought Frost M4A1!", szName)
- ze_colored_print(player, "!tYou Have bought Frost M4A1!y!")
- }
- public Fw_TraceAttack_Post(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
- {
- if(!is_user_alive(iAttacker) && ze_is_user_zombie(iEnt))
- return
- if(get_user_weapon(iAttacker) != CSW_M4A1 || !g_bHasFrostM4A1[iAttacker])
- return
- set_hudmessage(34, 138, 255, -1.0, 0.17, 1, 0.0, 2.0, 1.0, 1.0, -1)
- ShowSyncHudMsg(iAttacker, g_iHudSync, "Freeze Damage^n%d/%d", g_iDmg[iAttacker], get_pcvar_num(g_iFreezeDmg))
- new vec1[3], vec2[3]
- get_user_origin(iAttacker, vec1, 1)
- get_user_origin(iAttacker, vec2, 4)
- make_beam(vec1, vec2, g_iSpriteLaser, 0, 50, 200, 200)
- }
- public ze_user_infected(infected)
- {
- if (g_bHasFrostM4A1[infected])
- {
- g_bHasFrostM4A1[infected] = false
- }
- }
- public ze_user_humanized(id)
- {
- g_bHasFrostM4A1[id] = false
- g_iDmg[id] = 0
- }
- public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
- {
- // Not Vaild Victim or Attacker
- if (!is_user_connected(iVictim) || !is_user_connected(iAttacker))
- return HC_CONTINUE
- // Victim is not a Zombie.
- if (!ze_is_user_zombie(iVictim))
- return HC_CONTINUE
- if (g_bHasFrostM4A1[iAttacker] && (get_user_weapon(iAttacker) == CSW_M4A1))
- {
- SetHookChainArg(4 , ATYPE_FLOAT, fDamage * get_pcvar_num(g_iDmgMultiplier))
- }
- if((get_user_weapon(iAttacker) == CSW_M4A1) && g_bHasFrostM4A1[iAttacker])
- {
- g_iDmg[iAttacker] += (floatround(fDamage) * get_pcvar_num(g_iDmgMultiplier))
- }
- if((g_iDmg[iAttacker] >= get_pcvar_num(g_iFreezeDmg)) && (get_user_weapon(iAttacker) == CSW_M4A1) && g_bHasFrostM4A1[iAttacker])
- {
- new szName[32]
- get_user_name(iVictim, szName, charsmax(szName))
- ze_set_frost_grenade(iVictim, true)
- g_iDmg[iAttacker] = 0
- set_dhudmessage(34, 138, 255, -1.0, 0.25, 2, 6.0, 3.0, 0.1, 1.5)
- show_dhudmessage(iAttacker, "%s Has been Freezed!", szName)
- }
- return HC_CONTINUE
- }
- public CheckModel(id)
- {
- if (is_user_alive(id))
- {
- set_pev(id, pev_viewmodel2, V_M4A1_MODEL)
- set_pev(id, pev_weaponmodel2, P_M4A1_MODEL)
- }
- return PLUGIN_CONTINUE
- }
- public CurrentWeapon(id)
- {
- if ((get_user_weapon(id) == CSW_M4A1) && g_bHasFrostM4A1[id] == true)
- {
- CheckModel(id)
- }
- else
- {
- ClearSyncHud(id, g_iHudSync)
- }
- return PLUGIN_CONTINUE
- }
- make_beam(const origin2[3], const origin[3], sprite, red, green, blue, alpha)
- {
- //BEAMENTPOINTS
- message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
- write_byte (0) //TE_BEAMENTPOINTS 0
- write_coord(origin2[0])
- write_coord(origin2[1])
- write_coord(origin2[2])
- write_coord(origin[0])
- write_coord(origin[1])
- write_coord(origin[2])
- write_short(sprite) // sprite
- write_byte(1) // framestart
- write_byte(5) // framerate
- write_byte(2) // life
- write_byte(20) // width
- write_byte(0) // noise
- write_byte(red) // r, g, b
- write_byte(green) // r, g, b
- write_byte(blue) // r, g, b
- write_byte(alpha) // brightness
- write_byte(150) // speed
- message_end()
- }
- public Fw_SetModel(entity, model[])
- {
- if(!is_valid_ent(entity))
- return FMRES_IGNORED
- if(!equali(model, W_OLD_M4A1_MODEL))
- return FMRES_IGNORED
- new className[33]
- entity_get_string(entity, EV_SZ_classname, className, 32)
- static iOwner, iStoredM4A1ID
- // Frost M4A1 Owner
- iOwner = entity_get_edict(entity, EV_ENT_owner)
- // Get drop weapon index (Frost M4A1) to use in fw_FrostM4A1AddToPlayer forward
- iStoredM4A1ID = find_ent_by_owner(-1, "weapon_m4a1", entity)
- // If Player Has Frost M4A1 and It's weapon_m4a1
- if(g_bHasFrostM4A1[iOwner] && is_valid_ent(iStoredM4A1ID))
- {
- // Setting weapon options
- entity_set_int(iStoredM4A1ID, EV_INT_impulse, 1997)
- // Rest Var
- g_bHasFrostM4A1[iOwner] = false
- // Set weaponbox new model
- entity_set_model(entity, W_M4A1_MODEL)
- return FMRES_SUPERCEDE
- }
- return FMRES_IGNORED
- }
- public Fw_AddFrostM4A1ToPlayer(FrostM4A1, id)
- {
- // Make sure that this is M4A1
- if(is_valid_ent(FrostM4A1) && is_user_connected(id) && entity_get_int(FrostM4A1, EV_INT_impulse) == 1997)
- {
- // Update Var
- g_bHasFrostM4A1[id] = true
- // Reset weapon options
- entity_set_int(FrostM4A1, EV_INT_impulse, 0)
- return HAM_HANDLED
- }
- return HAM_IGNORED
- }
i posted the fix xDZ0uha1r_LK wrote: ↑2 years ago Check Now:
#include <zombie_escape> #include <cstrike> #include <engine> new const V_M4A1_MODEL[] = "models/zombie_escape/v_frost_m4a1.mdl" new const P_M4A1_MODEL[] = "models/zombie_escape/p_frost_m4a1.mdl" new const W_M4A1_MODEL[] = "models/zombie_escape/w_frost_m4a1.mdl" new const W_OLD_M4A1_MODEL[] = "models/w_m4a1.mdl" new g_iItemID, g_iHudSync, g_iSpriteLaser, g_iFreezeDmg, g_iDmgMultiplier new bool:g_bHasFrostM4A1[33] new g_iDmg[33] public plugin_init() { register_plugin("[ZE] Extra Item: Frost M4A1", "1.0", "Raheem") // Cvars g_iFreezeDmg = register_cvar("ze_freezing_m4a1_damage", "2000") // Damage Requried So Zombie got Frozen g_iDmgMultiplier = register_cvar("ze_multiplier_m4a1_damage", "2") // Multiplie Weapon Damage // Message IDS g_iHudSync = CreateHudSyncObj() // ITEM NAME & COST g_iItemID = ze_register_item("Frost M4A1", 30, 0) // It's cost 30 Ammo Pack // 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) // Hams RegisterHam(Ham_TraceAttack, "player", "Fw_TraceAttack_Post", 1) RegisterHam(Ham_TraceAttack, "worldspawn", "Fw_TraceAttack_Post", 1) RegisterHam(Ham_Item_AddToPlayer, "weapon_m4a1", "Fw_AddFrostM4A1ToPlayer") } public plugin_precache() { // Models precache_model(V_M4A1_MODEL) precache_model(P_M4A1_MODEL) precache_model(W_M4A1_MODEL) // Sprites g_iSpriteLaser = precache_model( "sprites/Newlightning.spr") } public client_disconnected(id) { g_bHasFrostM4A1[id] = false } public ze_select_item_pre(id, itemid) { // Return Available and we will block it in Post, So it dosen't affect other plugins if (itemid != g_iItemID) return ZE_ITEM_AVAILABLE // Available for Humans only, So don't show it for zombies if (ze_is_user_zombie(id)) return ZE_ITEM_DONT_SHOW return ZE_ITEM_AVAILABLE } public ze_select_item_post(player, itemid) { if (itemid != g_iItemID) return g_bHasFrostM4A1[player] = true rg_remove_item(player, "weapon_m4a1") rg_give_item(player, "weapon_m4a1", GT_APPEND) rg_set_user_bpammo(player, WeaponIdType:get_weaponid("weapon_m4a1"), 90) new szName[32] get_user_name(player, szName, charsmax(szName)) set_hudmessage(random(255), random(255), random(255), -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1) show_hudmessage(0, "%s Has bought Frost M4A1!", szName) ze_colored_print(player, "!tYou Have bought Frost M4A1!y!") } public Fw_TraceAttack_Post(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType) { if(!is_user_alive(iAttacker) && ze_is_user_zombie(iEnt)) return if(get_user_weapon(iAttacker) != CSW_M4A1 || !g_bHasFrostM4A1[iAttacker]) return set_hudmessage(34, 138, 255, -1.0, 0.17, 1, 0.0, 2.0, 1.0, 1.0, -1) ShowSyncHudMsg(iAttacker, g_iHudSync, "Freeze Damage^n%d/%d", g_iDmg[iAttacker], get_pcvar_num(g_iFreezeDmg)) new vec1[3], vec2[3] get_user_origin(iAttacker, vec1, 1) get_user_origin(iAttacker, vec2, 4) make_beam(vec1, vec2, g_iSpriteLaser, 0, 50, 200, 200) } public ze_user_infected(infected) { if (g_bHasFrostM4A1[infected]) { g_bHasFrostM4A1[infected] = false } } public ze_user_humanized(id) { g_bHasFrostM4A1[id] = false g_iDmg[id] = 0 } public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType) { // Not Vaild Victim or Attacker if (!is_user_connected(iVictim) || !is_user_connected(iAttacker)) return HC_CONTINUE // Victim is not a Zombie. if (!ze_is_user_zombie(iVictim)) return HC_CONTINUE if (g_bHasFrostM4A1[iAttacker] && (get_user_weapon(iAttacker) == CSW_M4A1)) { SetHookChainArg(4 , ATYPE_FLOAT, fDamage * get_pcvar_num(g_iDmgMultiplier)) } if((get_user_weapon(iAttacker) == CSW_M4A1) && g_bHasFrostM4A1[iAttacker]) { g_iDmg[iAttacker] += (floatround(fDamage) * get_pcvar_num(g_iDmgMultiplier)) } if((g_iDmg[iAttacker] >= get_pcvar_num(g_iFreezeDmg)) && (get_user_weapon(iAttacker) == CSW_M4A1) && g_bHasFrostM4A1[iAttacker]) { new szName[32] get_user_name(iVictim, szName, charsmax(szName)) ze_set_frost_grenade(iVictim, true) g_iDmg[iAttacker] = 0 set_dhudmessage(34, 138, 255, -1.0, 0.25, 2, 6.0, 3.0, 0.1, 1.5) show_dhudmessage(iAttacker, "%s Has been Freezed!", szName) } return HC_CONTINUE } public CheckModel(id) { if (is_user_alive(id)) { set_pev(id, pev_viewmodel2, V_M4A1_MODEL) set_pev(id, pev_weaponmodel2, P_M4A1_MODEL) } return PLUGIN_CONTINUE } public CurrentWeapon(id) { if ((get_user_weapon(id) == CSW_M4A1) && g_bHasFrostM4A1[id] == true) { CheckModel(id) } else { ClearSyncHud(id, g_iHudSync) } return PLUGIN_CONTINUE } make_beam(const origin2[3], const origin[3], sprite, red, green, blue, alpha) { //BEAMENTPOINTS message_begin( MSG_BROADCAST,SVC_TEMPENTITY) write_byte (0) //TE_BEAMENTPOINTS 0 write_coord(origin2[0]) write_coord(origin2[1]) write_coord(origin2[2]) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) write_short(sprite) // sprite write_byte(1) // framestart write_byte(5) // framerate write_byte(2) // life write_byte(20) // width write_byte(0) // noise write_byte(red) // r, g, b write_byte(green) // r, g, b write_byte(blue) // r, g, b write_byte(alpha) // brightness write_byte(150) // speed message_end() } public Fw_SetModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED if(!equali(model, W_OLD_M4A1_MODEL)) return FMRES_IGNORED new className[33] entity_get_string(entity, EV_SZ_classname, className, 32) static iOwner, iStoredM4A1ID // Frost M4A1 Owner iOwner = entity_get_edict(entity, EV_ENT_owner) // Get drop weapon index (Frost M4A1) to use in fw_FrostM4A1AddToPlayer forward iStoredM4A1ID = find_ent_by_owner(-1, "weapon_m4a1", entity) // If Player Has Frost M4A1 and It's weapon_m4a1 if(g_bHasFrostM4A1[iOwner] && is_valid_ent(iStoredM4A1ID)) { // Setting weapon options entity_set_int(iStoredM4A1ID, EV_INT_impulse, 1997) // Rest Var g_bHasFrostM4A1[iOwner] = false // Set weaponbox new model entity_set_model(entity, W_M4A1_MODEL) return FMRES_SUPERCEDE } return FMRES_IGNORED } public Fw_AddFrostM4A1ToPlayer(FrostM4A1, id) { // Make sure that this is M4A1 if(is_valid_ent(FrostM4A1) && is_user_connected(id) && entity_get_int(FrostM4A1, EV_INT_impulse) == 1997) { // Update Var g_bHasFrostM4A1[id] = true // Reset weapon options entity_set_int(FrostM4A1, EV_INT_impulse, 0) return HAM_HANDLED } return HAM_IGNORED }
this one hhkaran wrote: ↑2 years agothis code is freezing humans too also counting breakables dmg so here's the fix
#include <zombie_escape> #include <cstrike> #include <engine> new const V_M4A1_MODEL[] = "models/zombie_escape/v_frost_m4a1.mdl" new const P_M4A1_MODEL[] = "models/zombie_escape/p_frost_m4a1.mdl" new const W_M4A1_MODEL[] = "models/zombie_escape/w_frost_m4a1.mdl" new const W_OLD_M4A1_MODEL[] = "models/w_m4a1.mdl" new g_iItemID, g_iHudSync, g_iSpriteLaser, g_iFreezeDmg, g_iDmgMultiplier new bool:g_bHasFrostM4A1[33] new g_iDmg[33] public plugin_init() { register_plugin("[ZE] Extra Item: Frost M4A1", "1.0", "Raheem") // Cvars g_iFreezeDmg = register_cvar("ze_freezing_m4a1_damage", "2000") // Damage Requried So Zombie got Frozen g_iDmgMultiplier = register_cvar("ze_multiplier_m4a1_damage", "2") // Multiplie Weapon Damage // Message IDS g_iHudSync = CreateHudSyncObj() // ITEM NAME & COST g_iItemID = ze_register_item("Frost M4A1", 30, 0) // It's cost 30 Ammo Pack // 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) // Hams RegisterHam(Ham_TraceAttack, "player", "Fw_TraceAttack_Post", 1) RegisterHam(Ham_TraceAttack, "worldspawn", "Fw_TraceAttack_Post", 1) RegisterHam(Ham_Item_AddToPlayer, "weapon_m4a1", "Fw_AddFrostM4A1ToPlayer") } public plugin_precache() { // Models precache_model(V_M4A1_MODEL) precache_model(P_M4A1_MODEL) precache_model(W_M4A1_MODEL) // Sprites g_iSpriteLaser = precache_model( "sprites/Newlightning.spr") } public client_disconnected(id) { g_bHasFrostM4A1[id] = false } public ze_select_item_pre(id, itemid) { // Return Available and we will block it in Post, So it dosen't affect other plugins if (itemid != g_iItemID) return ZE_ITEM_AVAILABLE // Available for Humans only, So don't show it for zombies if (ze_is_user_zombie(id)) return ZE_ITEM_DONT_SHOW return ZE_ITEM_AVAILABLE } public ze_select_item_post(player, itemid) { if (itemid != g_iItemID) return g_bHasFrostM4A1[player] = true rg_remove_item(player, "weapon_m4a1") rg_give_item(player, "weapon_m4a1", GT_APPEND) rg_set_user_bpammo(player, WeaponIdType:get_weaponid("weapon_m4a1"), 90) new szName[32] get_user_name(player, szName, charsmax(szName)) set_hudmessage(random(255), random(255), random(255), -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1) show_hudmessage(0, "%s Has bought Frost M4A1!", szName) ze_colored_print(player, "!tYou Have bought Frost M4A1!y!") } public Fw_TraceAttack_Post(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType) { if(!is_user_alive(iAttacker) && ze_is_user_zombie(iEnt)) return if(get_user_weapon(iAttacker) != CSW_M4A1 || !g_bHasFrostM4A1[iAttacker]) return set_hudmessage(34, 138, 255, -1.0, 0.17, 1, 0.0, 2.0, 1.0, 1.0, -1) ShowSyncHudMsg(iAttacker, g_iHudSync, "Freeze Damage^n%d/%d", g_iDmg[iAttacker], get_pcvar_num(g_iFreezeDmg)) new vec1[3], vec2[3] get_user_origin(iAttacker, vec1, 1) get_user_origin(iAttacker, vec2, 4) make_beam(vec1, vec2, g_iSpriteLaser, 0, 50, 200, 200) } public ze_user_infected(infected) { if (g_bHasFrostM4A1[infected]) { g_bHasFrostM4A1[infected] = false } } public ze_user_humanized(id) { g_bHasFrostM4A1[id] = false g_iDmg[id] = 0 } public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType) { // Not Vaild Victim or Attacker if (!ze_is_user_zombie(iVictim) || !is_user_connected(iAttacker)) return HC_CONTINUE if (g_bHasFrostM4A1[iAttacker] && (get_user_weapon(iAttacker) == CSW_M4A1)) { SetHookChainArg(4 , ATYPE_FLOAT, fDamage * get_pcvar_num(g_iDmgMultiplier)) } if((get_user_weapon(iAttacker) == CSW_M4A1) && g_bHasFrostM4A1[iAttacker]) { g_iDmg[iAttacker] += (floatround(fDamage) * get_pcvar_num(g_iDmgMultiplier)) } if((g_iDmg[iAttacker] >= get_pcvar_num(g_iFreezeDmg)) && (get_user_weapon(iAttacker) == CSW_M4A1) && g_bHasFrostM4A1[iAttacker]) { new szName[32] get_user_name(iVictim, szName, charsmax(szName)) ze_set_frost_grenade(iVictim, true) g_iDmg[iAttacker] = 0 set_dhudmessage(34, 138, 255, -1.0, 0.25, 2, 6.0, 3.0, 0.1, 1.5) show_dhudmessage(iAttacker, "%s Has been Freezed!", szName) } return HC_CONTINUE } public CheckModel(id) { if (is_user_alive(id)) { set_pev(id, pev_viewmodel2, V_M4A1_MODEL) set_pev(id, pev_weaponmodel2, P_M4A1_MODEL) } return PLUGIN_CONTINUE } public CurrentWeapon(id) { if ((get_user_weapon(id) == CSW_M4A1) && g_bHasFrostM4A1[id] == true) { CheckModel(id) } else { ClearSyncHud(id, g_iHudSync) } return PLUGIN_CONTINUE } make_beam(const origin2[3], const origin[3], sprite, red, green, blue, alpha) { //BEAMENTPOINTS message_begin( MSG_BROADCAST,SVC_TEMPENTITY) write_byte (0) //TE_BEAMENTPOINTS 0 write_coord(origin2[0]) write_coord(origin2[1]) write_coord(origin2[2]) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) write_short(sprite) // sprite write_byte(1) // framestart write_byte(5) // framerate write_byte(2) // life write_byte(20) // width write_byte(0) // noise write_byte(red) // r, g, b write_byte(green) // r, g, b write_byte(blue) // r, g, b write_byte(alpha) // brightness write_byte(150) // speed message_end() } public Fw_SetModel(entity, model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED if(!equali(model, W_OLD_M4A1_MODEL)) return FMRES_IGNORED new className[33] entity_get_string(entity, EV_SZ_classname, className, 32) static iOwner, iStoredM4A1ID // Frost M4A1 Owner iOwner = entity_get_edict(entity, EV_ENT_owner) // Get drop weapon index (Frost M4A1) to use in fw_FrostM4A1AddToPlayer forward iStoredM4A1ID = find_ent_by_owner(-1, "weapon_m4a1", entity) // If Player Has Frost M4A1 and It's weapon_m4a1 if(g_bHasFrostM4A1[iOwner] && is_valid_ent(iStoredM4A1ID)) { // Setting weapon options entity_set_int(iStoredM4A1ID, EV_INT_impulse, 1997) // Rest Var g_bHasFrostM4A1[iOwner] = false // Set weaponbox new model entity_set_model(entity, W_M4A1_MODEL) return FMRES_SUPERCEDE } return FMRES_IGNORED } public Fw_AddFrostM4A1ToPlayer(FrostM4A1, id) { // Make sure that this is M4A1 if(is_valid_ent(FrostM4A1) && is_user_connected(id) && entity_get_int(FrostM4A1, EV_INT_impulse) == 1997) { // Update Var g_bHasFrostM4A1[id] = true // Reset weapon options entity_set_int(FrostM4A1, EV_INT_impulse, 0) return HAM_HANDLED } return HAM_IGNORED }
Create an account or sign in to join the discussion
You need to be a member in order to post a reply
Create an account
Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute
Sign in
Who is online
Users browsing this forum: No registered users and 3 guests