#include <amxmodx>
#include <amxmisc>
#include <csstats>
#include <csx>
#include <cstrike>
new const g_T[] = "Terrorist";
new const g_CT[] = "Counter-Terrorist";
new g_TWin = 0, g_CTWin = 0;
public ShowMoney = 1
public EndTeamScore = 1
public EndMostKills = 1
public EndMostDamage = 1
new ShowVictims
new KillerHpAp
new szSound4
new g_Killers[33][4]
new g_Buffer[2048]
new g_teamScore[2]
public plugin_init()
{
register_plugin("Server Stats", "LinkCS", "x")
register_cvar("Server Stats", "LinkCS", FCVAR_SERVER)
register_dictionary("LinkCS-AMXX.txt")
register_event("CS_DeathMsg","eCSDeathMsg","a")
register_event("ResetHUD", "eResetHud", "b")
register_event("SendAudio", "eRoundEnd", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw")
register_event("SendAudio", "twin", "a", "2=%!MRAD_terwin")
register_event("SendAudio", "ctwin", "a", "2=%!MRAD_ctwin")
register_event("TextMsg", "game_comencing", "a", "2&#Game_C")
register_event("TeamScore", "eTeamScore", "a")
ShowVictims = register_cvar("amx_showVictims", "1")
KillerHpAp = register_cvar("amx_showKillerHp", "1")
szSound4 = register_cvar("amx_score_sound", "1")
register_clcmd("say /score", "getScore", 0, "- vezi care echipa conduce si cu ce scor")
register_clcmd("say_team /score", "getScore", 0, "- vezi care echipa conduce si cu ce scor")
}
public eTeamScore()
{
new team[2]
read_data( 1, team, 1 )
g_teamScore[ (team[0]=='C') ? 1 : 0 ] = read_data(2)
}
public game_comencing()
{
g_TWin = 0;
g_CTWin = 0;
}
public twin() g_TWin++;
public ctwin() g_CTWin++;
public getScore(id)
{
if(get_pcvar_num(szSound4) != 0)
{
client_cmd(id, "spk ^"ambience/ratchant^"")
}
set_hudmessage(255, 0, 0, -1.0, 0.88, 2, 0.0, 12.0)
show_hudmessage(id, "Echipa %s conduce cu %i in fata echipei adverse", g_TWin > g_CTWin ? g_T : g_CT, g_TWin > g_CTWin ? g_TWin : g_CTWin)
return PLUGIN_CONTINUE
}
public eResetHud(id)
g_Killers[id][0] = 0
public eRoundEnd()
set_task(0.3, "eRoundEndTask")
public eRoundEndTask()
{
if(get_pcvar_num(ShowVictims) == 1)
{
new players[32], pnum
get_players(players, pnum, "a")
for(new i = 0; i < pnum; ++i)
{
if(ShowVictims && getVictims(players))
{
set_hudmessage(0, 80, 220, 0.66, 0.23, 0, 6.0, 12.0, 1.0, 2.0, 4)
show_hudmessage(players, g_Buffer)
}
}
}
if(EndMostKills || EndTeamScore || EndMostDamage)
{
new players[32], pnum, stats[8],bodyhits[8], len = 0
get_players( players , pnum )
g_Buffer[0] = 0
if(EndMostKills){
new kills = 0, who = 0, hs = 0
for(new i = 0; i < pnum; ++i){
get_user_rstats( players,stats, bodyhits)
if(stats[0] > kills){
who = players
kills = stats[0]
hs = stats[2]
}
}
if(is_user_connected(who)){
new name[32]
get_user_name(who, name, 31)
len += format(g_Buffer[len] , 512 - len ,
"Cele Mai Bun: %s^n%d crime - %d capuri^n", name, kills, hs)
}
}
if(EndMostDamage) {
new damage = 0, who = 0, hits = 0
for(new i = 0; i < pnum; ++i){
get_user_rstats(players,stats, bodyhits)
if(stats[6] > damage){
who = players
hits = stats[5]
damage = stats[6]
}
}
if(is_user_connected(who)){
new name[32]
get_user_name( who, name, 31 )
len += format(g_Buffer[len] , 512 - len ,
"------------------------------------^nCel Mai Distrugator: %s^n%d putere - %d lovituri^n", name , damage , hits)
}
}
if(ShowMoney ){
new who = 0, temp = 0, money = 0
new name[32]
//temp = cs_get_user_money(0)
//client_print(0,print_chat,"a's money: %d",temp)
for(new i = 0; i < pnum; ++i){
money = cs_get_user_money(players)
if(money > temp){
who = players
temp = cs_get_user_money(players)
}
}
if(is_user_connected(who)) {
//client_print(0,print_chat,"richmen is : %d",who)
get_user_name( who,name,31 )
//client_print(0,print_chat,"money 's name :%s",name)
len += format(g_Buffer[len] , 1024 - len , "------------------------------------^nCei mai multi bani: %s - %d$^n", name, cs_get_user_money(who))
}
}
if(EndTeamScore)
format(g_Buffer[len] , 512 - len , "------------------------------------^nSCOR: TERORISTI %d -- %d CT-RI^n", g_teamScore[0], g_teamScore[1])
set_hudmessage(0, 80, 220, 0.03, 0.22, 2, 0.01, 5.0, 0.01, 0.01, 3)
show_hudmessage(0 , g_Buffer)
}
}
getVictims(id)
{
new name[32],wpn[32], stats[8], body[8], found=0
new pos = copy(g_Buffer, 2047, "Victimele Tale:^n-----------------^n")
new amax = get_maxplayers()
for(new a = 1; a <= amax; ++a)
{
if(get_user_vstats(id, a, stats, body, wpn, 31))
{
found = 1
if (stats[1])
format(wpn, 31, " -- %s", wpn)
else
wpn[0] = 0
get_user_name(a, name, 31)
pos += format(g_Buffer[pos], 2047-pos, "%s - %d lovituri - dmg total: %d %s^n", name, stats[5], stats[6], wpn)
}
}
return found
}
public eCSDeathMsg()
{
new killer = read_data(1)
new victim = read_data(2)
if(killer == victim) return
new vorigin[3], korigin[3]
get_user_origin(victim, vorigin)
get_user_origin(killer, korigin)
g_Killers[victim][0] = killer
g_Killers[victim][1] = get_user_health(killer)
g_Killers[victim][2] = get_user_armor(killer)
if(get_pcvar_num(ShowVictims) == 1 && getVictims(victim))
{
set_hudmessage(0, 80, 220, 0.66, 0.23, 0, 6.0, 12.0, 1.0, 2.0, 4)
show_hudmessage(victim, g_Buffer)
}
if(get_pcvar_num(KillerHpAp) == 1)
{
new name[32], kmsg[128]
get_user_name(killer, name, 31)
format(kmsg, 127, "%s tot mai are %d viata si %d armura", name, g_Killers[victim][1], g_Killers[victim][2])
client_print(victim, print_console, kmsg)
set_hudmessage(255, 255, 0, -1.0, 0.90, 1, 1.5, 3.0, 0.02, 5.0, 1)
show_hudmessage(victim,kmsg)
}
}