Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Ograniczenie listy do 5


  • Zamknięty Temat jest zamknięty
Brak odpowiedzi do tego tematu

#1 BW:*|4fun

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:38
Offline

Napisano 16.01.2010 16:00

Witam, mam oto taki plugin, ale chce zrobić żeby tylko 5 osob z najwiekszym DMG pokazywało, a nie wszystkich z ct.

/* Damage Ranking v1.0 by d!nk */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define MAXPLAYERS 32

public plugin_init() {
	register_plugin("Damage Ranking", "1.0", "d!nk")
	set_task(2.0,"the_main", 0, _, _, "b")
	register_event("Damage", "damage_event", "b", "2!0", "3=0", "4!0")
	register_event("DeathMsg","death_event","a" ) 
	register_cvar("amx_info", "1")
}

new damage_done[MAXPLAYERS + 1] = 0
new damage_received[MAXPLAYERS + 1] = 0 /* reserved for future use */
new damage_ranking_values[MAXPLAYERS + 1] = 0
new damage_ranking_ids[MAXPLAYERS + 1] = 0
new headshots[MAXPLAYERS + 1] = 0

public client_putinserver(id) {
	damage_done[id] = 0
	damage_received[id] = 0
	headshots[id] = 0
}

public client_disconnect(id) {
	damage_done[id] = 0
	damage_received[id] = 0
	headshots[id] = 0
}

public damage_event(id)
{
	new team[33]
	new attacker_id = get_user_attacker(id)
	new attacker_team[33]
	new damage = read_data(2)
	
	get_user_team(attacker_id, attacker_team, 1)
	get_user_team(id, team, 1)
	
	if (equal(team, attacker_team)) {
		damage_done[attacker_id] -= damage /* punish for friendly fire */
	} 
	else {
		damage_done[attacker_id] += damage
	}	

	damage_received[id] += damage
}

public death_event(id)
{
	new killer_id = read_data(1)
	if ( ( read_data(3) == 1 ) && ( read_data(5) == 0 ) ) headshots[killer_id]++ /* increase headshot counter */
}

sort_get_largest(ia_values[], i_from, i_to) {

	new i
	new li = i_from
	new lv = ia_values[li]
	
	for(i = i_from; i <= i_to; i++) {
		if (ia_values[i] > lv) {
			li = i
			lv = ia_values[li]
		}
	}
	
	return li
}

sort_swap(ia_values[], i_id1, i_id2) {

	new v = ia_values[i_id1]
	ia_values[i_id1] = ia_values[i_id2]
	ia_values[i_id2] = v
}

sort_array(ia_values[], ia_ids[], i_count) {
	
	new i
	
	for(i = 0; i < i_count; i++) {
	
		new largest_id = sort_get_largest(ia_values, i, i_count - 1)
		sort_swap(ia_values, i, largest_id)
		sort_swap(ia_ids, i, largest_id)
	}
}

public the_main() {
	
	if(!get_cvar_num("amx_info")) {
		return PLUGIN_HANDLED
	}
	
	new players[MAXPLAYERS]
	new players_count
	new i
	new message[2048]
	new username[33]
	new team[33]
	new id
	new team_players_count = 0
	new indent[3]
		
	copy(message, 32, "Top 5 Graczy Mapy")

	get_players(players, players_count)

	/* copy damage table to damage ranking table, skip SPECTATORs */
	for(i = 0; i <= players_count; i++) {

		id = players[i]


		if(is_user_connected(id)) {
			get_user_team(id, team, 1)
			if(equal(team, "C") || equal(team, "c")) {
				damage_ranking_ids[team_players_count] = id
				damage_ranking_values[team_players_count++] = damage_done[id] 
			}
		}
	}
	
	sort_array(damage_ranking_values, damage_ranking_ids, team_players_count)

	/* format damage ranking */
	for(i = 0; i < team_players_count; i++) {

		id = damage_ranking_ids[i]

		if(is_user_connected(id)) {
			get_user_name(id, username, 32)
			get_user_team(id, team, 1)
			strcat(message, "^n%s%i. %s [Zadal %i DMG]", 2048)
			if (i < 9) { copy(indent, 1, " "); } else { copy(indent, 0, " "); }
			format(message, 2048, message, indent, i + 1, username, damage_done[id], headshots[id])
		}
	}
	
	for(i = 0; i <= players_count; i++)
	{
		id = players[i]
		
		if(is_user_connected(id)) {
			set_hudmessage (255, 170, 42, 0.01, 0.2, 0, 6.0, 2.0, 0.1, 0.5, 4 )
			show_hudmessage(id, message) 
		}
	}
	return PLUGIN_CONTINUE
}

Z góry dziękuję za pomoc i pozdrawiam.
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych