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

Make Spells NOT ignore the armor value

Status
Not open for further replies.
Level 9
Joined
Apr 27, 2012
Messages
234
Hi all,

is it possible to make Spells (like e.g. 'Blizzard') NOT ignore the armor value?
What I know:
- The Armor Type can reduce Spell damage. Hero Armor takes 70% spell damage, for example. But it's always a 70% reduction. No matter the armor value. It neglects the armor value!!
- There's a passive spell based on the ability of the runed bracers that reduce spell damage taken. But I don't want to make an extra ability with a different reduction value for each unit.

Too bad Blizzard's Object Editor won't let us alter the damage type of most spells :/


Anyone, help?
 
Level 12
Joined
Mar 13, 2012
Messages
1,121
There are some rare spells/abilities which are also reduced by armor. Generally what you wish is not possible.

You can either trigger your spells and use a damage combination that is also reduced by armor or add a hidden spell damage reduction ability to your unit.
 
Level 6
Joined
May 20, 2014
Messages
228
> Could you possibly use a DDS? They should be able to detect magic damage dealt then you could null that damage

Technically, using a DDS will mostly likely require all spells to be triggered since that is how generally the system works. That way you can determine on how the spell's damage will be dealt, which you can convert to something like physical that will be reduced by armor this way. Or even make them do full damage.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,192
You have to trigger it all. In SC2 you can enable armor for specifc damage effects but sadly WC3 lacks such customizable damage functionality.

When triggering damage you can set various attributes. The best would be to use something like magic type attack as that would make the most sense for a spell generally. Some exceptions should be made for abilities of certain units (eg goblin tinker) which should use other damage types to reflect the hero theme better.
 
Level 24
Joined
Aug 1, 2013
Messages
4,657
Technically, using a DDS will mostly likely require all spells to be triggered since that is how generally the system works.

Nope.
A DDS detects damage.
Some can detect the difference between magic and physical damage and in this case it would be nice.
However, it would mean that spell damage reduction is already applied before you detect the damage.
You also cannot detect what spell did the damage.

What you are talking about is an Alternative Damage-Engine.
A damage engine does not detect damage but it deals damage instead.
This opens many more possibilities but requires you to indeed trigger all damage.
 
Level 9
Joined
Apr 27, 2012
Messages
234
Well, I'm not going to make triggers for each spell :p

I could make a passive (spellbook-hidden) ability that reduces spell damage and give it many levels. Then, whenever a unit enters the map, the level of the ability could be scaled accordingly. Problem is: WE won't let me detect armor values. Is there an elegant way to detect armor values?
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,192
I could make a passive (spellbook-hidden) ability that reduces spell damage and give it many levels. Then, whenever a unit enters the map, the level of the ability could be scaled accordingly. Problem is: WE won't let me detect armor values. Is there an elegant way to detect armor values?
You need to deal some damage to the unit of a kind that is reduced by armor (using damage unit native) and then calculate the actual damage dealt either by measuring the health differential or by using a DDS. You can then use the WC3 armor formula (same as Diablo III armor/all resistances with different constant) and worth out the amount of armor the unit has. Do not forget to apply armor type correction which might need some form of massive data table of all units and their armor types or another damage system to determine the type. Remember to add extra health to the unit during this and restore its health at the end otherwise it might die unintentionally.

In SC2 you could simply look up the unit's armor. Unfortunately WC3 lacks such functionality which is kind of annoying.
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
Use a DDS that can detect damage type, such as the one by lfh.
Detect when any spell damage is done and null it.
Deal the same amount of damage as physical damage instead.

It's not complicated, doesn't require SC2 and doesn't need triggered spells.
 
Level 9
Joined
Apr 27, 2012
Messages
234
thanks for the tips everyone. Damage detection systems (DDS, I assume) are the way to go, I would assume.

Though I also have an alternative in mind:
- Have a trigger damage a unit by a certain value and calculate how much the damage was reduced
- This lets me now the % reduction of the units' armor.
- I can then give a passive ability to the unit that has several levels. The levels give differnet reduction in spell damage taken. The level will be adjusted according to the results of said calculation.
- This will be done to each unit that hits the field


Hmm, I think it could work. Will try & maybe tell you folks if it works.


Bye for now and thanks to everyone again ツ
 
Status
Not open for further replies.
Top