• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Eternal Evil v1.0.1

  • Like
Reactions: deepstrasz
My final resources upload until the Mac get a decent World Editor or I manage to get proper skill for icon or model making in Mac.
Got Windows fixed

Taken from Mobile Legends, the spell is a defensively offensive spell (Okay, you're joking now aren't you?) that nullifies death while active and convert dealt damage into health after it's effect ended. The spell was used in Mobile Legend by the hero Argus. It has changed lately, after a recent patch. The spell reflects to the older version.

I personally don't take much interest in that game, but thanks to my brother I got interested to take a look and finally do this spell.

Triggers can be seen at Trigger Viewer.

Uses Damage Engine and Unit Indexer by @Bribe

CHANGELOG :
Fixed issues mentioned by @KILLCIDE


If you like this work and wish to support me financially, you can support me via Ko-fi.
Contents

Eternal Evil 1.0.1 (Map)

Reviews
KILLCIDE
A simple spell concept that can easily find itself in the kit of any Hero from any game type. It has decent configurables and is leakless. Needs Fixed Nothing Suggestions As of right now, you have it so that a caster cannot have more than two...
Level 37
Joined
Jul 22, 2015
Messages
3,485
Cool concept. Also reminds me of Abaddon's ultimate in DotA. However, I am a little concerned with you using the custom value of the unit as the indice. This normally wouldn't be a problem, but what happens when that same unit casts another instance while the other is still active? The special effect will get overwritten, and the Counter variable will be all messed up. Once you add a fix for this, I can quickly approve it :D Could you also rename the test map?
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
A simple spell concept that can easily find itself in the kit of any Hero from any game type. It has decent configurables and is leakless.

Needs Fixed

  • Nothing

Suggestions

  • As of right now, you have it so that a caster cannot have more than two instances active at once. With this in mind, it seems pretty pointless to store data such as CustomValue, Active[], Level[], & Timer[] before this check. You should only store this data once you know you need it.
  • The way you are preventing fatal damage seems incorrect. As of right now, it seems like it will work because there are not a lot of damage instances happening. I had a similar problem with this in the past, and I consulted Bribe on how to properly do it with his damage system. I advise doing the same!
  • The logic you have set up in EE Damage for when Eternal Evil user is attacking is right, but I would set it up like this to avoid unnecessary work:
    • -------- Eternal Evil user is attacking --------
    • Set EE_CustomValue = (Custom value of DamageEventSource)
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • EE_Active[EE_CustomValue] Equal to True
      • Then - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • EE_PreserveHeal Equal to False
          • Then - Actions
            • Unit - Set life of DamageEventSource to ((Life of DamageEventSource) + DamageEventAmount)
          • Else - Actions
            • Set EE_FinalHeal[EE_CustomValue] = (EE_FinalHeal[EE_CustomValue] + (DamageEventAmount x EE_PercentageOfDamage[EE_Level[EE_CustomValue]]))
      • Else - Actions

Status

Approved
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,456
Are you using Damage Engine?

If so, the way to do it is via DamageModifyEvent Equal to 4.00

This event is used for applying fixed-damage Shields, but also is fine to use for fatal damage prevention as that is also considered a shield.

You check if DamageEventAmount minus the life of the DamageEventTarget is less than 0.50, and if so set the DamageEventAmount to either 0 or whatever happy medium damage reduction you want.
 
Top