HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Some Questions

12-31-2007, 01:29 PM#1
zetanno
I searched in WE to find some abilities that reduce the damage made by attacks and spells . First Question : I've found Hardened Skin that reduce damage by x . Is there any ability that can reduce damage by x% ? Second Question : I've also found Spell Damage Reduction that reduce damage made by spells with x% . Can i find or create an ability that only reduce damage made by certain spells ?
12-31-2007, 01:35 PM#2
Tide-Arc Ephemera
1. I think Spiked Carapace can reduce damage by percentages.
2. No, you'll need to trigger spell detection.
12-31-2007, 02:03 PM#3
rain9441
Spiked carapace only works vs Melee though, the % reduction (if i recall correctly). You can use defend (activateable) or elune's grace I think... But that might only work for piercing...

If you REALLY want to reduce damage by a % from attacks you can raise armor. The formula is something like 1 armor = 6% more effective health, so it results in 1 armor = 6/106 damage reduction (5.6% reduction). The problem is it has diminishing returns...

The hardened skin could also be used mathematically to reduce damage done by a % as well. A 5% chance to reduce damage by 1000000 would yield 5% less damage. 50% chance to reduce damage by 1000000 would yield 50% damage reduction.

One more alternative is evasion.

Or Mana shield? absorb 50% of the damage using 0 mana per life absorbed?

Lastly, you could trigger it. When specific unit takes damage and has the damage reduction dummy ability, then 'heal' the unit just before it takes damage (set widget life). You won't be able to differentiate attacks from magical spells though.
12-31-2007, 02:07 PM#4
Tide-Arc Ephemera
Your solution to the second question is flawed. What if the spell is dealing more damage than the unit has hit points?

EDIT!

I believe the armor formula is something ridiculous along the lines of...
(armor*multiplier)/(1+armor*multiplier) = reduction

Code:
e.g
armor = 2
multiplier = 6
(2*6)/(1+2*6) = 12 / 13
              = 11
12-31-2007, 02:14 PM#5
Captain Griffen
Tide-Arc - then you have to do some trigger little jassing with a bonus health ability and a timer. Very do-able, though. Also, you need to use a timer if the damage is less than the difference between max and current hp.
12-31-2007, 02:22 PM#6
Tide-Arc Ephemera
I believe Zetanno uses GUI, if I recall correctly he asked for help with GUI triggers.

Unimportant edit which is off topic
It happened for me roughly 2 hours ago, but who cares.
HAPPY NEW YEAR!
01-01-2008, 09:30 AM#7
zetanno
Tide-Arc is right . I'm not good in using jass ... that's my problem
01-01-2008, 10:26 AM#8
Pyrogasm
Still not that hard...
Trigger:
Timer Expire
Collapse Events
Time - Your_Timer expires
Conditions
Collapse Actions
Unit - Set life of Your_Unit to ((Life of Your_Unit) + Damage)
And then have this in the trigger that detects when the damage is taken and should be avoided:
Trigger:
Actions
----- - -----
Set Damage = (Damage taken)
Set Your_Unit = (Triggering unit)
Countdown Timer - Start Your_Timer as a One-shot timer that will expire in 0.00 seconds
01-01-2008, 10:45 AM#9
Ammorth
will this still work if the blow dealt is a killing blow(exceeds health remaining)?
01-01-2008, 10:58 AM#10
Tide-Arc Ephemera
What if...

Spell Block = 200 damage
Spell Damage = 200 damage
Unit HP = 50

So it would set the unit's hit points to 200, but it can't exceed 50 so it would set it to 50, then the 200 damage would be dealt.

So basically, what happens if the spell damage is lethal but not meant to kill the unit?
01-01-2008, 04:56 PM#11
TaintedReality
Then add a +health item ability before the timer, and remove it afterwards, to make sure that he doesn't die.
01-01-2008, 10:23 PM#12
Pyrogasm
No, no, no. The method with the 0.00 second timeout timer will work. Even if the unit takes an infinite amount of damage (as long as all of it should be bocked). You may have to alter the shield's life depending on the max life of the unit, but other than that the damage will be blocked properly.
01-02-2008, 01:02 AM#13
Tide-Arc Ephemera
Either I'm misunderstanding you or something, but "Set unit life" doesn't change maximum hit points, it changes current hit points.

Tainted Reality's solution would probably work, if done correctly, though.
01-02-2008, 12:23 PM#14
Captain Griffen
Quote:
Originally Posted by Pyrogasm
No, no, no. The method with the 0.00 second timeout timer will work. Even if the unit takes an infinite amount of damage (as long as all of it should be bocked). You may have to alter the shield's life depending on the max life of the unit, but other than that the damage will be blocked properly.

It will take the damage, die, and then you'll add health to it. A bit late, since that doesn't resurrect the dead.
01-02-2008, 06:40 PM#15
Pyrogasm
Quote:
Originally Posted by Captain Griffen
It will take the damage, die, and then you'll add health to it. A bit late, since that doesn't resurrect the dead.
...

The timer method works. I guarantee it. Daelin did it for Martyrism in his Scarlet Crusader hero for the Hero Contest. And it works for shield spells of all types.

I'll test it if it works in GUI if you want...