Добавих натив set_hat_visibility(id, Float:vidimost) -- с този код може да се променя видимостта на шапката чрез друг плъгин.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <dice>
#include <fakemeta>
#include <fun>
#include <engine>
native set_hat_visibility(id, Float:visibility)
#define TASK_SCORPIONS 233000
#define TASK_DEMONS 233100
#define TASK_LIGHTNING 233200
#define TASK_DISCO 233300
#define TASK_TOXINS 233500
new g_szPlugin[64]
new g_msgScreenFade,
g_iScorpion,
g_iLightning,
g_iSmoke
enum _:Cvars
{
InstantHealthMin,
InstantHealthMax,
ScorpionsMin,
ScorpionsMax,
ScorpionsFreq,
DemonsDamageMin,
DemonsDamageMax,
DemonsFreq,
MoonwalkGravity,
HardwalkGravity,
OldManSpeed,
JetPlaneSpeed,
JetPlaneGravity,
LightningMin,
LightningMax,
LightningDamageMin,
LightningDamageMax,
LightningFreq,
LightningSize,
LightningFade,
LightningSlap,
DiscoRadius,
DiscoHeal,
ShadowHealth,
ShadowSpeed,
BuryDepth,
ToxinsChance,
ZeusSpeed
}
new g_eCvars[Cvars]
enum _:Sounds (+=2)
{
Godmode = 1,
OldMan,
JetPlane,
Thunder,
Disco,
Invis,
Noclip,
Bury,
Demons,
Jump,
Fall,
Camera,
Blood,
Zeus
}
new const g_szSounds[][] = {
"godmode", "DICE/godmode.wav",
"oldman", "DICE/oldman.wav",
"jetplane", "DICE/speed.wav",
"lightning", "DICE/thunder.wav",
"disco", "DICE/gangnam.wav",
"shadow", "DICE/invis.wav",
"noclip", "DICE/noclip.wav",
"bury", "DICE/bury.wav",
"demons", "houndeye/he_blast1.wav",
"wildride", "DICE/jump.wav",
"wildride", "DICE/fall.wav",
"camera", "DICE/camera.wav",
"toxins", "weapons/headshot2.wav",
"zeus", "DICE/zeus.wav"
}
new const g_iCameras[] = { CAMERA_NONE, CAMERA_3RDPERSON, CAMERA_TOPDOWN, CAMERA_UPLEFT }
new bool:g_blOldMan[33],
bool:g_blJetPlane[33],
bool:g_blKnifeOnly[33],
bool:g_blShadow[33],
bool:g_blZeus[33],
bool:g_blCstrike
new Float:g_flOldSpeed[33]
new g_iOldPos[33][3],
g_iOldHealth[33],
g_iDepth[33]
public client_putinserver(id)
{
g_blOldMan[id] = false
g_blJetPlane[id] = false
g_blKnifeOnly[id] = false
g_blShadow[id] = false
g_blZeus[id] = false
}
public plugin_init()
{
register_plugin("D.I.C.E. Items", PLUGIN_VERSION, "OciXCrom")
register_dictionary("DICE.txt")
get_plugin(-1, g_szPlugin, charsmax(g_szPlugin))
register_event("CurWeapon", "OnWeaponChange", "be", "1=1")
g_blCstrike = cstrike_running() == 1 ? true : false
g_msgScreenFade = get_user_msgid("ScreenFade")
AddItems()
}
public plugin_precache()
{
for(new i; i < sizeof(g_szSounds) - 1; i += 2)
AddDiceResource(g_szSounds[i], g_szSounds[i + 1])
AddDiceResource("camera", "models/rpgrocket.mdl")
g_iScorpion = AddDiceResource("scorpions", "models/DICE/scorpion.mdl")
g_iLightning = AddDiceResource("lightning", "sprites/lgtning.spr")
g_iSmoke = AddDiceResource("lightning", "sprites/steam1.spr")
}
AddItems()
{
new szItem[32]
copy(szItem, charsmax(szItem), "instanthealth")
AddDiceItem(g_szPlugin, szItem, ITEM_INSTANT, "DI_INSTANT_HEALTH", "ItemInstantHealth")
g_eCvars[InstantHealthMin] = AddDiceCvar(szItem, "min", "25")
g_eCvars[InstantHealthMax] = AddDiceCvar(szItem, "max", "255")
AddDiceItem(g_szPlugin, "godmode", ITEM_DELAYED, "DI_GODMODE", "ItemGodmode", "DIH_GODMODE", 5, 15)
copy(szItem, charsmax(szItem), "scorpions")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_SCORPIONS", "ItemScorpions", "DIH_SCORPIONS", 8, 20)
g_eCvars[ScorpionsFreq] = AddDiceCvar(szItem, "freq", "0.3", CVAR_FLOAT)
copy(szItem, charsmax(szItem), "demons")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_DEMONS", "ItemDemons", "DIH_DEMONS", 5, 15)
g_eCvars[DemonsDamageMin] = AddDiceCvar(szItem, "damage_min", "1")
g_eCvars[DemonsDamageMax] = AddDiceCvar(szItem, "damage_max", "5")
g_eCvars[DemonsFreq] = AddDiceCvar(szItem, "freq", "0.8", CVAR_FLOAT)
copy(szItem, charsmax(szItem), "moonwalk")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_MOONWALK", "ItemMoonwalk", "DIH_MOONWALK", 5, 15)
g_eCvars[MoonwalkGravity] = AddDiceCvar(szItem, "gravity", "0.3", CVAR_FLOAT)
copy(szItem, charsmax(szItem), "hardwalk")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_HARDWALK", "ItemHardwalk", "DIH_HARDWALK", 5, 15)
g_eCvars[HardwalkGravity] = AddDiceCvar(szItem, "gravity", "30.0", CVAR_FLOAT)
copy(szItem, charsmax(szItem), "oldman")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_OLD_MAN", "ItemOldMan", "DIH_OLD_MAN", 7, 12)
g_eCvars[OldManSpeed] = AddDiceCvar(szItem, "speed", "65.0", CVAR_FLOAT)
copy(szItem, charsmax(szItem), "jetplane")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_JET_PLANE", "ItemJetPlane", "DIH_JET_PLANE", 7, 12)
g_eCvars[JetPlaneSpeed] = AddDiceCvar(szItem, "speed", "1000.0", CVAR_FLOAT)
g_eCvars[JetPlaneGravity] = AddDiceCvar(szItem, "gravity", "0.4", CVAR_FLOAT)
copy(szItem, charsmax(szItem), "lightning")
AddDiceItem(g_szPlugin, szItem, ITEM_INSTANT, "DI_LIGHTNING", "ItemLightning")
g_eCvars[LightningMin] = AddDiceCvar(szItem, "min", "1")
g_eCvars[LightningMax] = AddDiceCvar(szItem, "max", "3")
g_eCvars[LightningDamageMin] = AddDiceCvar(szItem, "damage_min", "20")
g_eCvars[LightningDamageMax] = AddDiceCvar(szItem, "damage_max", "30")
g_eCvars[LightningFreq] = AddDiceCvar(szItem, "freq", "0.8", CVAR_FLOAT)
g_eCvars[LightningSize] = AddDiceCvar(szItem, "size", "100")
g_eCvars[LightningFade] = AddDiceCvar(szItem, "fade", "1")
g_eCvars[LightningSlap] = AddDiceCvar(szItem, "slap", "1")
copy(szItem, charsmax(szItem), "disco")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_DISCO", "ItemDisco", "DIH_DISCO", 9, 20)
g_eCvars[DiscoRadius] = AddDiceCvar(szItem, "radius", "150.0", CVAR_FLOAT)
g_eCvars[DiscoHeal] = AddDiceCvar(szItem, "heal", "4")
copy(szItem, charsmax(szItem), "shadow")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_SHADOW", "ItemShadow", "DIH_SHADOW", 5, 15, .glow = false)
g_eCvars[ShadowHealth] = AddDiceCvar(szItem, "health", "1")
g_eCvars[ShadowSpeed] = AddDiceCvar(szItem, "speed", "360.0", CVAR_FLOAT)
AddDiceItem(g_szPlugin, "noclip", ITEM_DELAYED, "DI_NOCLIP", "ItemNoclip", "DIH_NOCLIP", 5, 15)
copy(szItem, charsmax(szItem), "bury")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_BURY", "ItemBury", "DIH_BURY", 5, 12)
g_eCvars[BuryDepth] = AddDiceCvar(szItem, "depth", "30")
AddDiceItem(g_szPlugin, "wildride", ITEM_DELAYED, "DI_WILD_RIDE", "ItemWildRide", "DIH_WILD_RIDE", 5, 10)
AddDiceItem(g_szPlugin, "camera", ITEM_DELAYED, "DI_CAMERA", "ItemCamera", "DIH_CAMERA", 10, 20)
AddDiceItem(g_szPlugin, "disarm", ITEM_INSTANT, "DI_DISARM", "ItemDisarm")
copy(szItem, charsmax(szItem), "toxins")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_TOXINS", "ItemToxins", "DIH_TOXINS", 7, 15)
g_eCvars[ToxinsChance] = AddDiceCvar(szItem, "chance", "10")
copy(szItem, charsmax(szItem), "zeus")
AddDiceItem(g_szPlugin, szItem, ITEM_DELAYED, "DI_ZEUS", "ItemZeus", "DIH_ZEUS", 7, 15)
g_eCvars[ZeusSpeed] = AddDiceCvar(szItem, "speed", "700.0", CVAR_FLOAT)
}
public OnWeaponChange(id)
{
if(g_blKnifeOnly[id])
engclient_cmd(id, "weapon_knife")
if(g_blOldMan[id])
set_user_maxspeed(id, GetDiceCvar(g_eCvars[OldManSpeed], CVAR_FLOAT))
if(g_blJetPlane[id])
set_user_maxspeed(id, GetDiceCvar(g_eCvars[JetPlaneSpeed], CVAR_FLOAT))
if(g_blShadow[id])
{
set_user_maxspeed(id, GetDiceCvar(g_eCvars[ShadowSpeed], CVAR_FLOAT))
engclient_cmd(id, "weapon_knife")
}
if(g_blZeus[id])
set_user_maxspeed(id, GetDiceCvar(g_eCvars[ZeusSpeed], CVAR_FLOAT))
}
public ItemInstantHealth(id)
{
new iRandom = random_num(GetDiceCvar(g_eCvars[InstantHealthMin]), GetDiceCvar(g_eCvars[InstantHealthMax]))
set_user_health(id, iRandom)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_INSTANT_HEALTH", iRandom)
client_cmd(0, "spk ^"fvox/beep _comma beep _comma beep _comma administering_medical^"")
DiceDHUD(id, szMessage)
new szName[32]
get_user_name(id, szName, charsmax(szName))
formatex(szMessage, charsmax(szMessage), "%L", LANG_PLAYER, "DIH_INSTANT_HEALTH", szName, iRandom)
DiceHUD(szMessage)
}
public ItemGodmode(id)
{
set_user_godmode(id, 1)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_GODMODE")
client_cmd(0, "spk %s", g_szSounds[Godmode])
DiceDHUD(id, szMessage)
}
public ItemGodmodeOFF(id)
{
if(is_user_connected(id))
{
if(is_user_alive(id))
set_user_godmode(id, 0)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_GODMODE_OFF")
DiceDHUD(id, szMessage)
}
}
public ItemScorpions(id)
{
set_task(GetDiceCvar(g_eCvars[ScorpionsFreq], CVAR_FLOAT), "CreateScorpion", id + TASK_SCORPIONS, .flags = "b")
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_SCORPIONS")
client_cmd(0, "spk aslave/slv_die2.wav")
DiceDHUD(id, szMessage)
}
public ItemScorpionsOFF(id)
{
remove_task(id + TASK_SCORPIONS)
if(is_user_connected(id))
{
if(is_user_alive(id))
set_user_godmode(id, 0)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_SCORPIONS_OFF")
DiceDHUD(id, szMessage)
}
}
public CreateScorpion(id)
{
id -= TASK_SCORPIONS
if(is_user_alive(id))
{
new iVec[3], iAimVec[3], iVelocityVec[3], iLength, iSpeed = 800
get_user_origin(id, iVec)
get_user_origin(id, iAimVec, 2)
iVelocityVec[0] = iAimVec[0] - iVec[0]
iVelocityVec[1] = iAimVec[1] - iVec[1]
iVelocityVec[2] = iAimVec[2] - iVec[2]
iLength = sqrt(iVelocityVec[0] * iVelocityVec[0] + iVelocityVec[1] * iVelocityVec[1] + iVelocityVec[2] * iVelocityVec[2])
iVelocityVec[0] = iVelocityVec[0] * iSpeed/iLength
iVelocityVec[1] = iVelocityVec[1] * iSpeed/iLength
iVelocityVec[2] = iVelocityVec[2] * iSpeed/iLength
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_MODEL)
write_coord(iVec[0])
write_coord(iVec[1])
write_coord(iVec[2] + 20)
write_coord(iVelocityVec[0])
write_coord(iVelocityVec[1])
write_coord(iVelocityVec[2] + 100)
write_angle(random(361))
write_short(g_iScorpion)
write_byte(2)
write_byte(255)
message_end()
}
else
remove_task(id + TASK_SCORPIONS)
}
sqrt(iNum)
{
new iDiv = iNum
new iResult = 1
while(iDiv > iResult)
{
iDiv = (iDiv + iResult) / 2
iResult = iNum / iDiv
}
return iDiv
}
public ItemDemons(id)
{
set_task(GetDiceCvar(g_eCvars[DemonsFreq], CVAR_FLOAT), "DemonsAttack", id + TASK_DEMONS, .flags = "b")
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_DEMONS")
client_cmd(0, "spk houndeye/he_attack2.wav")
DiceDHUD(id, szMessage)
}
public ItemDemonsOFF(id)
{
remove_task(id + TASK_DEMONS)
if(is_user_connected(id))
{
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_DEMONS_OFF")
DiceDHUD(id, szMessage)
}
}
public DemonsAttack(id)
{
id -= TASK_DEMONS
user_slap(id, random_num(GetDiceCvar(g_eCvars[DemonsDamageMin]), GetDiceCvar(g_eCvars[DemonsDamageMax])))
EmitSound(id, g_szSounds[Demons])
}
public ItemMoonwalk(id)
{
set_user_gravity(id, GetDiceCvar(g_eCvars[MoonwalkGravity], CVAR_FLOAT))
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_MOONWALK")
client_cmd(0, "spk ^"dadeda high walk granted^"")
DiceDHUD(id, szMessage)
}
public ItemMoonwalkOFF(id)
{
if(is_user_connected(id))
{
if(is_user_alive(id))
set_user_gravity(id)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_MOONWALK_OFF")
DiceDHUD(id, szMessage)
}
}
public ItemHardwalk(id)
{
set_user_gravity(id, GetDiceCvar(g_eCvars[HardwalkGravity], CVAR_FLOAT))
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_HARDWALK")
client_cmd(0, "spk ^"warning _comma high walk denied^"");
DiceDHUD(id, szMessage)
}
public ItemHardwalkOFF(id)
{
if(is_user_connected(id))
{
if(is_user_alive(id))
set_user_gravity(id)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_HARDWALK_OFF")
DiceDHUD(id, szMessage)
}
}
public ItemOldMan(id)
{
g_blOldMan[id] = true
g_flOldSpeed[id] = get_user_maxspeed(id)
OnWeaponChange(id)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_OLD_MAN")
client_cmd(0, "spk %s", g_szSounds[OldMan])
DiceDHUD(id, szMessage)
}
public ItemOldManOFF(id)
{
if(is_user_connected(id))
{
if(is_user_alive(id))
set_user_maxspeed(id, g_flOldSpeed[id])
g_blOldMan[id] = false
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_OLD_MAN_OFF")
DiceDHUD(id, szMessage)
}
}
public ItemJetPlane(id)
{
g_blJetPlane[id] = true
g_flOldSpeed[id] = get_user_maxspeed(id)
set_user_gravity(id, GetDiceCvar(g_eCvars[JetPlaneGravity], CVAR_FLOAT))
OnWeaponChange(id)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_JET_PLANE")
client_cmd(0, "spk %s", g_szSounds[JetPlane])
DiceDHUD(id, szMessage)
}
public ItemJetPlaneOFF(id)
{
if(is_user_connected(id))
{
if(is_user_alive(id))
{
set_user_maxspeed(id, g_flOldSpeed[id])
set_user_gravity(id)
}
g_blJetPlane[id] = false
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_JET_PLANE_OFF")
DiceDHUD(id, szMessage)
}
}
public ItemLightning(id)
{
new iRandom = random_num(GetDiceCvar(g_eCvars[LightningMin]), GetDiceCvar(g_eCvars[LightningMax]))
new iTask = id + TASK_LIGHTNING
StruckLightning(iTask)
if(iRandom > 1)
set_task(GetDiceCvar(g_eCvars[LightningFreq], CVAR_FLOAT), "StruckLightning", iTask, .flags = "a", .repeat = iRandom - 1)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_LIGHTNING", iRandom)
DiceDHUD(id, szMessage)
new szName[32]
get_user_name(id, szName, charsmax(szName))
formatex(szMessage, charsmax(szMessage), "%L", LANG_PLAYER, "DIH_LIGHTNING", szName, iRandom)
DiceHUD(szMessage)
}
public StruckLightning(id)
{
id -= TASK_LIGHTNING
if(!is_user_alive(id))
{
remove_task(id + TASK_LIGHTNING)
return
}
new iOrigin[2][3]
get_user_origin(id, iOrigin[0])
iOrigin[0][2] = iOrigin[0][2] - 26
iOrigin[1][0] = iOrigin[0][0] + 150
iOrigin[1][1] = iOrigin[0][1] + 150
iOrigin[1][2] = iOrigin[0][2] + 400
if(GetDiceCvar(g_eCvars[LightningFade]))
ScreenFade(id, 255, 255, 255, 120)
if(GetDiceCvar(g_eCvars[LightningSlap]))
user_slap(id, random_num(GetDiceCvar(g_eCvars[LightningDamageMin]), GetDiceCvar(g_eCvars[LightningDamageMax])))
else
set_user_health(id, get_user_health(id) - random_num(GetDiceCvar(g_eCvars[LightningDamageMin]), GetDiceCvar(g_eCvars[LightningDamageMax])))
EmitSound(id, g_szSounds[Thunder])
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(0)
write_coord(iOrigin[0][0])
write_coord(iOrigin[0][1])
write_coord(iOrigin[0][2])
write_coord(iOrigin[1][0])
write_coord(iOrigin[1][1])
write_coord(iOrigin[1][2])
write_short(g_iLightning)
write_byte(1)
write_byte(5)
write_byte(2)
write_byte(GetDiceCvar(g_eCvars[LightningSize]))
write_byte(30)
write_byte(RANDOM_COLOR)
write_byte(RANDOM_COLOR)
write_byte(RANDOM_COLOR)
write_byte(200)
write_byte(200)
message_end()
message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin[1])
write_byte(9)
write_coord(iOrigin[1][0])
write_coord(iOrigin[1][1])
write_coord(iOrigin[1][2])
message_end()
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, iOrigin[1])
write_byte(5)
write_coord(iOrigin[1][0])
write_coord(iOrigin[1][1])
write_coord(iOrigin[1][2])
write_short(g_iSmoke)
write_byte(10)
write_byte(10)
message_end()
}
public ScreenFade(id, iRed, iGreen, iBlue, iAlpha)
{
message_begin(MSG_ONE, g_msgScreenFade, {0, 0, 0}, id)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(iRed)
write_byte(iGreen)
write_byte(iBlue)
write_byte(iAlpha)
message_end()
}
public ItemDisco(id)
{
g_blKnifeOnly[id] = true
engclient_cmd(id, "weapon_knife")
new iTask = id + TASK_DISCO
DiscoAura(iTask)
set_task(0.7, "DiscoAura", iTask, .flags = "b")
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_DISCO")
EmitSound(id, g_szSounds[Disco])
DiceDHUD(id, szMessage)
}
public ItemDiscoOFF(id)
{
remove_task(id + TASK_DISCO)
arrayset(g_blKnifeOnly, false, sizeof(g_blKnifeOnly))
if(is_user_connected(id))
{
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_DISCO_OFF")
DiceDHUD(id, szMessage)
}
}
public DiscoAura(id)
{
id -= TASK_DISCO
MakeAura(id, 60, RANDOM_COLOR, RANDOM_COLOR, RANDOM_COLOR, RANDOM_COLOR, 50)
new iPlayers[32], Float:flOrigin[3], Float:flOrigin2[3], Float:flRadius = GetDiceCvar(g_eCvars[DiscoRadius], CVAR_FLOAT),
iHeal = GetDiceCvar(g_eCvars[DiscoHeal]), iTeam = get_user_team(id), iPnum, iPlayer
get_players(iPlayers, iPnum, "a")
pev(id, pev_origin, flOrigin)
for(new i; i < iPnum; i++)
{
iPlayer = iPlayers[i]
pev(iPlayer, pev_origin, flOrigin2)
if(get_distance_f(flOrigin, flOrigin2) <= flRadius)
{
if(get_user_team(iPlayer) == iTeam)
set_user_health(iPlayer, get_user_health(iPlayer) + iHeal)
else
{
if(!g_blKnifeOnly[iPlayer])
{
g_blKnifeOnly[iPlayer] = true
engclient_cmd(iPlayer, "weapon_knife")
}
}
}
}
}
MakeAura(id, iRadius, iRed, iGreen, iBlue, iAlpha, iDecay)
{
new iOrigin[3]
get_user_origin(id, iOrigin)
message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin, 0)
write_byte(TE_DLIGHT)
write_coord(iOrigin[0])
write_coord(iOrigin[1])
write_coord(iOrigin[2])
write_byte(iRadius)
write_byte(iRed)
write_byte(iGreen)
write_byte(iBlue)
write_byte(iAlpha)
write_byte(iDecay)
message_end()
}
public ItemShadow(id)
{
g_blShadow[id] = true
g_iOldHealth[id] = get_user_health(id)
g_flOldSpeed[id] = get_user_maxspeed(id)
set_user_health(id, GetDiceCvar(g_eCvars[ShadowHealth]))
set_user_footsteps(id, 1)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
set_hat_visibility(id, 0.0)
OnWeaponChange(id)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_SHADOW")
client_cmd(0, "spk %s", g_szSounds[Invis])
DiceDHUD(id, szMessage)
}
public ItemShadowOFF(id)
{
if(is_user_connected(id))
{
if(is_user_alive(id))
{
set_user_maxspeed(id, g_flOldSpeed[id])
set_user_health(id, g_iOldHealth[id])
set_user_footsteps(id, 0)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
set_hat_visibility(id, 255.0)
}
g_blShadow[id] = false
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_SHADOW_OFF")
DiceDHUD(id, szMessage)
}
}
public ItemNoclip(id)
{
get_user_origin(id, g_iOldPos[id])
set_user_noclip(id, 1)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_NOCLIP")
client_cmd(0, "spk %s", g_szSounds[Noclip])
DiceDHUD(id, szMessage)
}
public ItemNoclipOFF(id)
{
if(is_user_connected(id))
{
if(is_user_alive(id))
{
set_user_noclip(id, 0)
UnstuckIfStuck(id)
}
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_NOCLIP_OFF")
DiceDHUD(id, szMessage)
}
}
bool:is_player_stuck(id)
{
static Float:flOrigin[3]
pev(id, pev_origin, flOrigin)
engfunc(EngFunc_TraceHull, flOrigin, flOrigin, 0, (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN, id, 0)
if(get_tr2(0, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))
return true
return false
}
public ItemBury(id)
{
new iDepth = GetDiceCvar(g_eCvars[BuryDepth])
while(!is_player_stuck(id))
{
bury_player(id, 1)
g_iDepth[id] += iDepth
}
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_BURY")
client_cmd(0, "spk %s", g_szSounds[Bury])
DiceDHUD(id, szMessage)
}
public ItemBuryOFF(id)
{
if(is_user_connected(id))
{
if(is_user_alive(id))
bury_player(id, 0)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_BURY_OFF")
DiceDHUD(id, szMessage)
}
}
bury_player(id, iType)
{
new iOrigin[3]
get_user_origin(id, iOrigin)
switch(iType)
{
case 0: iOrigin[2] += GetDiceCvar(g_eCvars[BuryDepth]) + 5
case 1: iOrigin[2] -= 30
}
set_user_origin(id, iOrigin)
}
public ItemWildRide(id)
{
set_user_gravity(id, -50.0)
new iOrigin[3]
get_user_origin(id, iOrigin)
iOrigin[2] += 5
set_user_origin(id, iOrigin)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_WILD_RIDE")
EmitSound(id, g_szSounds[Jump])
DiceDHUD(id, szMessage)
}
public ItemWildRideOFF(id)
{
if(is_user_connected(id))
{
if(is_user_alive(id))
{
set_user_gravity(id, 30.0)
EmitSound(id, g_szSounds[Fall])
set_task(1.0, "NormalGravity", id)
}
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_WILD_RIDE_OFF")
DiceDHUD(id, szMessage)
}
}
public NormalGravity(id)
set_user_gravity(id)
public ItemCamera(id)
{
new iRandom = g_iCameras[random_num(1, charsmax(g_iCameras))]
set_view(id, iRandom)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_CAMERA")
client_cmd(0, "spk %s", g_szSounds[Camera])
DiceDHUD(id, szMessage)
new szName[32]
get_user_name(id, szName, charsmax(szName))
formatex(szMessage, charsmax(szMessage), "%L", LANG_PLAYER, "DIH_CAMERA", szName)
DiceHUD(szMessage)
}
public ItemCameraOFF(id)
{
if(is_user_connected(id))
{
set_view(id, g_iCameras[0])
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_CAMERA_OFF")
DiceDHUD(id, szMessage)
}
}
public ItemDisarm(id)
{
new bool:bC4
if(g_blCstrike && user_has_weapon(id, CSW_C4))
bC4 = true
strip_user_weapons(id)
if(bC4)
give_item(id, "weapon_c4")
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_DISARM")
client_cmd(0, "spk ^"weapon system deactivated^"")
DiceDHUD(id, szMessage)
new szName[32]
get_user_name(id, szName, charsmax(szName))
formatex(szMessage, charsmax(szMessage), "%L", LANG_PLAYER, "DIH_DISARM", szName)
DiceHUD(szMessage)
}
public ItemToxins(id)
{
set_task(1.0, "CheckBlood", id + TASK_TOXINS, .flags = "b")
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_TOXINS")
client_cmd(0, "spk fvox/blood_toxins.wav")
DiceDHUD(id, szMessage)
new szName[32]
get_user_name(id, szName, charsmax(szName))
formatex(szMessage, charsmax(szMessage), "%L", LANG_PLAYER, "DIH_TOXINS", szName)
DiceHUD(szMessage)
}
public ItemToxinsOFF(id)
{
remove_task(id + TASK_TOXINS)
if(is_user_alive(id))
{
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_TOXINS_OFF")
DiceDHUD(id, szMessage)
}
}
public CheckBlood(id)
{
id -= TASK_TOXINS
if(is_user_alive(id))
{
ScreenFade(id, RANDOM_COLOR, RANDOM_COLOR, RANDOM_COLOR, RANDOM_COLOR)
PlayEffect(id, TE_LAVASPLASH)
if(!random(GetDiceCvar(g_eCvars[ToxinsChance])))
{
EmitSound(id, g_szSounds[Blood])
user_kill(id)
}
}
else
remove_task(id + TASK_TOXINS)
}
public ItemZeus(id)
{
g_blZeus[id] = true
g_flOldSpeed[id] = get_user_maxspeed(id)
get_user_origin(id, g_iOldPos[id])
set_user_noclip(id, 1)
set_user_godmode(id, 1)
OnWeaponChange(id)
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_ZEUS")
client_cmd(0, "spk %s", g_szSounds[Zeus])
DiceDHUD(id, szMessage)
}
public ItemZeusOFF(id)
{
if(is_user_connected(id))
{
if(is_user_alive(id))
{
set_user_maxspeed(id, g_flOldSpeed[id])
set_user_noclip(id, 0)
set_user_godmode(id, 0)
UnstuckIfStuck(id)
}
g_blZeus[id] = false
new szMessage[128]
formatex(szMessage, charsmax(szMessage), "%L", id, "DII_ZEUS_OFF")
DiceDHUD(id, szMessage)
}
}
UnstuckIfStuck(id)
{
if(is_player_stuck(id))
{
PlayEffect(id, TE_TELEPORT)
set_user_origin(id, g_iOldPos[id])
PlayEffect(id, TE_TELEPORT)
}
}
PlayEffect(id, iEffect)
{
new iOrigin[3]
get_user_origin(id, iOrigin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(iEffect)
write_coord(iOrigin[0])
write_coord(iOrigin[1])
write_coord(iOrigin[2])
message_end()
}
EmitSound(id, szSound[])
emit_sound(id, CHAN_ITEM, szSound, 1.0, ATTN_NORM, 0, PITCH_NORM)
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cstrike>
#include <customshop>
#include <fun>
#include <hamsandwich>
native set_hat_visibility(id, Float:visibility)
#define PLUGIN_VERSION "1.2"
#define m_pActiveItem 373
/*
* This plugin contains all the default items Custom Shop has to offer.
* Feel free to change anything you like below.
* Items can be disabled in plugin_precache(), not from here.
*/
additem ITEM_HEALTH
#define HEALTH_ID "health"
#define HEALTH_NAME "+50 Health Points"
#define HEALTH_PRICE 1500
#define HEALTH_LIMIT 5
#define HEALTH_AMOUNT 50
#define HEALTH_SOUND "items/smallmedkit1.wav"
additem ITEM_ARMOR
#define ARMOR_ID "armor"
#define ARMOR_NAME "+100 Armor Points"
#define ARMOR_PRICE 1000
#define ARMOR_LIMIT 8
#define ARMOR_AMOUNT 100
#define ARMOR_SOUND "items/ammopickup2.wav"
additem ITEM_UNLCLIP
#define UNLCLIP_ID "unlclip"
#define UNLCLIP_NAME "Unlimited Clip"
#define UNLCLIP_PRICE 3000
#define UNLCLIP_LIMIT 3
#define UNLCLIP_BPAMMO 97280
new const UNLCLIP_BADWEAPONS[] = { CSW_KNIFE, CSW_C4, CSW_HEGRENADE, CSW_FLASHBANG, CSW_SMOKEGRENADE }
additem ITEM_UNLAMMO
#define UNLAMMO_ID "unlammo"
#define UNLAMMO_NAME "Unlimited Ammo"
#define UNLAMMO_PRICE 200
#define UNLAMMO_LIMIT 5
#define UNLAMMO_BPAMMO 99999
new const UNLAMMO_BADWEAPONS[] = { CSW_KNIFE, CSW_C4, CSW_HEGRENADE, CSW_FLASHBANG, CSW_SMOKEGRENADE }
additem ITEM_BOMBER
#define BOMBER_ID "bomber"
#define BOMBER_NAME "Bomber"
#define BOMBER_PRICE 1600
#define BOMBER_LIMIT 3
#define BOMBER_AMOUNT 20
#define BOMBER_SOUND "x/x_pain2.wav"
additem ITEM_SILENTSTEPS
#define SILENTSTEPS_ID "silentsteps"
#define SILENTSTEPS_NAME "Silent Footsteps"
#define SILENTSTEPS_PRICE 3000
#define SILENTSTEPS_LIMIT 1
additem ITEM_SPEED
#define SPEED_ID "speed"
#define SPEED_NAME "Faster Speed"
#define SPEED_PRICE 4300
#define SPEED_LIMIT 1
#define SPEED_AMOUNT 300.0
#define SPEED_SOUND "misc/bipbip.wav"
new bool:g_blSpeed[33]
additem ITEM_GRAVITY
#define GRAVITY_ID "gravity"
#define GRAVITY_NAME "Low Gravity"
#define GRAVITY_PRICE 2800
#define GRAVITY_LIMIT 1
#define GRAVITY_AMOUNT 0.5
additem ITEM_CHAMELEON
#define CHAMELEON_ID "chameleon"
#define CHAMELEON_NAME "Chameleon"
#define CHAMELEON_PRICE 9000
#define CHAMELEON_LIMIT 1
new const CHAMELEON_MODELS[][][] = { { "gign", "gsg9", "sas", "urban" }, { "arctic", "guerilla", "leet", "terror" } }
additem ITEM_DRUGS
#define DRUGS_ID "drugs"
#define DRUGS_NAME "Drugs (Speed + Health)"
#define DRUGS_PRICE 8000
#define DRUGS_LIMIT 2
#define DRUGS_HEALTH 200
#define DRUGS_SPEED 300.0
#define DRUGS_FOV 180
new bool:g_blDrugs[33]
additem ITEM_TRANSPARENCY
#define TRANSPARENCY_ID "transparency"
#define TRANSPARENCY_NAME "Transparency"
#define TRANSPARENCY_PRICE 2500
#define TRANSPARENCY_LIMIT 1
#define TRANSPARENCY_AMOUNT 75
additem ITEM_INVIS
#define INVIS_ID "invis"
#define INVIS_NAME "Invisibility (15 Seconds)"
#define INVIS_PRICE 16000
#define INVIS_LIMIT 1
#define INVIS_SOUND "hornet/ag_buzz1.wav"
#define INVIS_TIME 15.0
#define INVIS_AMOUNT 0
additem ITEM_DOUBLEDAMAGE
#define DOUBLEDAMAGE_ID "doubledamage"
#define DOUBLEDAMAGE_NAME "Double Damage"
#define DOUBLEDAMAGE_PRICE 10000
#define DOUBLEDAMAGE_LIMIT 1
#define DOUBLEDAMAGE_AMOUNT 2
new bool:g_blDoubleDamage[33]
additem ITEM_GODMODE
#define GODMODE_ID "godmode"
#define GODMODE_NAME "Godmode (5 Seconds)"
#define GODMODE_PRICE 16000
#define GODMODE_LIMIT 1
#define GODMODE_SOUND "misc/stinger12.wav"
#define GODMODE_TIME 5.0
additem ITEM_HEALTHREGEN
#define HEALTHREGEN_ID "healthregen"
#define HEALTHREGEN_NAME "Health Regeneration"
#define HEALTHREGEN_PRICE 1800
#define HEALTHREGEN_LIMIT 1
#define HEALTHREGEN_SOUND "items/suitchargeok1.wav"
#define HEALTHREGEN_FREQ 0.5
#define HEALTHREGEN_PERSEC 1
#define HEALTHREGEN_MAX 150
#define HEALTHREGEN_TASK 400040
new bool:g_blHealthRegen[33]
additem ITEM_ARMORREGEN
#define ARMORREGEN_ID "armorregen"
#define ARMORREGEN_NAME "Armor Regeneration"
#define ARMORREGEN_PRICE 2000
#define ARMORREGEN_LIMIT 1
#define ARMORREGEN_SOUND "items/suitchargeok1.wav"
#define ARMORREGEN_FREQ 0.5
#define ARMORREGEN_PERSEC 10
#define ARMORREGEN_MAX 150
#define ARMORREGEN_TASK 400140
new bool:g_blArmorRegen[33]
additem ITEM_AWP
#define AWP_ID "awp"
#define AWP_NAME "AWP Sniper"
#define AWP_PRICE 4750
#define AWP_LIMIT 1
#define AWP_BPAMMO 30
new g_iWeapon[33]
new g_msgSetFOV
public plugin_init()
{
register_plugin("Custom Shop: Default Items", PLUGIN_VERSION, "OciXCrom")
register_event("CurWeapon", "eventChangeWeapon", "be", "1=1")
RegisterHam(Ham_TakeDamage, "player", "eventTakeDamage")
g_msgSetFOV = get_user_msgid("SetFOV")
}
public plugin_precache()
{
/*
* Comment a line to disable a specific item (add // in front).
* Add extra parameters here (example: .team = 1, .flag = "b", .points = 85).
* You can also rearange the items from this section.
*/
ITEM_HEALTH = cshopRegisterItem(HEALTH_ID, HEALTH_NAME, HEALTH_PRICE, HEALTH_LIMIT, HEALTH_SOUND)
ITEM_ARMOR = cshopRegisterItem(ARMOR_ID, ARMOR_NAME, ARMOR_PRICE, ARMOR_LIMIT, ARMOR_SOUND)
ITEM_BOMBER = cshopRegisterItem(BOMBER_ID, BOMBER_NAME, BOMBER_PRICE, BOMBER_LIMIT, BOMBER_SOUND)
ITEM_UNLCLIP = cshopRegisterItem(UNLCLIP_ID, UNLCLIP_NAME, UNLCLIP_PRICE, UNLCLIP_LIMIT)
ITEM_UNLAMMO = cshopRegisterItem(UNLAMMO_ID, UNLAMMO_NAME, UNLAMMO_PRICE, UNLAMMO_LIMIT)
ITEM_SILENTSTEPS = cshopRegisterItem(SILENTSTEPS_ID, SILENTSTEPS_NAME, SILENTSTEPS_PRICE, SILENTSTEPS_LIMIT)
ITEM_SPEED = cshopRegisterItem(SPEED_ID, SPEED_NAME, SPEED_PRICE, SPEED_LIMIT, SPEED_SOUND)
ITEM_GRAVITY = cshopRegisterItem(GRAVITY_ID, GRAVITY_NAME, GRAVITY_PRICE, GRAVITY_LIMIT)
ITEM_CHAMELEON = cshopRegisterItem(CHAMELEON_ID, CHAMELEON_NAME, CHAMELEON_PRICE, CHAMELEON_LIMIT)
ITEM_DRUGS = cshopRegisterItem(DRUGS_ID, DRUGS_NAME, DRUGS_PRICE, DRUGS_LIMIT)
ITEM_TRANSPARENCY = cshopRegisterItem(TRANSPARENCY_ID, TRANSPARENCY_NAME, TRANSPARENCY_PRICE, TRANSPARENCY_LIMIT)
ITEM_INVIS = cshopRegisterItem(INVIS_ID, INVIS_NAME, INVIS_PRICE, INVIS_LIMIT, INVIS_SOUND, INVIS_TIME)
ITEM_DOUBLEDAMAGE = cshopRegisterItem(DOUBLEDAMAGE_ID, DOUBLEDAMAGE_NAME, DOUBLEDAMAGE_PRICE, DOUBLEDAMAGE_LIMIT)
ITEM_GODMODE = cshopRegisterItem(GODMODE_ID, GODMODE_NAME, GODMODE_PRICE, GODMODE_LIMIT, GODMODE_SOUND, GODMODE_TIME)
ITEM_HEALTHREGEN = cshopRegisterItem(HEALTHREGEN_ID, HEALTHREGEN_NAME, HEALTHREGEN_PRICE, HEALTHREGEN_LIMIT, HEALTHREGEN_SOUND)
ITEM_ARMORREGEN = cshopRegisterItem(ARMORREGEN_ID, ARMORREGEN_NAME, ARMORREGEN_PRICE, ARMORREGEN_LIMIT, ARMORREGEN_SOUND)
ITEM_AWP = cshopRegisterItem(AWP_ID, AWP_NAME, AWP_PRICE, AWP_LIMIT)
}
public cshopItemBought(id, iItem)
{
if(iItem == ITEM_HEALTH) { set_user_health(id, get_user_health(id) + HEALTH_AMOUNT); }
else if(iItem == ITEM_ARMOR) { set_user_armor(id, get_user_armor(id) + ARMOR_AMOUNT); }
else if(iItem == ITEM_BOMBER) { give_item(id, "weapon_hegrenade"); cs_set_user_bpammo(id, CSW_HEGRENADE, cs_get_user_bpammo(id, CSW_HEGRENADE) + BOMBER_AMOUNT); }
else if(iItem == ITEM_UNLCLIP)
{
for(new i; i < sizeof(UNLCLIP_BADWEAPONS); i++)
{
if(g_iWeapon[id] == UNLCLIP_BADWEAPONS[i])
{
ColorChat(id, "You can't activate ^3%s ^1on this weapon!", UNLCLIP_NAME)
cshopErrorSound(id)
return DONT_BUY
}
}
cs_set_weapon_ammo(get_pdata_cbase(id, m_pActiveItem), UNLCLIP_BPAMMO)
cs_set_user_bpammo(id, g_iWeapon[id], 0)
}
else if(iItem == ITEM_UNLAMMO)
{
for(new i; i < sizeof(UNLAMMO_BADWEAPONS); i++)
{
if(g_iWeapon[id] == UNLAMMO_BADWEAPONS[i])
{
ColorChat(id, "You can't activate ^3%s ^1on this weapon!", UNLAMMO_NAME)
cshopErrorSound(id)
return DONT_BUY
}
}
cs_set_user_bpammo(id, g_iWeapon[id], UNLAMMO_BPAMMO)
}
else if(iItem == ITEM_SILENTSTEPS) { set_user_footsteps(id); }
else if(iItem == ITEM_SPEED) { g_blSpeed[id] = true; set_user_maxspeed(id, SPEED_AMOUNT); }
else if(iItem == ITEM_GRAVITY) { set_user_gravity(id, GRAVITY_AMOUNT); }
else if(iItem == ITEM_CHAMELEON) { cs_set_user_model(id, CHAMELEON_MODELS[(get_user_team(id) - 1)][random(4)]); }
else if(iItem == ITEM_DRUGS) { g_blDrugs[id] = true; set_user_health(id, get_user_health(id) + DRUGS_HEALTH); set_user_maxspeed(id, DRUGS_SPEED); set_user_drugs(id, DRUGS_FOV); }
else if(iItem == ITEM_TRANSPARENCY) { set_user_glow(id, .iAlpha = TRANSPARENCY_AMOUNT); }
else if(iItem == ITEM_INVIS) { set_user_glow(id, .iAlpha = INVIS_AMOUNT); }
else if(iItem == ITEM_DOUBLEDAMAGE) { g_blDoubleDamage[id] = true; }
else if(iItem == ITEM_GODMODE) { set_user_godmode(id, 1); }
else if(iItem == ITEM_HEALTHREGEN) { g_blHealthRegen[id] = true; set_task(HEALTHREGEN_FREQ, "healthRegen", id + HEALTHREGEN_TASK, .flags = "b"); }
else if(iItem == ITEM_ARMORREGEN) { g_blArmorRegen[id] = true; set_task(ARMORREGEN_FREQ, "armorRegen", id + ARMORREGEN_TASK, .flags = "b"); }
else if(iItem == ITEM_AWP) { give_item(id, "weapon_awp"); cs_set_user_bpammo(id, CSW_AWP, AWP_BPAMMO); }
return BUY_ITEM
}
public cshopItemRemoved(id, iItem)
{
if(!is_user_alive(id))
return
if(iItem == ITEM_SILENTSTEPS) { set_user_footsteps(id, 0); }
else if(iItem == ITEM_SPEED) { g_blSpeed[id] = false; eventChangeWeapon(id); }
else if(iItem == ITEM_GRAVITY) { set_user_gravity(id); }
else if(iItem == ITEM_CHAMELEON) { cs_reset_user_model(id); }
else if(iItem == ITEM_DRUGS) { g_blDrugs[id] = false; eventChangeWeapon(id); }
else if(iItem == ITEM_INVIS) { remove_user_glow(id); }
else if(iItem == ITEM_DOUBLEDAMAGE) { g_blDoubleDamage[id] = false; }
else if(iItem == ITEM_GODMODE) { set_user_godmode(id); }
else if(iItem == ITEM_HEALTHREGEN) { g_blHealthRegen[id] = false; }
else if(iItem == ITEM_ARMORREGEN) { g_blArmorRegen[id] = false; }
}
public eventChangeWeapon(id)
{
g_iWeapon[id] = get_user_weapon(id)
if(g_blDrugs[id])
set_user_maxspeed(id, DRUGS_SPEED)
else if(g_blSpeed[id])
set_user_maxspeed(id, SPEED_AMOUNT)
}
public eventTakeDamage(iVictim, iInflictor, iAttacker, Float:flDamage, iDamageBits)
if(is_user_alive(iAttacker) && iAttacker != iVictim)
if(g_blDoubleDamage[iAttacker])
SetHamParamFloat(4, flDamage * DOUBLEDAMAGE_AMOUNT)
public healthRegen(id)
{
id -= HEALTHREGEN_TASK
if(!is_user_alive(id) || !g_blHealthRegen[id])
{
remove_task(id + HEALTHREGEN_TASK)
return
}
new iHealth = get_user_health(id)
if(iHealth == HEALTHREGEN_MAX)
return
set_user_health(id, clamp(iHealth + HEALTHREGEN_PERSEC, .max = HEALTHREGEN_MAX))
}
public armorRegen(id)
{
id -= ARMORREGEN_TASK
if(!is_user_alive(id) || g_blArmorRegen[id])
{
remove_task(id + ARMORREGEN_TASK)
return
}
new iArmor = get_user_armor(id)
if(iArmor == ARMORREGEN_MAX)
return
set_user_armor(id, clamp(iArmor + ARMORREGEN_PERSEC, .max = ARMORREGEN_MAX))
}
set_user_glow(id, iRed = 0, iGreen = 0, iBlue = 0, iAlpha)
{
set_user_rendering(id, kRenderFxGlowShell, iRed, iGreen, iBlue, kRenderTransAlpha, iAlpha)
set_hat_visibility(id, float(iAlpha))
}
remove_user_glow(id)
{
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
set_hat_visibility(id, 255.0)
}
set_user_drugs(id, iAmount)
{
message_begin(MSG_ONE, g_msgSetFOV, {0, 0, 0}, id)
write_byte(iAmount)
message_end()
}