PHP Code:
#include <amxmodx>
#include <cstrike>
new const PLUGIN[ ] = "Hud Money"
new const VERSION[ ] = "2.0"
new const AUTHOR[ ] = "alliedmodders"
enum _:PD
{
INFO_ID,
INFO_MN,
}
new PMoney[33][PD]
new HudNames, HudLoop, HudTitle, HudAutoStart
new bool:g_Fix[ 33 ] = false
public plugin_init( )
{
register_plugin ( PLUGIN, VERSION, AUTHOR )
register_clcmd ( "say /kont ", "test" )
HudNames = register_cvar ( "money_hud_names", "5" ) // How many names?
HudLoop = register_cvar ( "money_hud_loop", "0" ) // Show hud info all the time?
HudAutoStart = register_cvar ( "money_hud_auto", "1" ) // Show automatically on player connect?
HudTitle = register_cvar ( "money_hud_title", "Money top" ) // Title
}
public client_authorized( id )
{
new cvarAuto
cvarAuto = get_pcvar_num( HudAutoStart )
if( cvarAuto == 1 )
set_task( 4.0, "test", id, _, _, "b" )
g_Fix[ id ] = false
}
public client_disconnect( id )
{
if( task_exists( id ) )
remove_task( id )
g_Fix[ id ] = false
}
public test( id )
{
new Players[ 32 ], Num
get_players( Players, Num )
for( new i, pid; i < Num; i++ )
{
pid = Players[ i ]
PMoney[ pid ][ INFO_ID ] = pid
PMoney[ pid ][ INFO_MN ] = cs_get_user_money( pid )
}
Show(id)
return PLUGIN_HANDLED
}
public Show( id )
{
new Players[32], buff[512], Frm[128], szName[32], szTitle[ 32 ], szServ[ 32 ],
Num, cvarNames, cvarLoop, cvarAuto
SortCustom2D( PMoney, charsmax(PMoney), "custom_compare" )
cvarAuto = get_pcvar_num( HudAutoStart )
cvarNames = get_pcvar_num( HudNames ) + 1
cvarLoop = get_pcvar_num( HudLoop )
get_pcvar_string( HudTitle, szTitle, 31 )
get_user_name( 0, szServ, 31 )
get_players( Players, Num )
for( new i, pid, pm; i < cvarNames; i++ )
{
pid = Players[ i ]
pm = PMoney[ pid ][ INFO_MN ]
get_user_name( PMoney[ pid ][ INFO_ID ], szName, charsmax( szName ) )
if( i < 1 )
{
formatex( Frm, charsmax( Frm ), "%s^n%i. %s < $%i >", szTitle, i + 1 ,szName, pm )
add( buff, charsmax( buff ), Frm )
//i++
if( cvarLoop == 1 && cvarAuto == 0 )
set_task( 3.0, "test", id )
if( cvarLoop == 0 && cvarAuto == 0 && task_exists( id ) )
remove_task( id )
} else {
if( i < Num )
{
formatex( Frm, charsmax( Frm ), "^n%i. %s < $%i >",i + 1 ,szName,pm )
add( buff, charsmax( buff ), Frm )
}
}
}
set_hudmessage(0, 255, 0, 0.03, 0.17, 0, 5.0, 12.0)
show_hudmessage( id, buff )
if( containi( szName, szServ ) && !g_Fix[ id ] )
{
set_task( 1.0, "test", id )
g_Fix[ id ] = true
}
return PLUGIN_HANDLED
}
public custom_compare( elem1[ ], elem2[ ] )
{
if( elem1[ 1 ] > elem2[ 1 ] )
{
return -1
} else if( elem1[ 1 ] < elem2[ 1 ] ) {
return 1
}
return 0
}