Собственно проблема возникла из-за того, что нет события отрабатывающего получения повреждений. имеющаяся функция HealthChange учитывает только изменение здоровья постфактум.
![](http://blog.rconshop.ru/wp-content/uploads/2020/05/image.png)
Пришлось придумать собственную реализацию данного события.
Как это не странно, но получилось довольно таки компактно. Один модульный скрипт, в котором обсчитывается и нанесённый урон и получаемый.
local Damage = {} -- объявление модуля function Damage:Take(hum,damage) -- функция нанесения повреждений damage=damage*1.5 -- можно использовать все модификаторы по нанесению урона текущим объектом -- print("Humanoid:",hum.Parent.Name," Take:",damage) Damage:Give(hum,damage) -- переходим на получение повреждений end function Damage:Give(hum,damage) -- функция получения повреждений damage=damage/2 -- можно обсчитать все модификаторы получаемого урона -- print("Humanoid:",hum.Parent.Name," Give:",damage) hum:TakeDamage(damage) -- собственно нанесение урона гуманоиду end return Damage
Вот такой небольшой скрипт решает поставленную мной задачу. Теперь, нужно использовать исключительно его вместо стандартного TakeDamage(). Делается это очень просто:
local Damage=require(script.Parent.Damage) -- подключение модуля wait(5) print("Start") hum = game.Workspace.GAVsi115.Humanoid hum.HealthChanged:Connect(function(newHealth) -- это пример функции для отслеживания текущего здоровья if newHealth < 1 then -- типа не должен умирать :) wait() -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! hum.Health = 1 print(hum.Parent.Name .. " saved from death!") end end) -- из-за малейшей задержки на сервере (а это легко может произойти), эта функция успеет сработать hum.Died:Connect(function() -- функция наличия смерти print("!!!!!!!!! Die !!!!!!!!!!!") end) while true do wait(0.3) -- hum:TakeDamage(11) -- стандартное нанесение урона Damage:Take(hum,11) -- модернизированное нанесение урона print("Health=",hum.Health) end
Как видим — достаточно добавить строчку подключения модуля и слегка изменить строку о нанесении урона.
Главная проблема этого метода, что надо найти и изменить все стандартные варианты нанесения урона.
чел ты….
Спасибо