• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Effects on Armor

Status
Not open for further replies.
Level 2
Joined
Aug 10, 2013
Messages
23
Is there a way to make a certain ability affect each type of armor differently?
I intend to make a skill resembling the Mountain King's Bash, only it has a different effect on the different armor types and its not used by a hero.

How do I make it so it gives the next effects?
-on Unarmored units, 33% chance to cause 300 damage and 4 seconds of Stun.
-on lightly armored units (small and medium armor), 33% chance to cause cause 200 damage , slows attack speed by 60% and move speed by 50% for 3.5 seconds
-on armored units ( Heavy, hero armor) 33% chance to cause cause 100 damage , dispells positive buffs
-on Fortified units, 33% chance to lower armor by 5 for 2 seconds and deals 250 damage
- On units with Divine armor, cause a 1 second stun but deals only 20 damage.


Hmm?
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
Is there a way to make a certain ability affect each type of armor differently?
I intend to make a skill resembling the Mountain King's Bash, only it has a different effect on the different armor types and its not used by a hero.

How do I make it so it gives the next effects?
-on Unarmored units, 33% chance to cause 300 damage and 4 seconds of Stun.
-on lightly armored units (small and medium armor), 33% chance to cause cause 200 damage , slows attack speed by 60% and move speed by 50% for 3.5 seconds
-on armored units ( Heavy, hero armor) 33% chance to cause cause 100 damage , dispells positive buffs
-on Fortified units, 33% chance to lower armor by 5 for 2 seconds and deals 250 damage
- On units with Divine armor, cause a 1 second stun but deals only 20 damage.


Hmm?

This is a bit more complicated than it would seem for a few reasons.

Firstly: You can't check for armor type(even with triggers)
Secondly: Many stats, like attack speed, can not be directly modified.

Due to this, it seems absolutely necessary to trigger the whole ability and its effects.
You can store the "armor types" of different units in an array, which can be tedious, but I know no better way. This does have the benefit of having custom armor types though.
This will give you a way to check what armor type each unit has.

The second part requires a bonusmod (system for modifying stats) and possibly a custom buff system.

Overall, it's so complicated that I couldn't even do it very well myself yet. (working on the buff system part and it's a pain)
 
Level 11
Joined
Nov 15, 2007
Messages
800
This whole ability would have to be triggered and utilize a few different systems. The first is a damage detection system to accurately register when a unit is actually hit by the hero with this ability. The buff placement would require using disabled spellbooks with negative auras to create buffs (or the far less versatile method of just using a dummy unit to cast slow and acid bomb - not ideal because these abilities will not stack, while different auras will, allowing for endless applications of different slowing and armor reducing buffs).

As for the armor type detection, I'd like to put forward a little workaround of my own that might help. The way I've used to get around problems with untraceable classifications, like armor type, is to use the point value of units as a limited variable array. By shift clicking it you get up to 8 digits between 0 and 9 which gives you a lot of wiggle room for specifying some extra values. This is also pretty useful for inventory systems using item levels.

Of course for your purposes you just need the one value, I'm just putting that up there in case you ever find yourself in a situation where you need to track another untraceable value (which I do all the time). To execute the proper effect, you simply set the point value of the unit to 1 for unarmored, 2 for light, 3 for heavy, etc., and use the integer (Point-value of (Triggering unit)) in an array (if you're using more than one digit of the point value, this would require a slightly different approach).

Then, you run a trigger defined in the array variable. I.E., unarmored units would return 1, lightly armored units 2, armored units 3, etc. - so you'd run ArmorBash[Integer] which corresponds to the trigger holding the effects of each variant of the ability.

If you need to know exactly how to do all of this, you'll probably want to create a thread in the Triggers & Scripts section because it'll contain a lot of triggers.
 
Level 2
Joined
Aug 10, 2013
Messages
23
@ Xonok : well, then I think i'll just have to scratch my idea away and get new ideas. There's more where that came from anyway.

@ Meticulous: umm.... you lost me at "buff placement"
 
Level 11
Joined
Nov 15, 2007
Messages
800
@ Xonok : well, then I think i'll just have to scratch my idea away and get new ideas. There's more where that came from anyway.

@ Meticulous: umm.... you lost me at "buff placement"

Buff placement, I.E. applying a buff (or I suppose debuff, but it's the same thing in WC3 terms) to decrease armor, or attack/movement speed. You'd use Devotion Aura with the armor "bonus" set to -5, ditto with Endurance Aura for the attack/movement speed.

I think you'll find that if you aren't ready to go the extra mile and get inventive to make stuff happen, a lot of your ideas are going to go nowhere.
 
The effects could easily be triggered, the only thing you really need to decide is how would you detect armor type? You could always make an array for each unit-type to save maybe an integer corresponding to an armor type...

like 0 would be unarmored, 1 would be heavy, and so on...

then to do all these, you will first implement a DDS to detect the damage event, then proceed with triggering the bash effects
 
Status
Not open for further replies.
Top