AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Suggestions / Requests (https://forums.alliedmods.net/forumdisplay.php?f=12)
-   -   [HELP] I want Frozen M4A1 FOR Vips (https://forums.alliedmods.net/showthread.php?t=331815)

SHIFT0 04-08-2021 16:34

[HELP] I want Frozen M4A1 FOR Vips
 
Help guys i want this Frozen M4A1 For VIPS Online ADMIN_LEVEL_H
PHP Code:

#include <zombie_escape>

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_iItemIDg_iHudSyncg_iSpriteLaserg_iFreezeDmgg_iDmgMultiplier
new bool:g_bHasFrostM4A1[33]
new 
g_iDmg[33]

public 
plugin_init()
{
    
register_plugin("[ZE] Frozen M4A1""1.0""Null")
    
    
// Cvars
    
g_iFreezeDmg register_cvar("ze_freezing_m4a1_damage""300"// 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"300// 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(iditemid)
{
    
// 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(playeritemid)
{
    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(playerWeaponIdType:get_weaponid("weapon_m4a1"), 90)
    
    new 
szName[32]
    
get_user_name(playerszNamecharsmax(szName))
    
    
set_hudmessage(random(255), random(255), random(255), -1.00.1710.05.01.01.0, -1)
    
show_hudmessage(0"%s Has bought Frost M4A1!"szName)
    
    
ze_colored_print(player"!gYou !gHave !gbought !tFrost !tM4A1!y!")
}

public 
Fw_TraceAttack_Post(iEntiAttackerFloat:flDamageFloat:fDir[3], ptriDamageType)
{
    if(!
is_user_alive(iAttacker))
        return 
    
    if(
get_user_weapon(iAttacker) != CSW_M4A1 || !g_bHasFrostM4A1[iAttacker])
        return
    
    
set_hudmessage(34138255, -1.00.1710.02.01.01.0, -1)
    
ShowSyncHudMsg(iAttackerg_iHudSync"Freeze Damage^n%d/%d"g_iDmg[iAttacker], get_pcvar_num(g_iFreezeDmg))
    
    new 
vec1[3], vec2[3]
    
get_user_origin(iAttackervec11
    
get_user_origin(iAttackervec24)

    
make_beam(vec1vec2g_iSpriteLaser050200200)
}

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(iVictimiInflictoriAttackerFloat:fDamagebitsDamageType)
{
    
// Not Vaild Victim or Attacker
    
if (!is_user_connected(iVictim) || !is_user_connected(iAttacker))
        return 
HC_CONTINUE
    
    
if (g_bHasFrostM4A1[iAttacker] && (get_user_weapon(iAttacker) == CSW_M4A1))
    {
        
SetHookChainArg(ATYPE_FLOATfDamage 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(iVictimszNamecharsmax(szName))
        
        
ze_set_frost_grenade(iVictimtrue)
        
        
g_iDmg[iAttacker] = 0
        
        set_dhudmessage
(34138255, -1.00.2526.03.00.11.5)
        
show_dhudmessage(iAttacker"!g%s !tHas !tbeen !tFreezed!"szName)
    }
    return 
HC_CONTINUE
}

public 
CheckModel(id)
{
    if (
is_user_alive(id))
    {
        
set_pev(idpev_viewmodel2V_M4A1_MODEL)
        
set_pev(idpev_weaponmodel2P_M4A1_MODEL)
    }
    return 
PLUGIN_CONTINUE
}

public 
CurrentWeapon(id)
{
    if ((
get_user_weapon(id) == CSW_M4A1) && g_bHasFrostM4A1[id] == true)
    {
        
CheckModel(id)
    }
    else
    {
        
ClearSyncHud(idg_iHudSync)
    }
    return 
PLUGIN_CONTINUE
}

make_beam(const origin2[3], const origin[3], spriteredgreenbluealpha)
{
    
//BEAMENTPOINTS
    
message_beginMSG_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(entitymodel[])
{
    
    if(!
is_valid_ent(entity)) 
        return 
FMRES_IGNORED

    
if(!equali(modelW_OLD_M4A1_MODEL)) 
        return 
FMRES_IGNORED

    
new className[33]
    
entity_get_string(entityEV_SZ_classnameclassName32)

    static 
iOwneriStoredM4A1ID

    
// Frost M4A1 Owner
    
iOwner entity_get_edict(entityEV_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(iStoredM4A1IDEV_INT_impulse1997)

        
// Rest Var
        
g_bHasFrostM4A1[iOwner] = false
        
        
// Set weaponbox new model
        
entity_set_model(entityW_M4A1_MODEL)
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED
}

public 
Fw_AddFrostM4A1ToPlayer(FrostM4A1id)
{
    
// Make sure that this is M4A1
    
if(is_valid_ent(FrostM4A1) && is_user_connected(id) && entity_get_int(FrostM4A1EV_INT_impulse) == 1997)
    {
        
// Update Var
        
g_bHasFrostM4A1[id] = true

        
// Reset weapon options
        
entity_set_int(FrostM4A1EV_INT_impulse0)
        return 
HAM_HANDLED
    
}
    return 
HAM_IGNORED




All times are GMT -4. The time now is 19:53.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.