function Damage_Actions() local unit = BlzGetEventDamageTarget() -- юнит получающий урон local source = GetEventDamageSource() -- юнит наносящий урон local player = GetOwningPlayer(unit) --владелец получившего урон local sourceplayer = GetOwningPlayer(source) --владелец наносящего урон local damage = GetEventDamage() -- кол-во урона local damagetype = BlzGetEventDamageType() -- тип урона local attacktype = BlzGetEventAttackType() -- тип атаки local weapontype = BlzGetEventWeaponType() -- тип оружия PrintDamage(true, damage, damagetype, attacktype, weapontype, true, true, true) --функция вывода end function Damage() Trigger.Damage = CreateTrigger() TriggerAddAction(Trigger.Damage, Damage_Actions) end function EntireMap_Actions() TriggerRegisterUnitEvent(Trigger.Damage, GetTriggerUnit(), EVENT_UNIT_DAMAGED) end function EntireMap() Trigger.EntireMap = CreateTrigger() TriggerRegisterEnterRectSimple(Trigger.EntireMap, GetPlayableMapRect()) TriggerAddAction(Trigger.EntireMap, EntireMap_Actions) end ---@param weapontype weapontype ---@return string string function ConvertWeaponTypeToString(weapontype) if weapontype == WEAPON_TYPE_WHOKNOWS then return "WEAPON_TYPE_WHOKNOWS" elseif weapontype == WEAPON_TYPE_METAL_LIGHT_CHOP then return "WEAPON_TYPE_METAL_LIGHT_CHOP" elseif weapontype == WEAPON_TYPE_METAL_MEDIUM_CHOP then return "WEAPON_TYPE_METAL_MEDIUM_CHOP" elseif weapontype == WEAPON_TYPE_METAL_HEAVY_CHOP then return "WEAPON_TYPE_METAL_HEAVY_CHOP" elseif weapontype == WEAPON_TYPE_METAL_LIGHT_SLICE then return "WEAPON_TYPE_METAL_LIGHT_SLICE" elseif weapontype == WEAPON_TYPE_METAL_MEDIUM_SLICE then return "WEAPON_TYPE_METAL_MEDIUM_SLICE" elseif weapontype == WEAPON_TYPE_METAL_HEAVY_SLICE then return "WEAPON_TYPE_METAL_HEAVY_SLICE" elseif weapontype == WEAPON_TYPE_METAL_MEDIUM_BASH then return "WEAPON_TYPE_METAL_MEDIUM_BASH" elseif weapontype == WEAPON_TYPE_METAL_HEAVY_BASH then return "WEAPON_TYPE_METAL_HEAVY_BASH" elseif weapontype == WEAPON_TYPE_METAL_MEDIUM_STAB then return "WEAPON_TYPE_METAL_MEDIUM_STAB" elseif weapontype == WEAPON_TYPE_METAL_HEAVY_STAB then return "WEAPON_TYPE_METAL_HEAVY_STAB" elseif weapontype == WEAPON_TYPE_WOOD_LIGHT_SLICE then return "WEAPON_TYPE_WOOD_LIGHT_SLICE" elseif weapontype == WEAPON_TYPE_WOOD_MEDIUM_SLICE then return "WEAPON_TYPE_WOOD_MEDIUM_SLICE" elseif weapontype == WEAPON_TYPE_WOOD_HEAVY_SLICE then return "WEAPON_TYPE_WOOD_HEAVY_SLICE" elseif weapontype == WEAPON_TYPE_WOOD_LIGHT_BASH then return "WEAPON_TYPE_WOOD_LIGHT_BASH" elseif weapontype == WEAPON_TYPE_WOOD_MEDIUM_BASH then return "WEAPON_TYPE_WOOD_MEDIUM_BASH" elseif weapontype == WEAPON_TYPE_WOOD_HEAVY_BASH then return "WEAPON_TYPE_WOOD_HEAVY_BASH" elseif weapontype == WEAPON_TYPE_WOOD_LIGHT_STAB then return "WEAPON_TYPE_WOOD_LIGHT_STAB" elseif weapontype == WEAPON_TYPE_WOOD_MEDIUM_STAB then return "WEAPON_TYPE_WOOD_MEDIUM_STAB" elseif weapontype == WEAPON_TYPE_CLAW_LIGHT_SLICE then return "WEAPON_TYPE_CLAW_LIGHT_SLICE" elseif weapontype == WEAPON_TYPE_CLAW_MEDIUM_SLICE then return "WEAPON_TYPE_CLAW_MEDIUM_SLICE" elseif weapontype == WEAPON_TYPE_CLAW_HEAVY_SLICE then return "WEAPON_TYPE_CLAW_HEAVY_SLICE" elseif weapontype == WEAPON_TYPE_AXE_MEDIUM_CHOP then return "WEAPON_TYPE_AXE_MEDIUM_CHOP" elseif weapontype == WEAPON_TYPE_ROCK_HEAVY_BASH then return "WEAPON_TYPE_ROCK_HEAVY_BASH" end end ---@param attacktype attacktype ---@return string string function ConvertAttackTypeToString(attacktype) if attacktype == ATTACK_TYPE_NORMAL then return "ATTACK_TYPE_NORMAL" elseif attacktype == ATTACK_TYPE_HERO then return "ATTACK_TYPE_HERO" elseif attacktype == ATTACK_TYPE_MELEE then return "ATTACK_TYPE_MELEE" elseif attacktype == ATTACK_TYPE_PIERCE then return "ATTACK_TYPE_PIERCE" elseif attacktype == ATTACK_TYPE_MAGIC then return "ATTACK_TYPE_MAGIC" elseif attacktype == ATTACK_TYPE_CHAOS then return "ATTACK_TYPE_CHAOS" elseif attacktype == ATTACK_TYPE_SIEGE then return "ATTACK_TYPE_SIEGE" end end ---@param damagetype damagetype ---@return string string function ConvertDamageTypeToString(damagetype) if damagetype == DAMAGE_TYPE_UNKNOWN then return "DAMAGE_TYPE_UNKNOWN" elseif damagetype == DAMAGE_TYPE_NORMAL then return "DAMAGE_TYPE_NORMAL" elseif damagetype == DAMAGE_TYPE_ENHANCED then return "DAMAGE_TYPE_ENHANCED" elseif damagetype == DAMAGE_TYPE_FIRE then return "DAMAGE_TYPE_FIRE" elseif damagetype == DAMAGE_TYPE_COLD then return "DAMAGE_TYPE_COLD" elseif damagetype == DAMAGE_TYPE_LIGHTNING then return "DAMAGE_TYPE_LIGHTNING" elseif damagetype == DAMAGE_TYPE_POISON then return "DAMAGE_TYPE_POISON" elseif damagetype == DAMAGE_TYPE_DISEASE then return "DAMAGE_TYPE_" elseif damagetype == DAMAGE_TYPE_DIVINE then return "DAMAGE_TYPE_DIVINE" elseif damagetype == DAMAGE_TYPE_MAGIC then return "DAMAGE_TYPE_MAGIC" elseif damagetype == DAMAGE_TYPE_SONIC then return "DAMAGE_TYPE_SONIC" elseif damagetype == DAMAGE_TYPE_ACID then return "DAMAGE_TYPE_ACID" elseif damagetype == DAMAGE_TYPE_FORCE then return "DAMAGE_TYPE_FORCE" elseif damagetype == DAMAGE_TYPE_DEATH then return "DAMAGE_TYPE_DEATH" elseif damagetype == DAMAGE_TYPE_MIND then return "DAMAGE_TYPE_MIND" elseif damagetype == DAMAGE_TYPE_PLANT then return "DAMAGE_TYPE_PLANT" elseif damagetype == DAMAGE_TYPE_DEFENSIVE then return "DAMAGE_TYPE_DEFENSIVE" elseif damagetype == DAMAGE_TYPE_DEMOLITION then return "DAMAGE_TYPE_DEMOLITION" elseif damagetype == DAMAGE_TYPE_SLOW_POISON then return "DAMAGE_TYPE_SLOW_POISON" elseif damagetype == DAMAGE_TYPE_SPIRIT_LINK then return "DAMAGE_TYPE_SPIRIT_LINK" elseif damagetype == DAMAGE_TYPE_SHADOW_STRIKE then return "DAMAGE_TYPE_SHADOW_STRIKE" elseif damagetype == DAMAGE_TYPE_UNIVERSAL then return "DAMAGE_TYPE_UNIVERSAL" end end