Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
Sign in to follow this  
TheEnd1605

Мод на состояние Агонии.

Господа, известно ли кому-то как называется мод на предсмертное состояние персонажа когда его смертельно ранят? При смертельном ранении персонаж не умирает а отправляется в бесконечную унку и поднять его сможет только медик.

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 1
Posted (edited)

В общем совсем стало скучно, вот ваш мод. Как и обещал пол часа... Перс не будет умирать если его убивают (кроме самоубийства на F11). Вместо смерти от чьей-либо руки (в том числе спрыгнув с крыши) он упадет в бесконечную унку...

Дальше как-нибудь сами прикрутите медика и его действия, это тоже не трудно🙂 

 

modded class PlayerBase
{
	ref Timer AgoniaTimer;
	
	void PlayerBase()
	{
		AgoniaTimer = new Timer();
	}
	
	override bool EEOnDamageCalculated(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
    {
		if (GetGame().!IsServer())
			return EEOnDamageCalculated(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef);
		
		float pl_maxHP = GetMaxHealth("", "Health");
		float pl_currentHP = GetHealth("", "Health");
		float pl_currentDamage = damageResult.GetDamage(dmgZone, "Health");
		
		float pl_allDamage = pl_currentHP - pl_currentDamage;
		
		if ((pl_currentHP - pl_currentDamage) <= 0)
		{
			UnlimitedUncunsions();
			// Каждые 3 сек проверять состояние перса и выяснять не оживил ли его медик, если нет то пусть спит дальше
			if (AgoniaTimer.!IsRunning())
				AgoniaTimer.Run(3, this, "UnlimitedUncunsions", null, true);
			return false;
		}
		else
			return EEOnDamageCalculated(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef);
    }
	
	void UnlimitedUncunsions()
	{
		// Увеличиваем шок до 100% и ждем когда медик воскресит, код воскрешения пишите сами
		// Далее все в ваших руках, остановить таймер AgoniaTimer.Stop(), поднять перса добавив шок и т.д.
		SetHealth("", "Shock", -GetMaxHealth("", "Shock"));
	}	
}

Я спать время уже поздно. Спокойной ночи пацаны.

Edited by nytlenc (see edit history)

Share this post


Link to post
Share on other sites



  • 0

Тоже активно искал подобный, не нашел
В DayZ SA не научились (или игра не позволяет научиться) отменять вошедший урон, поэтому и реализации подобного состояния нет

Share this post


Link to post
Share on other sites
  • 0

@skadjna Я видел реализацию подобной фиче на одном сталкерском проекте. Честно не помню его название, поэтому и пытаюсь найти везде где только можно.

Share this post


Link to post
Share on other sites
  • 0
10 часов назад, skadjna сказал:

Тоже активно искал подобный, не нашел
В DayZ SA не научились (или игра не позволяет научиться) отменять вошедший урон, поэтому и реализации подобного состояния нет

 

Чего????? 😂

Я за пол часа такой мод нарисую 🤣

Share this post


Link to post
Share on other sites
  • 0
29 минут назад, nytlenc сказал:

@nytlenc 

Чего????? 😂

Я за пол часа такой мод нарисую 🤣


А у вас такая возможность имеется? Хотелось бы связаться чтобы приступить к его созданию. Главное узнать цену данного вопроса и некоторые тонкости для параметров.

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)
1 час назад, nytlenc сказал:

 

Чего????? 😂

Я за пол часа такой мод нарисую 🤣

В таком случае хотелось бы посмотреть на это, я бы даже приобрел подобное
Мне как один люди твердили что летальный урон, простите за тавтологию, летален для персонажа. Особенно хедшоты

Ремарочка-под "отменять" я не имею ввиду моментальный отхил персонажа на количество полученного урона

Edited by skadjna (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Для понимания. Моды на заказ не пишу. Есть ряд проблем. Отсутствие какого либо зафиксированного ТЗ со стороны клиента, в этой связи слишком завышенные ожидания при реализации мода со стороны клиента. Далее слишком требовательные клиенты со своими слишком завешенными ожиданиями - начинают предъявлять претензии, что твой корректно написанный мод противоречит и не клеится с другими кривонаписанными модами уже использующимся на его его сервере. В итоге на мод за который ты получил 500 рублей приходится тратить неделю поисков причин и проблем у клиента, чтобы доказать ему что проблема точно у него а не в тоем моде. Писать костыли и моды на другие моды, чтобы твой мод заработал, но оплаты за потраченную неделю времени тебе никто не возмещает. Потому пишите мод сами ребят 🙂Я лишь подсказал что это реально и ваш мод можно сделать. И это не сложно. Или собирайтесь большой компанией. Четко описывайте требования которые вы хотите. Если повезет (возможно даже я) эти требования проанализируют. Напишут мод, возьмут на себя ответственность и напишут его, выложат на продажу тут и будут нести ответственность за его поддержку и дальнейшее развитие. Надеюсь наиболее полно донес свою мысль.

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

Чтобы не быть голословным. Можете в PlayerBase.c добавить код

 

override bool EEOnDamageCalculated(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
    {
        return false;
    }

 

Этот код вообще отменит какой либо урон по любому игроку на сервере (кроме самоубийств это тема отдельная).

 

далее там же можете получить абсолютно любой тип урона, например шок - damageResult.GetDamage(dmgZone, "Shock") или вообще смертельное HP - damageResult.GetDamage(dmgZone,"Health") или кровь damageResult.GetDamage(dmgZone,"Blood") нанесенный именно в данную секунду чем -либо (например хеадшот в голову с СВД в упор) и далее рассчитать остаток HP или еще чего либо приняв решение что делатб с персом далее - отправить его в вашу агонию и т.д. пока его медик не воскресит или хоть еще что

 

если надо сделать полученный  урон возвращаете true, не надо false но своим кодом добавляете свой урон и т.д. в этом месте

Edited by nytlenc (see edit history)

Share this post


Link to post
Share on other sites
  • 0
50 минут назад, nytlenc сказал:

В общем совсем стало скучно, вот ваш мод. Как и обещал пол часа... Перс не будет умирать если его убивают (кроме самоубийства на F11). Вместо смерти от чьей-либо руки (в том числе спрыгнув с крыши) он упадет в бесконечную унку...

Дальше как-нибудь сами прикрутите медика и его действия, это тоже не трудно🙂 

 

modded class PlayerBase { ref Timer AgoniaTimer; void PlayerBase() { AgoniaTimer = new Timer(); } override bool EEOnDamageCalculated(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef) { if (GetGame().!IsServer()) return EEOnDamageCalculated(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef); float pl_maxHP = GetMaxHealth("", "Health"); float pl_currentHP = GetHealth("", "Health"); float pl_currentDamage = damageResult.GetDamage(dmgZone, "Health"); float pl_allDamage = pl_currentHP - pl_currentDamage; if ((pl_currentHP - pl_currentDamage) <= 0) { UnlimitedUncunsions(); // Каждые 3 сек проверять состояние перса и выяснять не оживил ли его медик, если нет то пусть спит дальше if (AgoniaTimer.!IsRunning()) AgoniaTimer.Run(3, this, "UnlimitedUncunsions", null, true); return false; } else return EEOnDamageCalculated(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef); } void UnlimitedUncunsions() { // Увеличиваем шок до 100% и ждем когда медик воскресит, код воскрешения пишите сами // Далее все в ваших руках, остановить таймер AgoniaTimer.Stop(), поднять перса добавив шок и т.д. SetHealth("", "Shock", -GetMaxHealth("", "Shock")); } }


modded class PlayerBase
{
	ref Timer AgoniaTimer;
	
	void PlayerBase()
	{
		AgoniaTimer = new Timer();
	}
	
	override bool EEOnDamageCalculated(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
    {
		if (GetGame().!IsServer())
			return EEOnDamageCalculated(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef);
		
		float pl_maxHP = GetMaxHealth("", "Health");
		float pl_currentHP = GetHealth("", "Health");
		float pl_currentDamage = damageResult.GetDamage(dmgZone, "Health");
		
		float pl_allDamage = pl_currentHP - pl_currentDamage;
		
		if ((pl_currentHP - pl_currentDamage) <= 0)
		{
			UnlimitedUncunsions();
			// Каждые 3 сек проверять состояние перса и выяснять не оживил ли его медик, если нет то пусть спит дальше
			if (AgoniaTimer.!IsRunning())
				AgoniaTimer.Run(3, this, "UnlimitedUncunsions", null, true);
			return false;
		}
		else
			return EEOnDamageCalculated(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef);
    }
	
	void UnlimitedUncunsions()
	{
		// Увеличиваем шок до 100% и ждем когда медик воскресит, код воскрешения пишите сами
		// Далее все в ваших руках, остановить таймер AgoniaTimer.Stop(), поднять перса добавив шок и т.д.
		SetHealth("", "Shock", -GetMaxHealth("", "Shock"));
	}	
}

Я спать время уже поздно. Спокойной ночи пацаны.

Я в шоке. Вот это да! 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.