Bullet damage + equip menu

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

Bullet damage + equip menu

Мнение от OciXCrom » 24 Авг 2019, 15:41

Как точно ги настрои и кое не е по твой вкус?

Аватар
i5Typical
Извън линия
Потребител
Потребител
Мнения: 11
Регистриран на: 16 Авг 2019, 02:05

Bullet damage + equip menu

Мнение от i5Typical » 24 Авг 2019, 15:53

За начина по който да ги показва, дали в кръг или хоризонтално, това работи. Но като задам квара дали да показва в един цвят или да е random не работи.
Намерих подобен плъгин. Може ли само да го направиш да сменя цветовете при хитването?

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

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fakemeta>

#define SUPERHERO 0  // if ur server has superhero mod ON set this to 1

#if SUPERHERO == 1
  #include <superheromod>
#endif

#define PLUGIN "Advanced Bullet Damage"
#define VERSION "2.1"
#define AUTHOR "SmirnoffBG"
//#define WITHOUT_NAMES

new g_hudmsg1
new g_hudmsgatt[6]
new user_name[33][32]//, num[33]
new damage2[33][33], hudplace[33][6]

#if !defined WITHOUT_NAMES
new bool:hidenames[33]
#endif

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /dmgnames", "ShowThemNames", _,"Show/Hide the names in the dmg indicator!")
	
	g_hudmsg1 = CreateHudSyncObj()	
	
	for(new i; i< sizeof g_hudmsgatt; i++)
		g_hudmsgatt[i] = CreateHudSyncObj()
}

#if SUPERHERO == 1
public sh_fwd_extra_dmg(id, damage, attacker)
{
	on_damage2(id, damage, attacker)
}
#endif

public client_damage(attacker, victim, damage)
{
	on_damage2(victim, damage, attacker)
}

public client_connect(id)
{
	get_user_name(id, user_name[id], 31)
	hidenames[id] = false
}

#if !defined WITHOUT_NAMES
public ShowThemNames(id)
{
	if(!hidenames[id])
		hidenames[id] = true
	else
		hidenames[id] = false
	client_print(id, print_chat, "[Extras] You %s names in the dmg indicator", hidenames[id]?"hid":"activated")
}


public client_infochanged(id)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE

	new g_old_name[32], g_name[32];

	get_user_name(id, g_old_name, charsmax(g_old_name))
	get_user_info(id, "name", g_name, charsmax(g_name))

	if(!equal(g_name, g_old_name))
	{
		copy(user_name[id],31, g_name)
	}

	return PLUGIN_CONTINUE
}
#endif

public on_damage2(id, damage, attacker) 
{
	static effecta = 0, Float:fxtime = 1.0, Float:holdtime = 2.0, params[3],place,bool:is_dead,
	Float:fadein = 0.1, Float:fadeout = 0.2, deadid, num2, pl[32], spec, taskid, freed, dmgto
	
	if(!is_user_alive(id))
	{
		is_dead = true
	} else is_dead = false
	
	set_hudmessage(255, 0, 0, 0.35, 0.50, effecta, fxtime, holdtime, fadein, fadeout, -1)
#if defined WITHOUT_NAMES
	ShowSyncHudMsg(id, g_hudmsg1, "%d", damage)
#else
	ShowSyncHudMsg(id, g_hudmsg1, "%d", damage)
#endif
	
	if(!is_user_connected(attacker)) return
		
	taskid = (attacker*100) + id
	dmgto = damage2[attacker][id] += damage // summed here cuz it can bug

	if(task_exists(taskid))
	{
		for(place=0; place<5; place++)
		{
			if(hudplace[attacker][place] == id)
			{
				
				
				hudplace[attacker][place] = id
				change_task(taskid, holdtime+2.0)
					
				break
			}
			if(place == 5)
			{
				goto failsave
			}
			
		}
	} else {
		failsave:
		for(place=0; place<=5; place++)
		{
			if(place == 5)
			{
				place = 0
				hudplace[attacker][place] = id
				if(task_exists(taskid))
				{
					change_task(taskid, holdtime)
				} else {
					params[0] = attacker
					params[1] = id
					params[2] = place
					set_task(holdtime+2.0, "resetdmg", taskid, params, 3)
				}
				break
			}
			if(hudplace[attacker][place] == id || (freed=hudplace[attacker][place]) == 0)
			{
				if(freed == 0 && place < 5)
				{
					if(place+1 < 5){
						if(hudplace[attacker][place+1] == id)
							place+=1
					} else  if(place+2 < 5){
						if(hudplace[attacker][place+2] == id)
							place+=2
					} else if( place+3 < 5){
						if(hudplace[attacker][place+3] == id)
							place+=3
					} else if(place+4 < 5){
						if(hudplace[attacker][place+4] == id)
							place+=4
					}
				}
				hudplace[attacker][place] = id
				if(task_exists(taskid))
				{
					change_task(taskid, holdtime+2.0)
				} else {
					params[0] = attacker
					params[1] = id
					params[2] = place
					set_task(holdtime+2.0, "resetdmg", taskid, params, 3)
				}
					
				break
			}
			
		}
	}
	switch(place)
	{
		case 0: set_hudmessage( random_num(0,255), 255, 000, 0.50, 0.4000, effecta, fxtime, holdtime, fadein, fadeout,-1)
		case 1: set_hudmessage( 000, 255, 255, 0.53, 0.4375, effecta, fxtime, holdtime, fadein, fadeout, 0)
		case 2: set_hudmessage( 255, 100, 255, 0.56, 0.4750, effecta, fxtime, holdtime, fadein, fadeout, 1)
		case 3: set_hudmessage( 255, 000, 130, 0.53, 0.5125, effecta, fxtime, holdtime, fadein, fadeout, 2)
		case 4: set_hudmessage( 200, 000, 100, 0.50, 0.5500, effecta, fxtime, holdtime, fadein, fadeout, 3)
	}
	
#if defined WITHOUT_NAMES
	if(is_dead)
		ShowSyncHudMsg(attacker, g_hudmsgatt[place], "%d", dmgto)
	else if(dmgto-damage == 0)
		ShowSyncHudMsg(attacker, g_hudmsgatt[place], "%d", damage)
	else
		ShowSyncHudMsg(attacker, g_hudmsgatt[place], "%d", dmgto-damage, damage)
#else
	if(!hidenames[attacker])
	{
		if(dmgto-damage == 0)
			ShowSyncHudMsg(attacker, g_hudmsgatt[place], "%d", damage, user_name[id])
		else
			ShowSyncHudMsg(attacker, g_hudmsgatt[place], "%d", dmgto-damage, damage, user_name[id])
	} else {
		if(is_dead)
			ShowSyncHudMsg(attacker, g_hudmsgatt[place], "%d", dmgto)
		else if(dmgto-damage == 0)
			ShowSyncHudMsg(attacker, g_hudmsgatt[place], "%d", damage)
		else
			ShowSyncHudMsg(attacker, g_hudmsgatt[place], "%d", dmgto-damage, damage)
	}
#endif
	get_players(pl, num2, "b")
	for(spec=0;spec<num2;spec++)
	{
		deadid = pl[spec]
		if(pev(deadid, pev_iuser2) == attacker)
		{
#if defined WITHOUT_NAMES
			if(is_dead)
				ShowSyncHudMsg(deadid, g_hudmsgatt[place], "%d", dmgto)
			else if(dmgto-damage == 0)
				ShowSyncHudMsg(deadid, g_hudmsgatt[place], "%d", damage)
			else
				ShowSyncHudMsg(deadid, g_hudmsgatt[place], "%d", dmgto-damage, damage)
#else
			if(is_dead)
				ShowSyncHudMsg(deadid, g_hudmsgatt[place], "%d ", dmgto)
			else if(dmgto-damage == 0)
				ShowSyncHudMsg(deadid, g_hudmsgatt[place], "%d", damage)
			else
				ShowSyncHudMsg(deadid, g_hudmsgatt[place], "%d", dmgto-damage, damage)
#endif
		}
	}
}

public resetdmg(params[3])
{
	static attacker
	attacker = params[0]
	damage2[attacker][params[1]] = 0
	hudplace[attacker][params[2]] = 0
}

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

Bullet damage + equip menu

Мнение от OciXCrom » 24 Авг 2019, 15:59

Отвори .sma файла и навсякъде където има set_hudmessage( R, G, B го замени с set_hudmessage( random(256), random(256), random(256)

Аватар
i5Typical
Извън линия
Потребител
Потребител
Мнения: 11
Регистриран на: 16 Авг 2019, 02:05

Bullet damage + equip menu

Мнение от i5Typical » 24 Авг 2019, 16:07

Благодаря ти. Понеже водим разговори в тая тема в момента можеш ли да ме насочим към добра антихак система, от която да се защитим от хакери, когато няма админи, които да действат на разположение?

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

Bullet damage + equip menu

Мнение от OciXCrom » 24 Авг 2019, 16:11

Насочи се към ReHLDS раздела за всички актуални защити. Смятам тази тема за приключена.

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

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

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 28 госта