Блокиране на healing zones

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
DaRk_StyLe
Извън линия
Потребител
Потребител
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Блокиране на healing zones

Мнение от DaRk_StyLe » 10 Авг 2017, 16:11

Пробвай така.

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

#include <amxmodx>
#include <fakemeta>

new g_Forward

public plugin_precache()
{
	g_Forward = register_forward(FM_KeyValue, "Forward_KeyValue")
}

public plugin_init()
{
	unregister_forward(g_Forward, FM_KeyValue)
}

public Forward_KeyValue(Entity, KvdID)
{
	if(pev_valid(Entity))
	{
		new KeyClassName[13], KeyName[4]
		
		get_kvd(KvdID, KV_ClassName, KeyClassName, charsmax(KeyClassName))
		get_kvd(KvdID, KV_KeyName, KeyName, charsmax(KeyName))
		
		if(equal(KeyClassName, "trigger_hurt") && equal(KeyName, "dmg"))
		{
			set_kvd(0, KV_KeyName, KeyName)
			set_kvd(0, KV_Value, "0")
			set_kvd(0, KV_fHandled, 0)
			dllfunc(DLLFunc_KeyValue, Entity, 0)
			
			return FMRES_SUPERCEDE
		}
	}
	
	return FMRES_IGNORED
}

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

Блокиране на healing zones

Мнение от TheRedShoko » 10 Авг 2017, 17:02

Забравих да напиша, че не ми трябва да се блокират постоянно, а само при определни ситуации, затова се зачудих, как да стане чрез forward-a.

Аватар
DaRk_StyLe
Извън линия
Потребител
Потребител
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Блокиране на healing zones

Мнение от DaRk_StyLe » 10 Авг 2017, 17:36

Би ли ми предоставил малка карта, на която да тествам, защото всички, които намирам са огромни.

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

Блокиране на healing zones

Мнение от TheRedShoko » 10 Авг 2017, 18:36

http://gamebanana.com/maps/176570 тази е най-малката, за която се сещам... Има ги в CT spawn.

Аватар
DaRk_StyLe
Извън линия
Потребител
Потребител
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Блокиране на healing zones

Мнение от DaRk_StyLe » 10 Авг 2017, 20:17

Аналгина ми сглоби карта с отрицателен trigger_hurt и func_healthcharger. Този метод блокира даването на кръв от желаните от теб entity-та, но в случай, че изкочи entity, което искаш да дава кръв, то тогава ще се наложи да видиш какъв вид Damagebits използва и да го изключиш от забраната.

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

#include <amxmodx>
#include <hamsandwich>

new Blocked[33]

public plugin_init()
{
	RegisterHam(Ham_TakeHealth, "player", "Forward_Ham_TakeHealth")
	register_clcmd("say set", "ClientCommand_Set")
}

public ClientCommand_Set(id)
{
	if(!Blocked[id])
	{
		Blocked[id] = true 
		client_print(id, print_chat, "Blocked set to true")
	}
	else 
	{
		Blocked[id] = false 
		client_print(id, print_chat, "Blocked set to false")
	}
}

public Forward_Ham_TakeHealth(id, Float:Health, Damagebits)
{
	if(Blocked[id])
	{
		return HAM_SUPERCEDE
	}
	
	return HAM_IGNORED
}

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

Блокиране на healing zones

Мнение от TheRedShoko » 10 Авг 2017, 21:28

Бях забравил, че съществува подобен Ham forward... Благодаря ти.

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

Обратно към “Помощ в скриптирането”

Кой е на линия

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