• 🏆 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!

Magic Attacks Will Not Be Reduce On Any Type Of Armor

Status
Not open for further replies.
Level 13
Joined
Aug 19, 2014
Messages
1,111
Hello guys, any ideas how to make Magic Attacks not to get reduce by any types of armor? Example units are Priest, Spirit Walker, Druid of the Talon and Necromancer. All of them do Magic Attacks, what should I do to make the damage 100% even if the attacked unit has an armor type of Large and has 2 armor?
 
Level 11
Joined
Aug 24, 2012
Messages
429
Oh, he also wanted the attacks to ignore Armor VALUES (Such as 1 armor or 3 armor)...hmmmm

You can't directly do that, but there are a few workarounds:

1. Add some sort of armor reduction debuff to the units attack (Orb of Corruption) which is large enough (-20) to completely negate a units armor. I don't know if the first attack will do the full damage that you want (since the buff is not yet applied at that time), but the next attacks will actually do extra damage (I don't think you can ever set a unit's armor to flat 0 without complex triggers that keep track of every buff/debuff/item/pickup).

2. Try giving your unit 1 damage on its attack and have its damage come from auto-attack enhancing abilitites: Orb of Anihilation, Searing Arrows, Cold Arrows etc. I don't know if the damage from this abilities ignore armor, but they might since I believe they deal spell damage and spell damage ignores armor values.

The second solution would fit caster units.
 
Level 13
Joined
Aug 19, 2014
Messages
1,111
Yeah, a DDS to force the damage amount based on the unit type is the most reliable way, but requires going through Object Editor to find the original damage values of the units to get how much damage they deal before armor application.

Could you show me how to do it?
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,464
First, using Damage Engine with the event DamageModifierEvent becomes Equal to 1.00, check if IsDamageSpell is equal to false. This will tell you that the caster is attacking and not casting a spell.

Second, you'd use a chain of if-blocks to determine if the unit type is a Priest/Banshee/Spirit Walker/etc.

Third, set the DamageEventAmount to whatever damage the unit has in Object Editor.
 
Level 13
Joined
Aug 19, 2014
Messages
1,111
Like this?

  • Magic Attacks
    • Events
      • Game - DamageModifierEvent becomes Equal to 1.00
    • Conditions
      • IsDamageSpell Equal to False
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Triggering unit)) Equal to Banshee
          • (Unit-type of (Triggering unit)) Equal to Necromancer
        • Then - Actions
          • Set DamageEventAmount = 90.00
        • Else - Actions
What if their attack increases via upgrades and auras? Especially on heroes that have items which increases their damage?
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,464
Unfortunately, you would only be able to do this based on the original unit damage. The problem with armor is that you cannot reliably get its value, so you will either need to program all armor of all units into the game manually (impractical), or change the damage types of all these guys to Spells instead of Magic - but then Runed Bracers, Elune's Grace and Hero types will reduce that armor.

Maybe it is a better idea to try investing your time into something else?
 
Status
Not open for further replies.
Top