HLMOD.HU Forrás Megtekintés
- www.hlmod.hu#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
new Trie:g_owners
new items[][] = {
"ammo_357",
"ammo_9mmAR",
"ammo_9mmbox",
"ammo_9mmclip",
"ammo_ARgrenades",
"ammo_buckshot",
"ammo_crossbow",
"ammo_gaussclip",
"ammo_glockclip",
"ammo_mp5clip",
"ammo_mp5grenades",
"ammo_rpgclip",
"item_battery",
"item_healthkit",
"item_longjump"
}
new wps[][] = {
"weapon_hornetgun",
"weapon_python",
"weapon_357",
"weapon_crossbow",
"weapon_snark",
"weapon_tripmine",
"weapon_satchel",
"weapon_handgrenade",
"weapon_9mmAR",
"weapon_gauss",
"weapon_mp5",
"weapon_rpg",
"weapon_egon",
"weapon_shotgun"
}
new render_type,render_fx,render_amt,render_color
public plugin_init() {
register_plugin("Weapon Spawn Effects","0.1","[LF] | Dr.Freeman")
for(new i;i<sizeof items;++i){
RegisterHam(Ham_Respawn,items[i],"fw_Respawn",1)
RegisterHam(Ham_Think,items[i],"fw_Think",1)
}
for(new i;i<sizeof wps;++i){
register_touch(wps[i],"worldspawn","fw_Respawn")
RegisterHam(Ham_Think,wps[i],"fw_Think",1)
}
render_type = register_cvar("ws_render","1")
render_fx = register_cvar("ws_renderfx","19")
render_amt = register_cvar("ws_renderamt","6.0")
render_color = register_cvar("ws_rendercolor","random")
g_owners = TrieCreate()
}
public fw_Respawn(ent){
new classname[32],Float:origin[3],Float:angles[3]
pev(ent,pev_classname,classname,31)
pev(ent,pev_origin,origin)
pev(ent,pev_angles,angles)
new ghost = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,classname))
if(!pev_valid(ghost))
return
new dnum[5],Float:rnd[3]
num_to_str(ent,dnum,4)
TrieSetCell(g_owners,dnum,ghost)
get_rendercolor(rnd)
set_pev(ghost,pev_renderfx,get_pcvar_num(render_fx))
set_pev(ghost,pev_rendercolor,rnd)
set_pev(ghost,pev_rendermode,get_pcvar_num(render_type))
set_pev(ghost,pev_renderamt,get_pcvar_float(render_amt))
dllfunc(DLLFunc_Spawn,ghost)
set_pev(ghost,pev_movetype,MOVETYPE_FLY)
set_pev(ghost,pev_nextthink,0.0)
set_pev(ghost,pev_solid,SOLID_NOT)
set_pev(ghost,pev_nextthink,0.0)
set_pev(ghost,pev_origin,origin)
set_pev(ghost,pev_angles,angles)
}
public fw_Think(ent){
new dnum[5],ghost
num_to_str(ent,dnum,4)
TrieGetCell(g_owners,dnum,ghost)
if(ghost){
TrieDeleteKey(g_owners,dnum)
engfunc(EngFunc_RemoveEntity,ghost)
}
}
get_rendercolor(Float:rnd[3]){
new temp[36],s[3][6]
get_pcvar_string(render_color,temp,35)
if(equal(temp,"random")){
rnd[0] = float(random_num(10,255))
rnd[1] = float(random_num(10,255))
rnd[2] = float(random_num(10,255))
}else{
parse(temp,s[0],5,s[1],5,s[2],5)
rnd[0] = str_to_float(s[0])
rnd[1] = str_to_float(s[1])
rnd[2] = str_to_float(s[2])
}
}