Opis problemu: chciałem połączyć 2 plugin a dokładnie 3drank i zwykły plugin z rangami tak aby od ilości zabić jak jest w pluginie rangi pojawiała sie nad glowa ikona od ilosc zabic lecz rangi sie wczytuja ikona sie nie zmiania na inna proszę o pomoc z waszej strony. Jestem amatorem wiec proszę o niekrytykowanie
KOD SMA:
#include < amxmodx >
#include < fakemeta >
#include < hamsandwich >
#include < amxmisc >
#include < csx >
#define PLUGIN "3D Rank"
#define VERSION "0.4"
#define AUTHOR "Payampap"
#define TASK 666
#define FLAG ADMIN_KICK
new const gsz_RankModel [ ] = "models/3dranks.mdl"
new gp_AdminRank
new gp_BotRank
new gi_PlayerRank [ 33 ]
public plugin_init ( )
{
register_plugin ( PLUGIN, VERSION, AUTHOR )
RegisterHam ( Ham_Killed, "player", "player_killed", 1 )
RegisterHam ( Ham_Spawn, "player", "player_spawned", 1 )
gp_AdminRank = register_cvar ( "3drank_admin", "1" )
gp_BotRank = register_cvar ( "3drank_bot", "0" )
}
public plugin_precache ( )
{
precache_model ( gsz_RankModel )
}
public client_putinserver ( index )
{
create_rank_entity ( index )
}
public client_disconnect ( index )
{
if ( gi_PlayerRank [ index ] > 0 )
engfunc ( EngFunc_RemoveEntity, gi_PlayerRank [ index ] )
gi_PlayerRank [ index ] = 0
if(task_exists(TASK+index))
remove_task(TASK+index)
}
//rabga
public client_connect(index)
{
if(is_user_bot(index))
return
new param[1]
param[0] = index
set_task(1.0,"rank",TASK+index,param,1,"b")
}
public rank(param[])
{
new index = param[0]
static stats[8], body[8]
get_user_stats(index, stats, body)
new ranga[30]
if ( stats[0] >= 0 && stats[0] <= 29)
format(ranga,29,"Lamus")
else if ( stats[0] >= 30 && stats[0] <= 59)
format(ranga,29,"Poczatkujacy")
else if ( stats[0] >= 60 && stats[0] <= 119)
format(ranga,29,"Wiesniak")
else if ( stats[0] >= 120 && stats[0] <= 209)
format(ranga,29,"Sierota")
else if ( stats[0] >= 210 && stats[0] <= 324)
format(ranga,29,"Kox")
else if ( stats[0] >= 325 && stats[0] <= 499)
format(ranga,29,"Cherlak")
else if ( stats[0] >= 500 && stats[0] <= 729)
format(ranga,29,"Kozak")
else if ( stats[0] >= 730 && stats[0] <= 999)
format(ranga,29,"Snajper")
else if ( stats[0] >= 100 && stats[0] <= 1399)
format(ranga,29,"Macho")
set_hudmessage(255, 255, 255, 0.15, 0.55)
show_hudmessage(index, "Ranga: %s^nZabojstw: %d",ranga,stats[0])
}
//
public create_rank_entity ( index )
{
gi_PlayerRank [ index ] = engfunc ( EngFunc_CreateNamedEntity, engfunc ( EngFunc_AllocString, "info_target" ) )
set_pev ( gi_PlayerRank [ index ], pev_movetype, MOVETYPE_FOLLOW )
set_pev ( gi_PlayerRank [ index ], pev_aiment, index )
set_pev ( gi_PlayerRank [ index ], pev_rendermode, kRenderNormal )
set_pev ( gi_PlayerRank [ index ], pev_renderfx, kRenderFxGlowShell )
set_pev ( gi_PlayerRank [ index ], pev_renderamt, 5.0 )
engfunc ( EngFunc_SetModel, gi_PlayerRank [ index ], gsz_RankModel )
}
public player_killed ( victim, attacker, gid )
{
if ( is_valid_player ( attacker ) )
{
check_rank ( attacker )
}
}
public player_spawned ( spawned )
{
if ( is_valid_player ( spawned ) )
{
check_rank ( spawned )
}
}
public check_rank ( index )
{
new PlayerRank = get_player_rank ( index )
set_pev ( gi_PlayerRank [ index ], pev_body, PlayerRank )
switch ( PlayerRank )
{
case 1, 2, 3:
{
set_pev ( gi_PlayerRank [ index ], pev_rendercolor, { 255.0, 255.0, 255.0 } )
}
case 12:
{
set_pev ( gi_PlayerRank [ index ], pev_rendercolor, { 255.0, 0.0, 0.0 } )
}
default:
{
set_pev ( gi_PlayerRank [ index ], pev_rendercolor, { 255.0, 255.0, 0.0 } )
}
}
}
stock get_player_rank ( index )
{
if ( get_pcvar_num ( gp_AdminRank ) && get_user_flags ( index ) & FLAG )
{
return 11
}
if ( get_pcvar_num ( gp_BotRank ) && is_user_bot ( index ) )
{
return 12
}
new PlayerFrags = get_user_frags ( index )
switch ( PlayerFrags )
{
case 0..29:
{
return 1
}
case 30..59:
{
return 2
}
case 60..119:
{
return 3
}
case 120..209:
{
return 4
}
case 210..324:
{
return 5
}
case 325..499:
{
return 6
}
case 500..729:
{
return 7
}
case 730..999:
{
return 8
}
case 1000..1399:
{
return 9
}
default:
{
return 10
}
}
return 0
}
stock is_valid_player ( index )
{
if ( is_user_connected ( index ) && 1 <= index <= 32 )
{
return true
}
return false
}


Dodatki SourceMod




3dRank.amxx









