Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
TheEnd1605

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 1

В общем совсем стало скучно, вот ваш мод. Как и обещал пол часа... Перс не будет умирать если его убивают (кроме самоубийства на 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"));
	}	
}

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

Изменено пользователем nytlenc (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
10 часов назад, skadjna сказал:

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

 

Чего????? ?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
29 минут назад, nytlenc сказал:

@nytlenc 

Чего????? ?

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


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, nytlenc сказал:

 

Чего????? ?

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

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

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

Изменено пользователем skadjna (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Чтобы не быть голословным. Можете в 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 но своим кодом добавляете свой урон и т.д. в этом месте

Изменено пользователем nytlenc (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 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"));
	}	
}

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка