Kill Leader

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
someoneh
Извън линия
Потребител
Потребител
Мнения: 11
Регистриран на: 13 Авг 2017, 02:26
Се отблагодари: 2 пъти
Получена благодарност: 1 път

Kill Leader

Мнение от someoneh » 15 Сеп 2019, 14:43

Искам hud на който да пише
[Prefix]
Kill Leader : $Nick$
Kills : $kills$

Ако са двама или повече, да изписва X.
Ако е възможно да се направи така да се сменя картата когато играча е със 150 kill-a или ако са повече както казах, първия който направи разлика 1 kill, да се смени картата

Позицията да бъде централна, цвят какъвто Ви падне, аз след това ще си го оправя.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Kill Leader

Мнение от OciXCrom » 17 Сеп 2019, 14:36

Код за потвърждение: Избери целия код

#include <amxmodx>

#if !defined client_disconnected
	#define client_disconnect client_disconnected
#endif

#define HUD_COLOR      0, 255, 0
#define HUD_POSITION  -1.0, -1.0
#define HUD_NO_LEADER "X"
#define HUD_TEXT      "[Prefix]^nKill Leader: %s^nKills: %i"
#define HUD_REFRESH   1.0

new g_szLeader[32], g_iKills[33], g_iLeader

public plugin_init()
{
	register_plugin("Leader HUD", "1.0", "OciXCrom")
	register_event("DeathMsg", "OnPlayerKilled", "a")
}

public client_putinserver(id)
{
	set_task(HUD_REFRESH, "ShowHUD", id, .flags = "b")
}

public client_disconnected(id)
{
	remove_task(id)
}

public ShowHUD(id)
{
	set_hudmessage(HUD_COLOR, HUD_POSITION, .holdtime = HUD_REFRESH + 0.5)
	show_hudmessage(id, HUD_TEXT, g_szLeader, g_iKills[g_iLeader])
}

public OnPlayerKilled()
{
	new iAttacker = read_data(1), iVictim = read_data(2)

	if(!is_user_connected(iAttacker) || iAttacker == iVictim)
	{
		return
	}

	g_iKills[iAttacker]++

	new iPlayers[32], iPnum
	get_players(iPlayers, iPnum)
	SortCustom1D(iPlayers, iPnum, "SortPlayers")

	g_iLeader = iPlayers[0]

	if(iPnum > 1 && iPlayers[0] == iPlayers[1])
	{
		copy(g_szLeader, charsmax(g_szLeader), HUD_NO_LEADER)
	}
	else
	{
		get_user_name(g_iLeader, g_szLeader, charsmax(g_szLeader))
	}
}

public SortPlayers(id1, id2)
{
	return g_iKills[id2] - g_iKills[id1]
}
За смяната на картата вече ти казах - mp_fraglimit

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Kill Leader

Мнение от TheRedShoko » 18 Сеп 2019, 10:06

OciXCrom написа: 17 Сеп 2019, 14:36

Код за потвърждение: Избери целия код

#include <amxmodx>

#if !defined client_disconnected
	#define client_disconnect client_disconnected
#endif

#define HUD_COLOR      0, 255, 0
#define HUD_POSITION  -1.0, -1.0
#define HUD_NO_LEADER "X"
#define HUD_TEXT      "[Prefix]^nKill Leader: %s^nKills: %i"
#define HUD_REFRESH   1.0

new g_szLeader[32], g_iKills[33], g_iLeader

public plugin_init()
{
	register_plugin("Leader HUD", "1.0", "OciXCrom")
	register_event("DeathMsg", "OnPlayerKilled", "a")
}

public client_putinserver(id)
{
	set_task(HUD_REFRESH, "ShowHUD", id, .flags = "b")
}

public client_disconnected(id)
{
	remove_task(id)
}

public ShowHUD(id)
{
	set_hudmessage(HUD_COLOR, HUD_POSITION, .holdtime = HUD_REFRESH + 0.5)
	show_hudmessage(id, HUD_TEXT, g_szLeader, g_iKills[g_iLeader])
}

public OnPlayerKilled()
{
	new iAttacker = read_data(1), iVictim = read_data(2)

	if(!is_user_connected(iAttacker) || iAttacker == iVictim)
	{
		return
	}

	g_iKills[iAttacker]++
	
	if (g_iLeader > 0 && !is_user_connected(g_iLeader))
	{
		new iPlayers[32], iPnum
		get_players(iPlayers, iPnum)
		SortCustom1D(iPlayers, iPnum, "SortPlayers")

		g_iLeader = iPlayers[0]

		if(iPnum > 1 && iPlayers[0] == iPlayers[1]) // Това как би могло да се случи?
		{
			copy(g_szLeader, charsmax(g_szLeader), HUD_NO_LEADER)
		}
		else
		{
			get_user_name(g_iLeader, g_szLeader, charsmax(g_szLeader))
		}
	}
	else if (g_iKills[iAttacker] > g_iKills[g_iLeader] || g_iLeader == 0)
	{
		g_iLeader = iAttacker
		get_user_name(g_iLeader, g_szLeader, charsmax(g_szLeader))
	}
}

public SortPlayers(id1, id2)
{
	return g_iKills[id2] - g_iKills[id1]
}
За смяната на картата вече ти казах - mp_fraglimit
Не е особено ефективен начин да сортираш при всяко убийство. Ако плъгина се използва в някой 32/32 deathmatch би довел до performance issues. Направих няколко промени, нека пробва така.

Аватар
antonstoqnovv
Извън линия
Потребител
Потребител
Мнения: 213
Регистриран на: 15 Окт 2017, 10:40
Се отблагодари: 9 пъти
Получена благодарност: 2 пъти

Re: Kill Leader

Мнение от antonstoqnovv » 14 Дек 2023, 03:20

Може ли да се направи да добавя и фраговете от асистента защото сега така не ги показва правилно

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Google [Bot] и 8 госта