Re: Winner map
I found something but i need 1 more change:
PHP Code:
#include < amxmodx > #include < amxmisc > #include < hamsandwich > #include < cstrike >
#define CharsMax(%1) sizeof %1 - 1
new g_iKills[32], g_iHS[32], g_iDmg[32]
public plugin_init() { RegisterHam(Ham_TakeDamage, "player", "hamTakeDamage") register_event("DeathMsg", "EventDeathMsg", "a") register_logevent("RoundEnd", 2, "1=Round_End") }
public hamTakeDamage(victim, inflictor, attacker, Float:damage, DamageBits) { if( 1 <= attacker <= 32) { if(cs_get_user_team(victim) != cs_get_user_team(attacker)) { g_iDmg[attacker] += floatround(damage) } else { g_iDmg[attacker] -= floatround(damage) } } }
public EventDeathMsg() { new killer = read_data(1) new victim = read_data(2) new is_hs = read_data(3) if(killer != victim && killer && cs_get_user_team(killer) != cs_get_user_team(victim)) { g_iKills[killer]++; if(is_hs) { g_iHS[killer]++; } } else { g_iKills[killer]--; } }
public RoundEnd(id) { new iBestPlayer = get_best_player() new szName[32] get_user_name(iBestPlayer, szName, charsmax(szName)) client_print(0, print_chat, "Best player of this map is %s", szName) client_print(0, print_chat, "Kills: %i (%i HS) cu %i damage", g_iKills[iBestPlayer], g_iHS[iBestPlayer], g_iDmg[iBestPlayer])
for(new i; i < 31; i++) { g_iDmg[i] = 0; g_iHS[i] = 0; g_iKills[i] = 0; } static sBuffer[1024]; static iLen; iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=#7b68ee><pre>"); iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen,"<center><h2><font color=^"red^"><B>Best player of this map is %s</B></font></h2></center>^n^n", szName); show_motd(id, sBuffer, "Best Player"); }
get_best_player() { new players[32], num; get_players(players, num); SortCustom1D(players, num, "sort_bestplayer") return players[0] }
public sort_bestplayer(id1, id2) { if(g_iKills[id1] > g_iKills[id2]) { return -1; } else if(g_iKills[id1] < g_iKills[id2]) { return 1; } else { if(g_iDmg[id1] > g_iDmg[id2]) { return -1; } else if(g_iDmg[id1] < g_iDmg[id2]) { return 1; } else { return 0; } } return 0; }
public client_disconnect(id) { g_iDmg[id] = 0; g_iKills[id] = 0; g_iHS[id] = 0; }
How can i make this to show the message in last 1 min of current map, current script show at the end for every round but i need only at the end of map before map change(last 1 min).
|