Skill leak help

micolord

You can change this now in User CP.
Reaction score
0
This suppose to do is to block any damage receives, its fine but there's a leak. First damage receives isn't reduce.

Trigger:
  • DS Support I
    • Events
      • Unit - A unit Is attacked
    • Conditions
    • Actions
      • Trigger - Add to Divine Shield <gen> the event (Unit - (Attacked unit) Takes damage)
      • Set Paladin = (Attacked unit)
      • Trigger - Turn off (This trigger)


Trigger:
  • Divine Shield
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Divine Shield (Mico) for Paladin) Equal to 1
        • Then - Actions
          • Unit - Set life of Paladin to ((Life of Paladin) + (0.25 x (Damage taken)))
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Divine Shield (Mico) for Paladin) Equal to 2
            • Then - Actions
              • Unit - Set life of Paladin to ((Life of Paladin) + (0.33 x (Damage taken)))
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Divine Shield (Mico) for Paladin) Equal to 3
                • Then - Actions
                  • Unit - Set life of Paladin to ((Life of Paladin) + (0.40 x (Damage taken)))
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Level of Divine Shield (Mico) for Paladin) Equal to 4
                    • Then - Actions
                      • Unit - Set life of Paladin to ((Life of Paladin) + (0.55 x (Damage taken)))
                    • Else - Actions
                      • Do nothing
 

MP®

Member
Reaction score
11
You'd better use Weeps Damage Detection system (GUI), now you will get for every unit ever created a new event in the trigger, that may cause lag eventually. Or if it's only for the Paladin, you should add conditions to the first trigger.

Then the problem is:
The trigger runs of before the unit actually lost life. So what this trigger does is giving the unit an amount of life before it takes the damage. So when the unit is at full health, it first receives the life (but it's already full) and then takes the damage.

I had this problem once too (for my current map) and I fixed it on this way:

Instead of giving the unit life back, you can block all damage by giving it the Item Greater Health Bonus ability. Set this bonus to like 1000000 (max you can) and then make a countdown timer run at 0.00 seconds, and another trigger that removes the Item Greater Health Bonus when the timer goes off.

On this way the unit will receive NO damage. So if you want it to receive only 75% of damage, then you have to make the Damage Source cause 0.75 x (Damage taken) to the Paladin. You first have to turn off the trigger though, otherwise it will crash :) and after the action turn it on again.
 

jnZ

I
Reaction score
64
Trigger:
  • Divine Shield
    • Events
    • Conditions
    • Actions
      • Unit - Set life of Paladin to ((Life of Paladin) + (0.10 + 0.15 x Real(Level of Divine Shield (Mico) for Paladin)))


#1 don't use the "Do nothing" action, it a useless line of code
#2 i changed your trigger a bit by normalizing the heal value resulting in a much shorter code
#3 in your trigger never were leaks to begin with
#4 the first time the paladin is damaged won't trigger since the event isn't added at that time. is this a hero ability? you might want to register the event when the hero first learns this ability then
 

micolord

You can change this now in User CP.
Reaction score
0
@jnZ

Oh, yeah I will try the learn ability event. I also have another question! It also reduces spell damage, is it possibly to only reduce melee and range attacks?
 

MP®

Member
Reaction score
11
@ jnZ #4

Actually the Paladin is added to the event before he takes damage.. That's not the problem. The problem is what I explained in the previous post.

If you don't understand it, I can make a simple trigger in a couple of hours.. But I'm not home now, so I don't have WE here.
 

micolord

You can change this now in User CP.
Reaction score
0
@MP

HAHAHA! I got your point and your right I didn't understand the method you suggest.
 

jnZ

I
Reaction score
64
what do you mean MP®?
I admit that I am having quiet a hard time understanding this but lets make an example here:

#1 A attacks B

#2 "DS Support I" trigger runs and B is now the Paladin and registered via event in "Divine Shield" trigger (So even though he took damage Trigger 2 won't run since the event just got registered)

---

So what do you mean the paladin is added to the event already?
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
613
The Damage Taken event runs just before the unit's life is reduced. You might want to add a 0.00 second wait to push the heal to the end of that instant's action set.
 

micolord

You can change this now in User CP.
Reaction score
0
@KaerfNomekop

You sir is a genius. Thanks everyone for helping me. It's now working :)
 

MP®

Member
Reaction score
11
what do you mean MP®?
I admit that I am having quiet a hard time understanding this but lets make an example here:

#1 A attacks B

#2 "DS Support I" trigger runs and B is now the Paladin and registered via event in "Divine Shield" trigger (So even though he took damage Trigger 2 won't run since the event just got registered)

---

So what do you mean the paladin is added to the event already?
The attack trigger runs way before the take damage trigger, when A attacks B, the event will be added before B takes damage. So the trigger WILL run.

The Damage Taken event runs just before the unit's life is reduced. You might want to add a 0.00 second wait to push the heal to the end of that instant's action set.
Yeah a wait might help as wel.. same idea as the timer of 0.00.
@KaerfNomekop

You sir is a genius. Thanks everyone for helping me. It's now working :)
np :)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top