Skip to content

Instantly share code, notes, and snippets.

@kristiker
Created July 22, 2018 08:37
Show Gist options
  • Save kristiker/302f908386a5de0120bcdca9bb9106a0 to your computer and use it in GitHub Desktop.
Save kristiker/302f908386a5de0120bcdca9bb9106a0 to your computer and use it in GitHub Desktop.
#include <amxmodx>
#include <reapi>
#include <fun>
/*
digital00011.spr x1 (numbers)
digital11100.spr x1 (numbers)
weap1.spr x5 (primwpn, secwpn, nade1, nade2, nade3)
weap2.spr x2 ( (armor | headarmor), ( bomb | defkit) )
arrow.spr (just the arrow)
*/
enum Sprites
{
Sprite_ExtraUtils,
Sprite_Guns,
Sprite_Money1,
Sprite_Money2,
Sprite_Arrow
}
enum SpritesUsage
{
ExtraUtils_ArmorType,
ExtraUtils_C4OrDefuseKit,
Guns_PrimaryWeapon,
Guns_SecondaryWeapon,
Guns_HeGrenade,
Guns_Flashbang,
Guns_SmokeGrenade,
Money_Money1,
Money_Money2,
Arrow_Arrow
}
new playerSprite[MAX_PLAYERS+1][SpritesUsage];
new bShowing[MAX_PLAYERS+1];
new const Float:fSprPositions[Sprites]
{
50.0,
50.0,
34.0,
34.0,
34.0
}
new const szSprites[Sprites][]
{
"weap2.spr",
"weap1.spr",
"digital11100.spr",
"digital00011.spr",
"arrow.spr"
}
public plugin_precache()
{
for(new i; i <= sizeof Sprites; i++)
{
precache_model(szSprites[i]);
}
}
new freezetime_pcvar, iFreezeTime
public plugin_init()
{
RegisterHookChain(RG_CBasePlayer_AddPlayerItem, "OnAddPlayerItem", 1);
RegisterHookChain(RG_CSGameRules_RestartRound, "OnRoundStart", 1);
freezetime_pcvar = get_cvar_pointer("mp_freezetime");
}
public OnRoundStart()
{
iFreezeTime = get_pcvar_num(freezetime_pcvar);
if(iFreezeTime > 0)
{
remove_task(TASK_ShowEquipment);
set_task(0.1, "displayEquipmentInfo", TASK_spawnEquipmentInfo);
}
else if(iFreezeTime = 0)
{
}
}
public OnAddPlayerItem(id, pItem)
{
}
public displayEquipmentInfo(Sprites:sprite, id, playerOrigin)
{
new ent = playerSprite[id][sprite];
switch (sprite)
{
case Arrow_Arrow:
{
set_entvar(ent, var_model, szSprites[Sprite_Arrow]);
set_entvar(ent, var_framerate, 1.0);
set_entvar(ent, var_frame, 1.0);
set_entvar(ent, var_origin, {playerOrigin[0], playerOrigin[1], fSprPositions[Sprite_Arrow] + playerOrigin[2]});
{
set_entvar(ent, var_rendermode, kRenderGlow);
set_entvar(ent, var_rendercolor, {0, 0, 255});
set_entvar(ent, var_renderamt, 255);
set_entvar(ent, var_scale, 0.25);
set_entvar(ent, var_renderfx, kRenderFxNoDissipation);
//set_entvar(ent, var_ )
}
}
case Money_Money1:
{
set_entvar(ent, var_model, szSprites[Sprite_Money1]);
set_entvar(ent, var_framerate, 1.0);
set_entvar(ent, var_frame, 1.0);
set_entvar(ent, var_scale, 0.2);
set_entvar(ent, var_origin, {playerOrigin[0], playerOrigin[1], fSprPositions[Sprite_Money1] + playerOrigin[2]});
{
set_entvar(ent, var_rendermode, kRenderGlow);
set_entvar(ent, var_rendercolor, {0, 255, 0});
set_entvar(ent, var_renderamt, 255);
set_entvar(ent, var_renderfx, kRenderFxNoDissipation);
//set_entvar(ent, var_ )
}
case Money_Money2:
{
set_entvar(ent, var_model, szSprites[Sprite_Money2]);
set_entvar(ent, var_framerate, 1.0);
set_entvar(ent, var_frame, 1.0);
set_entvar(ent, var_scale, 0.2);
set_entvar(ent, var_origin, {playerOrigin[0], playerOrigin[1], fSprPositions[Sprite_Money2] + playerOrigin[2]});
{
set_entvar(ent, var_rendermode, kRenderGlow);
set_entvar(ent, var_rendercolor, {0, 255, 0});
set_entvar(ent, var_renderamt, 255);
set_entvar(ent, var_renderfx, kRenderFxNoDissipation);
//set_entvar(ent, var_ )
}
}
case Guns_SmokeGrenade:
{
set_entvar(ent, var_model, szSprites[Sprite_Guns]);
set_entvar(ent, var_framerate, 1.0);
set_entvar(ent, var_frame, 1.0);
set_entvar(ent, var_scale, 0.3);
set_entvar(ent, var_origin, {playerOrigin[0], playerOrigin[1], fSprPositions[Sprite_Guns] + playerOrigin[2]});
{
set_entvar(ent, var_rendermode, kRenderGlow);
set_entvar(ent, var_rendercolor, {255, 255, 255});
set_entvar(ent, var_renderamt, 255);
set_entvar(ent, var_renderfx, kRenderFxNoDissipation);
//set_entvar(ent, var_ )
}
}
case Guns_Flashbang:
{
set_entvar(ent, var_model, szSprites[Sprite_Guns]);
set_entvar(ent, var_framerate, 1.0);
set_entvar(ent, var_frame, 1.0);
set_entvar(ent, var_scale, 0.3);
set_entvar(ent, var_origin, {playerOrigin[0], playerOrigin[1], fSprPositions[Sprite_Guns] + playerOrigin[2]});
{
set_entvar(ent, var_rendermode, kRenderGlow);
set_entvar(ent, var_rendercolor, {255, 255, 255});
set_entvar(ent, var_renderamt, 255);
set_entvar(ent, var_renderfx, kRenderFxNoDissipation);
//set_entvar(ent, var_ )
}
}
case Guns_HeGrenade:
{
set_entvar(ent, var_model, szSprites[Sprite_Guns]);
set_entvar(ent, var_framerate, 1.0);
set_entvar(ent, var_frame, 1.0);
set_entvar(ent, var_scale, 0.3);
set_entvar(ent, var_origin, {playerOrigin[0], playerOrigin[1], fSprPositions[Sprite_Guns] + playerOrigin[2]});
{
set_entvar(ent, var_rendermode, kRenderGlow);
set_entvar(ent, var_rendercolor, {255, 255, 255});
set_entvar(ent, var_renderamt, 255);
set_entvar(ent, var_renderfx, kRenderFxNoDissipation);
//set_entvar(ent, var_ )
}
}
case Guns_SecondaryWeapon:
{
set_entvar(ent, var_model, szSprites[Sprite_Guns]);
set_entvar(ent, var_framerate, 1.0);
set_entvar(ent, var_frame, 1.0);
set_entvar(ent, var_scale, 0.3);
set_entvar(ent, var_origin, {playerOrigin[0], playerOrigin[1], fSprPositions[Sprite_Guns] + playerOrigin[2]});
{
set_entvar(ent, var_rendermode, kRenderGlow);
set_entvar(ent, var_rendercolor, {255, 255, 255});
set_entvar(ent, var_renderamt, 255);
set_entvar(ent, var_renderfx, kRenderFxNoDissipation);
//set_entvar(ent, var_ )
}
}
case Guns_PrimaryWeapon:
{
set_entvar(ent, var_model, szSprites[Sprite_Guns]);
set_entvar(ent, var_framerate, 1.0);
set_entvar(ent, var_frame, 1.0);
set_entvar(ent, var_scale, 0.3);
set_entvar(ent, var_origin, {playerOrigin[0], playerOrigin[1], fSprPositions[Sprite_Guns] + playerOrigin[2]});
{
set_entvar(ent, var_rendermode, kRenderGlow);
set_entvar(ent, var_rendercolor, {255, 255, 255});
set_entvar(ent, var_renderamt, 255);
set_entvar(ent, var_renderfx, kRenderFxNoDissipation);
//set_entvar(ent, var_ )
}
}
case ExtraUtils_C4OrDefuseKit:
{
set_entvar(ent, var_model, szSprites[Sprite_ExtraUtils]);
set_entvar(ent, var_framerate, 1.0);
set_entvar(ent, var_frame, 1.0);
set_entvar(ent, var_scale, 0.3);
set_entvar(ent, var_origin, {playerOrigin[0], playerOrigin[1], fSprPositions[Sprite_ExtraUtils] + playerOrigin[2]});
{
set_entvar(ent, var_rendermode, kRenderGlow);
set_entvar(ent, var_rendercolor, {220, 255, 255});
set_entvar(ent, var_renderamt, 255);
set_entvar(ent, var_renderfx, kRenderFxNoDissipation);
//set_entvar(ent, var_ )
}
}
case ExtraUtils_ArmorType:
{
set_entvar(ent, var_model, szSprites[Sprite_ExtraUtils]);
set_entvar(ent, var_framerate, 1.0);
set_entvar(ent, var_frame, 1.0);
set_entvar(ent, var_scale, 0.3);
set_entvar(ent, var_origin, {playerOrigin[0], playerOrigin[1], fSprPositions[Sprite_ExtraUtils] + playerOrigin[2]});
{
set_entvar(ent, var_rendermode, kRenderGlow);
set_entvar(ent, var_rendercolor, {220, 255, 255});
set_entvar(ent, var_renderamt, 255);
set_entvar(ent, var_renderfx, kRenderFxNoDissipation);
//set_entvar(ent, var_ )
}
}
}
}
updateSpriteMoney(id)
{
new sprite_00011_ent = playerSprite[id][Sprite_Money1];
new sprite_11100_ent = playerSprite[id][Sprite_Money2];
new playerMoney = cs_get_user_money(id);
if(playerMoney > 25599) playerMoney = 6969;
if(playerMoney >= 0)
{
if(playerMoney < 100)
{
new Float:frame1 = float(playerMoney);
set_entvar(sprite_00011_ent, var_frame, frame1);
set_entvar(sprite_11100_ent, var_frame, 0.0);
}
else if(playerMoney >= 100)
{
new tenth = ((playerMoney % 10) + (playerMoney % 100) * 10);
set_entvar(sprite_00011_ent, var_frame, float(tenth));
set_entvar(sprite_11100_ent, var_frame, float((playerMoney - tenth) / 100));
}
}
updateSpriteWeaponAndUtility()
{
// players don't normally have a defuse kit and a C4 at the same time.
new const spriteEnt_utils_armortype = playerSprite[id][ExtraUtils_ArmorType];
new const spriteEnt_utils_c4ordef = playerSprite[id][ExtraUtils_C4OrDefuseKit];
new const spriteEnt_weaps_primwpn = playerSprite[id][Guns_PrimaryWeapon];
new const spriteEnt_weaps_secwpn = playerSprite[id][Guns_SecondaryWeapon];
new const spriteEnt_weaps_hegren = playerSprite[id][Guns_HeGrenade];
new const spriteEnt_weaps_fbang = playerSprite[id][Guns_Flashbang];
new const spriteEnt_weaps_smkgren = playerSprite[id][Guns_SmokeGrenade];
}
public spawnEquipmentInfoEntities()
{
server_print("EQUIPMENT INFO: Creating %d entities ( %dpl x %dents )", MaxClients * charsmax(SpritesUsage), MaxClients, charsmax(SpritesUsage));
new const _spriteEntity[] = "env_sprite";
for(new id = 1; id <= MaxClients; id++)
{
for(new i; i < sizeof SpritesUsage; ++i)
{
new ent = playerSprite[id][i] = rg_create_entity(_spriteEntity);
if(ent = 0)
{
playerSprite[id][i] = 0;
continue;
}
else
{
set_entvar(ent, var_classname, "equipment_sprite");
set_entvar(ent, var_solid, SOLID_NOT);
set_entvar(ent, var_movetype, MOVETYPE_NOCLIP);
set_entvar(ent, var_renderamt, 0);
set_entvar(ent, var_)
set_entvar(ent, var_)
set_entvar(ent, var_)
set_entvar(ent, var_)
set_entvar(ent, var_modelindex, 0);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment