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