Post by ShaunCraft15 on May 3, 2022 12:50:20 GMT
Hello guys This is plugin for 3 weapons is: Fire M4A1 & Frost M4A1 & Nuke M4A1
all in one file
it's zp50 version but ill made for zp43 version and other zps
all in one file
it's zp50 version but ill made for zp43 version and other zps
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <engine>
#include <fun>
#include <zombieplague>
#include <zp50_items>
#include <zp50_grenade_fire>
#include <zp50_grenade_frost>
//#define CRXRANKS
#if defined CRXRANKS
#include <crxranks>
#endif
#define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
#define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false)
#define flag_set(%1,%2) %1 |= (1 << (%2 & 31))
#define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31))
// Nuke M4A1 Model
new const V_NUKE_MODEL[] = "models/zombie_plague/v_nuke_m4a1.mdl"
new const P_NUKE_MODEL[] = "models/zombie_plague/p_nuke_m4a1.mdl"
new const W_NUKE_MODEL[] = "models/zombie_plague/w_nuke_m4a1.mdl"
// Frost M4A1 Model
new const V_FROST_MODEL[] = "models/zombie_plague/v_frost_m4a1.mdl"
new const P_FROST_MODEL[] = "models/zombie_plague/p_frost_m4a1.mdl"
new const W_FROST_MODEL[] = "models/zombie_plague/w_frost_m4a1.mdl"
// Fire M4A1 Model
new const V_FIRE_MODEL[] = "models/zombie_plague/v_fire_m4a1.mdl"
new const P_FIRE_MODEL[] = "models/zombie_plague/p_fire_m4a1.mdl"
new const W_FIRE_MODEL[] = "models/zombie_plague/w_fire_m4a1.mdl"
new const W_OLD_M4A1_MODEL[] = "models/w_m4a1.mdl"
//Fire M4A1 Cvars:
new cvar_fire_time, cvar_fire_damage_multi, cvar_burndmg
//Frost M4A1 Cvars:
new cvar_frost_time, cvar_frost_damage_multi, g_iSprite, cvar_freezedmg
//Nuke M4A1 Cvars:
new cvar_blind_time, cvar_blind_damage_muti, cvar_blinddmg
new g_iItemIDNuke, g_iItemIDFrost, g_iItemIDFire, g_iMaxPlayers, g_iHudSync, g_iSpriteLaser
new g_HasNukeM4A1, g_HasFirem4a1, g_HasFrostM4A1
new g_HasBlind[33]
new g_iDmg1[33], g_iDmg2[33], g_iDmg3[33]
new g_First1[33], g_First2[33], g_First3[33]
public plugin_init()
{
register_plugin("[ZP] Extra Item: M4A1 Package", "1.0", "ShaunCraft")
// Cvars (Nuke M4A1)
cvar_blind_time = register_cvar("zp_nuke_m4a1_time", "0.7")
cvar_blinddmg = register_cvar("zp_nuke_m4a1_damage", "2000")
cvar_blind_damage_muti = register_cvar("zp_nuke_m4a1_damage_x", "2")
// Cvars (Frost M4A1)
cvar_frost_time = register_cvar("zp_frost_m4a1_time", "1.5")
cvar_freezedmg = register_cvar("zp_frost_m4a1_damage", "2000")
cvar_frost_damage_multi = register_cvar("zp_frost_m4a1_damage_x", "2")
// Cvars (Fire M4A1)
cvar_fire_time = register_cvar("zp_fire_m4a1_time", "3.0")
cvar_burndmg = register_cvar("zp_fire_m4a1_damage", "1500")
cvar_fire_damage_multi = register_cvar("zp_fire_m4a1_damage_x", "2")
// Message IDS
g_iHudSync = CreateHudSyncObj()
// Server Max Slots
g_iMaxPlayers = get_maxplayers()
// ITEM NAME & COST
g_iItemIDFire = zp_register_extra_item("Fire M4A1 (Blind + 2x Damage) ", 50, ZP_TEAM_HUMAN)
g_iItemIDFrost = zp_register_extra_item("Frost M4A1 (Blind + 2x Damage) ", 50, ZP_TEAM_HUMAN)
g_iItemIDNuke = zp_register_extra_item("Nuke M4A1 (Blind + 2x Damage) ", 50, ZP_TEAM_HUMAN)
// Events
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("WeapPickup","CheckModel","b","1=19")
register_event("CurWeapon","CurrentWeapon","be","1=1")
// Forwards
register_forward(FM_SetModel, "fw_SetModel")
// Hams
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Spawn, "player", "fw_Spawn", 1)
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage_Pre", 1)
RegisterHam(Ham_TraceAttack, "player", "Ham_TraceAttack_Player", false);
RegisterHam(Ham_TraceAttack, "worldspawn", "Ham_TraceAttack_Player", false);
RegisterHam(Ham_TraceAttack, "func_breakable", "Ham_TraceAttack_Player", false)
RegisterHam(Ham_TraceAttack, "func_wall", "Ham_TraceAttack_Player", false)
RegisterHam(Ham_TraceAttack, "func_door", "Ham_TraceAttack_Player", false)
RegisterHam(Ham_TraceAttack, "func_door_rotating", "Ham_TraceAttack_Player", false)
RegisterHam(Ham_TraceAttack, "func_plat", "Ham_TraceAttack_Player", false)
RegisterHam(Ham_TraceAttack, "func_train", "Ham_TraceAttack_Player", false)
RegisterHam(Ham_TraceAttack, "func_conveyor", "Ham_TraceAttack_Player", false)
RegisterHam(Ham_TraceAttack, "hostage_entity", "Ham_TraceAttack_Player", false)
RegisterHam(Ham_TraceAttack, "func_illusionary", "Ham_TraceAttack_Player", false)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn", 1)
RegisterHam(Ham_Item_AddToPlayer, "weapon_m4a1", "fw_M4A1AddToPlayer")
}
public plugin_precache()
{
// Models
precache_model(V_NUKE_MODEL)
precache_model(P_NUKE_MODEL)
precache_model(W_NUKE_MODEL)
precache_model(V_FROST_MODEL)
precache_model(P_FROST_MODEL)
precache_model(W_FROST_MODEL)
precache_model(V_FIRE_MODEL)
precache_model(P_FIRE_MODEL)
precache_model(W_FIRE_MODEL)
// Sprites
g_iSpriteLaser = precache_model( "sprites/xenobeam.spr")
g_iSprite = precache_model("sprites/Newlightning.spr")
}
public fw_Spawn(id)
{
g_First1[id] = false
g_First2[id] = false
g_First3[id] = false
}
public client_putinserver(id)
{
flag_unset(g_HasNukeM4A1, id)
flag_unset(g_HasFirem4a1, id)
flag_unset(g_HasFrostM4A1, id)
}
public client_disconnect(id)
{
flag_unset(g_HasNukeM4A1, id)
flag_unset(g_HasFirem4a1, id)
flag_unset(g_HasFrostM4A1, id)
fm_set_rendering(id)
}
public zp_fw_items_select_pre(id, itemid, ignorecost)
{
if (itemid == g_iItemIDNuke)
{
#if defined CRXRANKS
if(crxranks_get_user_level(id) <= 1)
{
zp_items_menu_text_add("\r[Level 2 Needed]")
return ZP_ITEM_NOT_AVAILABLE;
}
else zp_items_menu_text_add("\y[Available For You]")
#endif
if(flag_get(g_HasNukeM4A1, id))
{
zp_items_menu_text_add(" \r[Buyed]")
return ZP_ITEM_NOT_AVAILABLE;
}
}
else if (itemid == g_iItemIDFire)
{
#if defined CRXRANKS
if(crxranks_get_user_level(id) <= 1)
{
zp_items_menu_text_add("\r[Level 2 Needed]")
return ZP_ITEM_NOT_AVAILABLE;
}
else zp_items_menu_text_add("\y[Available For You]")
#endif
if(flag_get(g_HasFirem4a1, id))
{
zp_items_menu_text_add(" \r[Buyed]")
return ZP_ITEM_NOT_AVAILABLE;
}
}
else if (itemid == g_iItemIDFrost)
{
#if defined CRXRANKS
if(crxranks_get_user_level(id) <= 1)
{
zp_items_menu_text_add("\r[Level 2 Needed]")
return ZP_ITEM_NOT_AVAILABLE;
}
else zp_items_menu_text_add("\y[Available For You]")
#endif
if(flag_get(g_HasFrostM4A1, id))
{
zp_items_menu_text_add(" \r[Buyed]")
return ZP_ITEM_NOT_AVAILABLE;
}
}
return ZP_ITEM_AVAILABLE
}
public zp_extra_item_selected(player, itemid)
{
if (itemid == g_iItemIDNuke)
{
if(flag_get(g_HasFirem4a1, player) || flag_get(g_HasFrostM4A1, player))
{
flag_unset(g_HasFirem4a1, player)
flag_unset(g_HasFrostM4A1, player)
}
flag_set(g_HasNukeM4A1, player)
ham_strip_weapon(player, "weapon_m4a1")
give_item(player, "weapon_m4a1")
cs_set_user_bpammo(player, CSW_M4A1, 90)
}
else if (itemid == g_iItemIDFire)
{
if(flag_get(g_HasNukeM4A1, player) || flag_get(g_HasFrostM4A1, player))
{
flag_unset(g_HasNukeM4A1, player)
flag_unset(g_HasFrostM4A1, player)
}
flag_set(g_HasFirem4a1, player)
ham_strip_weapon(player, "weapon_m4a1")
give_item(player, "weapon_m4a1")
cs_set_user_bpammo(player, CSW_M4A1, 90)
}
else if (itemid == g_iItemIDFrost)
{
if(flag_get(g_HasFirem4a1, player) || flag_get(g_HasNukeM4A1, player))
{
flag_unset(g_HasFirem4a1, player)
flag_unset(g_HasNukeM4A1, player)
}
flag_set(g_HasFrostM4A1, player)
ham_strip_weapon(player, "weapon_m4a1")
give_item(player, "weapon_m4a1")
cs_set_user_bpammo(player, CSW_M4A1, 90)
}
}
// Ham Player Killed Forward
public fw_PlayerKilled(victim, attacker, shouldgib) fm_set_rendering(victim)
public fw_PlayerSpawn(id) fm_set_rendering(id)
public Ham_TraceAttack_Player(iVictim, iAttacker, Float:fDamage, Float:fDeriction[3], iTraceHandle, iBitDamage)
{
if(!is_user_alive(iAttacker))
return PLUGIN_HANDLED
if(get_user_weapon(iAttacker) != CSW_M4A1) return PLUGIN_HANDLED
free_tr2(iTraceHandle)
static Float:end[3]
get_tr2(iTraceHandle, TR_vecEndPos, end)
if(flag_get(g_HasNukeM4A1, iAttacker))
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY )
write_byte(TE_BEAMENTPOINT)
write_short(iAttacker | 0x1000)
engfunc(EngFunc_WriteCoord, end[0])
engfunc(EngFunc_WriteCoord, end[1])
engfunc(EngFunc_WriteCoord, end[2])
write_short(g_iSpriteLaser)
write_byte(1) // framerate
write_byte(5) // framerate
write_byte(1) // life
write_byte(20) // width
write_byte(0)// noise
write_byte(0)// r, g, b
write_byte(255)// r, g, b
write_byte(0)// r, g, b
write_byte(200) // brightness
write_byte(50) // speed
message_end()
}
else if(flag_get(g_HasFirem4a1, iAttacker))
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY )
write_byte(TE_BEAMENTPOINT)
write_short(iAttacker | 0x1000)
engfunc(EngFunc_WriteCoord, end[0])
engfunc(EngFunc_WriteCoord, end[1])
engfunc(EngFunc_WriteCoord, end[2])
write_short(g_iSpriteLaser)
write_byte(1) // framerate
write_byte(5) // framerate
write_byte(1) // life
write_byte(23) // width
write_byte(0)// noise
write_byte(200)// r, g, b
write_byte(80)// r, g, b
write_byte(4)// r, g, b
write_byte(200) // brightness
write_byte(5) // speed
message_end()
}
else if(flag_get(g_HasFrostM4A1, iAttacker))
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY )
write_byte(TE_BEAMENTPOINT)
write_short(iAttacker | 0x1000)
engfunc(EngFunc_WriteCoord, end[0])
engfunc(EngFunc_WriteCoord, end[1])
engfunc(EngFunc_WriteCoord, end[2])
write_short(g_iSprite)
write_byte(1) // framestart
write_byte(5) // framerate
write_byte(2) // life
write_byte(20) // width
write_byte(0) // noise
write_byte(0) // r, g, b
write_byte(50) // r, g, b
write_byte(200) // r, g, b
write_byte(200) // brightness
write_byte(150) // speed
message_end()
}
return PLUGIN_HANDLED
}
public zp_user_infected_post(infected, infector)
{
if (flag_get(g_HasNukeM4A1, infected))
{
flag_unset(g_HasNukeM4A1, infected)
}
else if (flag_get(g_HasFirem4a1, infected))
{
flag_unset(g_HasFirem4a1, infected)
}
else if (flag_get(g_HasFrostM4A1, infected))
{
flag_unset(g_HasFrostM4A1, infected)
}
}
public zp_user_humanized_post(id)
{
flag_unset(g_HasFrostM4A1, id)
flag_unset(g_HasFirem4a1, id)
flag_unset(g_HasNukeM4A1, id)
g_iDmg1[id] = 0
g_iDmg2[id] = 0
g_iDmg3[id] = 0
g_HasBlind[id] = false
UnNuke(id)
RemoveBurning(id)
RemoveFreezing(id)
}
public event_round_start()
{
for (new i = 1; i <= g_iMaxPlayers; i++)
{
flag_unset(g_HasFrostM4A1, i)
flag_unset(g_HasFirem4a1, i)
flag_unset(g_HasNukeM4A1, i)
g_iDmg1[i] = 0
g_iDmg2[i] = 0
g_iDmg3[i] = 0
if(is_user_alive(i))
{
g_HasBlind[i] = false
fm_set_rendering(i)
UnNuke(i)
RemoveBurning(i)
RemoveFreezing(i)
}
}
}
public fw_TakeDamage_Pre(victim, inflictor, attacker, Float:damage, damage_type)
{
if(g_First1[victim] || g_First2[victim] || g_First3[victim])
return HAM_SUPERCEDE;
if(flag_get(g_HasNukeM4A1, attacker))
{
if(is_user_alive(attacker) && get_user_weapon(attacker) == CSW_M4A1 && flag_get(g_HasNukeM4A1, attacker) && zp_get_user_zombie(victim))
{
Nuke(victim)
g_First1[victim] = true
set_task(20.0, "RestoreFirstTouch1", victim)
return HAM_IGNORED;
}
}
else if(flag_get(g_HasFirem4a1, attacker))
{
if(is_user_alive(attacker) && get_user_weapon(attacker) == CSW_M4A1 && flag_get(g_HasFirem4a1, attacker) && zp_get_user_zombie(victim))
{
zp_grenade_fire_set(victim, true)
set_task(get_pcvar_float(cvar_fire_time), "RemoveBurning", victim)
g_First2[victim] = true
set_task(20.0, "RestoreFirstTouch2", victim)
return HAM_IGNORED;
}
}
else if(flag_get(g_HasFrostM4A1, attacker))
{
if(is_user_alive(attacker) && get_user_weapon(attacker) == CSW_M4A1 && flag_get(g_HasFrostM4A1, attacker) && zp_get_user_zombie(victim))
{
zp_grenade_frost_set(victim, true)
set_task(get_pcvar_float(cvar_frost_time), "RemoveFreezing", victim)
g_First3[victim] = true
set_task(20.0, "RestoreFirstTouch3", victim)
return HAM_IGNORED;
}
}
return PLUGIN_CONTINUE
}
public RestoreFirstTouch1(id) g_First1[id] = false
public RestoreFirstTouch2(id) g_First2[id] = false
public RestoreFirstTouch3(id) g_First3[id] = false
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if(!is_user_connected(victim) || !is_user_connected(attacker) || zp_get_user_nemesis(victim) || attacker == victim || !attacker)
return HAM_IGNORED;
if(flag_get(g_HasNukeM4A1, attacker))
{
if(flag_get(g_HasNukeM4A1, attacker) && (get_user_weapon(attacker) == CSW_M4A1)) SetHamParamFloat(4, damage * get_pcvar_num(cvar_blind_damage_muti))
if((get_user_weapon(attacker) == CSW_M4A1) && flag_get(g_HasNukeM4A1, attacker))
{
g_iDmg1[attacker] += (floatround(damage) * get_pcvar_num(cvar_blind_damage_muti))
}
if((g_iDmg1[attacker] >= get_pcvar_num(cvar_blinddmg)) && (get_user_weapon(attacker) == CSW_M4A1) && flag_get(g_HasNukeM4A1, attacker) && zp_get_user_zombie(victim))
{
Nuke(victim);
g_iDmg1[attacker] = 0
}
}
else if(flag_get(g_HasFirem4a1, attacker))
{
if(flag_get(g_HasFirem4a1, attacker) && (get_user_weapon(attacker) == CSW_M4A1)) SetHamParamFloat(4, damage * get_pcvar_num(cvar_fire_damage_multi))
if((get_user_weapon(attacker) == CSW_M4A1) && flag_get(g_HasFirem4a1, attacker))
{
g_iDmg2[attacker] += (floatround(damage) * get_pcvar_num(cvar_fire_damage_multi))
}
if((g_iDmg2[attacker] >= get_pcvar_num(cvar_burndmg)) && (get_user_weapon(attacker) == CSW_M4A1) && flag_get(g_HasFirem4a1, attacker) && zp_get_user_zombie(victim))
{
zp_grenade_fire_set(victim, true)
set_task(get_pcvar_float(cvar_fire_time), "RemoveBurning", victim)
g_iDmg2[attacker] = 0
}
}
else if(flag_get(g_HasFrostM4A1, attacker))
{
if(flag_get(g_HasFrostM4A1, attacker) && (get_user_weapon(attacker) == CSW_M4A1)) SetHamParamFloat(4, damage * get_pcvar_num(cvar_frost_damage_multi))
if((get_user_weapon(attacker) == CSW_M4A1) && flag_get(g_HasFrostM4A1, attacker))
{
g_iDmg3[attacker] += (floatround(damage) * get_pcvar_num(cvar_fire_damage_multi))
}
if((g_iDmg3[attacker] >= get_pcvar_num(cvar_freezedmg)) && (get_user_weapon(attacker) == CSW_M4A1) && flag_get(g_HasFrostM4A1, attacker) && zp_get_user_zombie(victim))
{
zp_grenade_frost_set(victim, true)
set_task(get_pcvar_float(cvar_frost_time), "RemoveFreezing", victim)
g_iDmg3[attacker] = 0
}
}
return HAM_IGNORED
}
public RemoveBurning(id) zp_grenade_fire_set(id, false)
public RemoveFreezing(id) zp_grenade_frost_set(id, false)
public Nuke(victim)
{
g_HasBlind[victim] = true
UTIL_ScreenFade(victim,{0,0,0}, 1.0, get_pcvar_float(cvar_blind_time),255);
fm_set_rendering(victim, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 20)
set_task(get_pcvar_float(cvar_blind_time), "UnNuke", victim)
return PLUGIN_HANDLED;
}
public UnNuke(victim)
{
if(is_user_alive(victim))
{
fm_set_rendering(victim);
g_HasBlind[victim] = false
}
}
public CheckModel(id)
{
if(zp_get_user_survivor(id))
return PLUGIN_HANDLED
if(flag_get(g_HasNukeM4A1, id))
{
if (is_user_alive(id))
{
set_pev(id, pev_viewmodel2, V_NUKE_MODEL)
set_pev(id, pev_weaponmodel2, P_NUKE_MODEL)
}
}
else if(flag_get(g_HasFirem4a1, id))
{
if (is_user_alive(id))
{
set_pev(id, pev_viewmodel2, V_FIRE_MODEL)
set_pev(id, pev_weaponmodel2, P_FIRE_MODEL)
}
}
else if(flag_get(g_HasFrostM4A1, id))
{
if (is_user_alive(id))
{
set_pev(id, pev_viewmodel2, V_FROST_MODEL)
set_pev(id, pev_weaponmodel2, P_FROST_MODEL)
}
}
return PLUGIN_HANDLED
}
public CurrentWeapon(id)
{
if(flag_get(g_HasNukeM4A1, id))
{
if ((get_user_weapon(id) == CSW_M4A1) && flag_get(g_HasNukeM4A1, id))
{
CheckModel(id)
}
else
{
ClearSyncHud(id, g_iHudSync)
}
}
else if(flag_get(g_HasFirem4a1, id))
{
if ((get_user_weapon(id) == CSW_M4A1) && flag_get(g_HasFirem4a1, id))
{
CheckModel(id)
}
else
{
ClearSyncHud(id, g_iHudSync)
}
}
else if(flag_get(g_HasFrostM4A1, id))
{
if ((get_user_weapon(id) == CSW_M4A1) && flag_get(g_HasFrostM4A1, id))
{
CheckModel(id)
}
else
{
ClearSyncHud(id, g_iHudSync)
}
}
return PLUGIN_HANDLED
}
stock ColorPrint(const id, const input[], any: ...)
{
new count = 1, players[32]
static msg[192]
vformat(msg, 191, input, 3)
replace_all(msg, 191, "!g", "^4")
replace_all(msg, 191, "!y", "^1")
replace_all(msg, 191, "!t", "^3")
replace_all(msg, 191, "!t2", "^0")
if (id) players[0] = id;else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected( players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}
}
stock ham_strip_weapon(id,weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0
new wId = get_weaponid(weapon)
if(!wId) return 0
new wEnt
while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
if(!wEnt) return 0
if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt)
if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0
ExecuteHamB(Ham_Item_Kill,wEnt)
set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId))
return 1
}
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(flag_get(g_HasNukeM4A1, iOwner) && is_valid_ent(iStoredM4A1ID))
{
// Setting weapon options
entity_set_int(iStoredM4A1ID, EV_INT_impulse, 1997)
// Rest Var
flag_unset(g_HasNukeM4A1, iOwner)
// Set weaponbox new model
entity_set_model(entity, W_NUKE_MODEL)
return FMRES_SUPERCEDE
}
else if(flag_get(g_HasFirem4a1, iOwner) && is_valid_ent(iStoredM4A1ID))
{
// Setting weapon options
entity_set_int(iStoredM4A1ID, EV_INT_impulse, 1997)
// Rest Var
flag_unset(g_HasFirem4a1, iOwner)
// Set weaponbox new model
entity_set_model(entity, W_FIRE_MODEL)
return FMRES_SUPERCEDE
}
else if(flag_get(g_HasFrostM4A1, iOwner) && is_valid_ent(iStoredM4A1ID))
{
// Setting weapon options
entity_set_int(iStoredM4A1ID, EV_INT_impulse, 1997)
// Rest Var
flag_unset(g_HasFrostM4A1, iOwner)
// Set weaponbox new model
entity_set_model(entity, W_FROST_MODEL)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public fw_M4A1AddToPlayer(M4A1, id)
{
if(flag_get(g_HasNukeM4A1, id))
{
// Make sure that this is M4A1
if(is_valid_ent(M4A1) && is_user_connected(id) && entity_get_int(M4A1, EV_INT_impulse) == 1997)
{
// Update Var
flag_set(g_HasNukeM4A1, id)
// Reset weapon options
entity_set_int(M4A1, EV_INT_impulse, 0)
return HAM_HANDLED
}
}
else if(flag_get(g_HasFirem4a1, id))
{
// Make sure that this is M4A1
if(is_valid_ent(M4A1) && is_user_connected(id) && entity_get_int(M4A1, EV_INT_impulse) == 1997)
{
// Update Var
flag_set(g_HasFirem4a1, id)
// Reset weapon options
entity_set_int(M4A1, EV_INT_impulse, 0)
return HAM_HANDLED
}
}
else if(flag_get(g_HasFrostM4A1, id))
{
// Make sure that this is M4A1
if(is_valid_ent(M4A1) && is_user_connected(id) && entity_get_int(M4A1, EV_INT_impulse) == 1997)
{
// Update Var
flag_set(g_HasFrostM4A1, id)
// Reset weapon options
entity_set_int(M4A1, EV_INT_impulse, 0)
return HAM_HANDLED
}
}
return HAM_IGNORED
}
#define FFADE_IN 0x0000 // Just here so we don't pass 0 into the function
#define FFADE_OUT 0x0001 // Fade out (not in)
#define FFADE_MODULATE 0x0002 // Modulate (don't blend)
#define FFADE_STAYOUT 0x0004 // ignores the duration, stays faded out until new ScreenFade message received
enum {
Red,
Green,
Blue
};
stock UTIL_ScreenFade(id=0,iColor[3]={0,0,0},Float:flFxTime=-1.0,Float:flHoldTime=0.0,iAlpha=0,iFlags=FFADE_IN,bool:bReliable=false,bool:bExternal=false)
{
if( id && !is_user_connected(id))
return;
new iFadeTime;
if( flFxTime == -1.0 )
{
iFadeTime = 4;
}
else
{
iFadeTime = FixedUnsigned16( flFxTime , 1<<12 );
}
static gmsgScreenFade;
if( !gmsgScreenFade )
{
gmsgScreenFade = get_user_msgid("ScreenFade");
}
new MSG_DEST;
if( bReliable )
{
MSG_DEST = id ? MSG_ONE : MSG_ALL;
}
else
{
MSG_DEST = id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST;
}
if( bExternal )
{
emessage_begin( MSG_DEST, gmsgScreenFade, _, id );
ewrite_short( iFadeTime );
ewrite_short( FixedUnsigned16( flHoldTime , 1<<12 ) );
ewrite_short( iFlags );
ewrite_byte( iColor[Red] );
ewrite_byte( iColor[Green] );
ewrite_byte( iColor[Blue] );
ewrite_byte( iAlpha );
emessage_end();
}
else
{
message_begin( MSG_DEST, gmsgScreenFade, _, id );
write_short( iFadeTime );
write_short( FixedUnsigned16( flHoldTime , 1<<12 ) );
write_short( iFlags );
write_byte( iColor[Red] );
write_byte( iColor[Green] );
write_byte( iColor[Blue] );
write_byte( iAlpha );
message_end();
}
}
stock FixedUnsigned16(Float:flValue, iScale)
{
new iOutput;
iOutput = floatround(flValue * iScale);
if ( iOutput < 0 )
iOutput = 0;
if ( iOutput > 0xFFFF )
iOutput = 0xFFFF;
return iOutput;
}
// Set entity's rendering type (from fakemeta_util)
stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
static Float:color[3]
color[0] = float(r)
color[1] = float(g)
color[2] = float(b)
set_pev(entity, pev_renderfx, fx)
set_pev(entity, pev_rendercolor, color)
set_pev(entity, pev_rendermode, render)
set_pev(entity, pev_renderamt, float(amount))
}