PHP- Kodu:
/*
* _______ _ _ __ __
* | _____/ | | | | \ \ __ / /
* | | | | | | | | / \ | |
* | | | |____| | | |/ __ \| |
* | | ___ | ______ | | / \ |
* | | |_ | | | | | | / \ |
* | | | | | | | | | | | |
* | |____| | | | | | | | | |
* |_______/ |_| |_| \_/ \_/
*
*
*
* Last Edited: 07-09-09
*
* ============
* Changelog:
* ============
*
* v2.2
* -Using avelocity now (idea by arkshine)
*
* v2.1
* -Added glow CVAR
*
* v2.0
* -Added color to floating weapons
*
* v1.0
* -Initial Release
*
*/
#define VERSION "2.2"
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <fun>
new maxplayers
new speed_pcvar
new toggle_pcvar
new glow_pcvar
public plugin_init()
{
register_plugin("UT Style Floating Weapons",VERSION,"GHW_Chronic")
speed_pcvar = register_cvar("FW_speed","25.0")
toggle_pcvar = register_cvar("FW_enabled","1")
glow_pcvar = register_cvar("FW_glow","1")
register_touch("weaponbox","worldspawn","touch")
set_task(1.0,"newgame")
maxplayers = get_maxplayers()
}
public touch(weaponbox,worldspawn)
{
if(get_pcvar_num(toggle_pcvar) && pev_valid(weaponbox))
{
float_weapon(weaponbox)
set_task(0.1,"spin_weapon",weaponbox)
}
}
public newgame()
{
if(get_pcvar_num(toggle_pcvar))
{
static ent, classname[8]
ent = engfunc(EngFunc_FindEntityInSphere,maxplayers,Float:{0.0,0.0,0.0},4800.0)
while(ent)
{
if(pev_valid(ent))
{
pev(ent,pev_classname,classname,7)
if(containi(classname,"armoury")!=-1)
{
float_weapon(ent)
spin_weapon(ent)
}
}
ent = engfunc(EngFunc_FindEntityInSphere,ent,Float:{0.0,0.0,0.0},4800.0)
}
}
}
public float_weapon(ent)
{
if(pev_valid(ent))
{
if(get_pcvar_num(glow_pcvar))
{
set_pev(ent,pev_renderfx,kRenderFxGlowShell)
switch(random_num(1,4))
{
case 1: set_pev(ent,pev_rendercolor,Float:{0.0,0.0,255.0})
case 2: set_pev(ent,pev_rendercolor,Float:{0.0,255.0,0.0})
case 3: set_pev(ent,pev_rendercolor,Float:{255.0,0.0,0.0})
case 4: set_pev(ent,pev_rendercolor,Float:{255.0,255.0,255.0})
}
}
static Float:floatvector[3]
pev(ent,pev_origin,floatvector)
floatvector[2] += 30.0
set_pev(ent,pev_origin,floatvector)
pev(ent,pev_angles,floatvector)
floatvector[0] -= 90.0
floatvector[1] += 45.0
set_pev(ent,pev_angles,floatvector)
set_pev(ent,pev_movetype,MOVETYPE_NOCLIP)
set_pev(ent,pev_solid,SOLID_TRIGGER)
set_pev(ent,pev_velocity,Float:{0.0,0.0,0.0})
}
}
public spin_weapon(ent)
{
if(pev_valid(ent))
{
static Float:floatvector[3]
floatvector[0] = 0.0
floatvector[1] = get_pcvar_float(speed_pcvar)
floatvector[2] = 0.0
set_pev(ent,pev_avelocity,floatvector)
}
}