here is the cash sprite plugin Althought i wouldn't recommend using it since it consume too much entities. 32 * 6 = 192 entity if there was 32 players...
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <engine>
#include <cstrike>
#include <hamsandwich>
#define TASK_HUD_REMOVE 4853453
new userSpr[33][6], g_buytime, bool:bTimeIsOver, bool:gAlive[33], g_fwd;
public plugin_precache()
{
precache_model("sprites/10000.spr");
precache_model("sprites/1000.spr");
precache_model("sprites/100.spr");
precache_model("sprites/10.spr");
precache_model("sprites/1.spr");
precache_model("sprites/cash.spr");
}
public plugin_init()
{
register_event("DeathMsg", "event_deathmsg", "a");
register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
register_think("LOL", "fw_think");
RegisterHam(Ham_Spawn, "player", "player_got_spawned", 1);
g_buytime = get_cvar_pointer("mp_buytime");
}
public plugin_cfg() event_new_round()
public client_disconnect(id)
{
gAlive[id] = false;
for(new i; i < sizeof userSpr[]; i++)
{
if(userSpr[id][i] > 0) remove_entity(userSpr[id][i]);
userSpr[id][i] = 0;
}
}
public event_deathmsg()
{
gAlive[read_data(2)] = false;
client_disconnect(read_data(2));
}
public player_got_spawned(id)
{
if(!is_user_alive(id)) return;
gAlive[id] = true;
if(bTimeIsOver) return;
client_disconnect(id)
set_user_HUDMONEY_onhead(id);
}
public event_new_round()
{
if(!g_fwd) g_fwd = register_forward(FM_AddToFullPack, "fw_AddToFullPack_Pre", false);
bTimeIsOver = false;
remove_task(TASK_HUD_REMOVE)
set_task(floatclamp(get_pcvar_float(g_buytime), 1.0, 60.0 * 20.0), "task_remove_HUD", TASK_HUD_REMOVE);
}
public task_remove_HUD()
{
new players[32],pnum;
get_players(players, pnum, "ah");
for(new i; i < pnum; i++)
{
client_disconnect(players[i]);
}
bTimeIsOver = true;
if(g_fwd > 0) unregister_forward(FM_AddToFullPack, g_fwd, false);
g_fwd = 0;
}
set_user_HUDMONEY_onhead(id)
{
new ent = create_entity("env_sprite");
new Float:gTime = get_gametime();
if(ent > 0)
{
userSpr[id][0] = ent;
set_pev(ent, pev_classname, "LOL");
set_pev(ent, pev_nextthink, gTime + 0.1);
set_pev(ent, pev_movetype, MOVETYPE_NOCLIP);
engfunc(EngFunc_SetModel, ent, "sprites/1.spr");
set_pev(ent, pev_iuser4, id);
set_pev(ent, pev_iuser3, 4);
set_pev(ent, pev_frame, 0.0)
set_pev(ent, pev_framerate, 1.0)
set_pev(ent, pev_scale, 0.2)
set_rendering(ent, kRenderFxNone, 0, 255, 0, kRenderTransAdd, 200)
}
new ent2 = create_entity("env_sprite");
if(ent2 > 0)
{
userSpr[id][1] = ent2;
set_pev(ent2, pev_classname, "LOL");
set_pev(ent2, pev_nextthink, gTime + 0.1);
set_pev(ent2, pev_movetype, MOVETYPE_NOCLIP);
engfunc(EngFunc_SetModel, ent2, "sprites/10.spr");
set_pev(ent2, pev_iuser4, id);
set_pev(ent2, pev_iuser3, 3);
set_pev(ent2, pev_frame, 0.0)
set_pev(ent2, pev_framerate, 1.0)
set_pev(ent2, pev_scale, 0.2)
set_rendering(ent2, kRenderFxNone, 0, 255, 0, kRenderTransAdd, 200)
}
new ent3 = create_entity("env_sprite");
if(ent3 > 0)
{
userSpr[id][2] = ent3;
set_pev(ent3, pev_classname, "LOL");
set_pev(ent3, pev_nextthink, gTime + 0.1);
set_pev(ent3, pev_movetype, MOVETYPE_NOCLIP);
engfunc(EngFunc_SetModel, ent3, "sprites/100.spr");
set_pev(ent3, pev_iuser4, id);
set_pev(ent3, pev_iuser3, 2);
set_pev(ent3, pev_frame, 0.0)
set_pev(ent3, pev_framerate, 1.0)
set_pev(ent3, pev_scale, 0.2)
set_rendering(ent3, kRenderFxNone, 0, 255, 0, kRenderTransAdd, 200)
}
new ent4 = create_entity("env_sprite");
if(ent4 > 0)
{
userSpr[id][3] = ent4;
set_pev(ent4, pev_classname, "LOL");
set_pev(ent4, pev_nextthink, gTime + 0.1);
set_pev(ent4, pev_movetype, MOVETYPE_NOCLIP);
engfunc(EngFunc_SetModel, ent4, "sprites/1000.spr");
set_pev(ent4, pev_iuser4, id);
set_pev(ent4, pev_iuser3, 1);
set_pev(ent4, pev_frame, 0.0)
set_pev(ent4, pev_framerate, 1.0)
set_pev(ent4, pev_scale, 0.2)
set_rendering(ent4, kRenderFxNone, 0, 255, 0, kRenderTransAdd, 200)
}
new ent5 = create_entity("env_sprite");
if(ent5 > 0)
{
userSpr[id][4] = ent5;
set_pev(ent5, pev_classname, "LOL");
set_pev(ent5, pev_nextthink, gTime + 0.1);
set_pev(ent5, pev_movetype, MOVETYPE_NOCLIP);
engfunc(EngFunc_SetModel, ent5, "sprites/10000.spr");
set_pev(ent5, pev_iuser4, id);
set_pev(ent5, pev_iuser3, 0);
set_pev(ent5, pev_frame, 0.0)
set_pev(ent5, pev_framerate, 1.0)
set_pev(ent5, pev_scale, 0.2)
set_rendering(ent5, kRenderFxNone, 0, 255, 0, kRenderTransAdd, 200)
}
new ent6 = create_entity("env_sprite");
if(ent > 0)
{
userSpr[id][5] = ent6;
set_pev(ent6, pev_classname, "LOL");
engfunc(EngFunc_SetModel, ent6, "sprites/cash.spr");
set_pev(ent6, pev_nextthink, gTime + 0.1);
set_pev(ent6, pev_movetype, MOVETYPE_NOCLIP);
set_pev(ent6, pev_iuser4, id);
set_pev(ent6, pev_iuser3, 5);
set_pev(ent6, pev_frame, 1.0)
set_pev(ent6, pev_framerate, 1.0)
set_pev(ent6, pev_scale, 0.22)
set_rendering(ent6, kRenderFxNone, 0, 255, 0, kRenderTransAdd, 200)
}
}
public fw_think(ent)
{
static Float:fOrigin[3], x, iUser;
pev((iUser=pev(ent, pev_iuser4)), pev_origin, fOrigin)
fOrigin[2] += 50.0;
set_pev(ent, pev_origin, fOrigin);
x = pev(ent, pev_iuser3);
if(x == 5)
{
set_pev(ent, pev_nextthink, get_gametime() + 0.1);
return;
}
static szMoney[6], szValue[2];
arrayset(szMoney, 0, sizeof szMoney);
num_to_str(cs_get_user_money(iUser), szMoney, charsmax(szMoney));
for(new i = 1, v, maxloop = strlen(szMoney); i <= maxloop; i++)
{
v = szMoney[ maxloop - i ];
szMoney[ maxloop - i ] = 0;
szMoney[ 5 - i ] = v;
}
if(szMoney[x] == 0)
{
set_rendering(ent, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0)
set_pev(ent, pev_nextthink, get_gametime() + 0.1);
return;
}
szValue[0] = szMoney[x];
szValue[1] = 0;
set_rendering(ent, kRenderFxNone, 0, 255, 0, kRenderTransAdd, 200)
set_pev(ent, pev_frame, floatstr(szValue))
set_pev(ent, pev_nextthink, get_gametime() + 0.1);
}
const MaxSpr = sizeof userSpr[];
public fw_AddToFullPack_Pre(es_handle, e, ent, host, hostflags, player, pset)
{
if(player == 1 || !pev_valid(e)) return FMRES_IGNORED;
static i, x; x = pev(e, pev_iuser4);
for(i = 0; i < MaxSpr; i++) {
if(userSpr[host][i] == e)
{
forward_return(FMV_CELL, 0)
return FMRES_SUPERCEDE;
}
if( (1 <= x <= 32) && userSpr[x][i] == e )
{
if(!gAlive[host] || get_user_team(host) != get_user_team(x))
{
forward_return(FMV_CELL, 0)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED;
}
}
}