need help for detect

mute

New Member
Reaction score
2
could someone help me for detect dmg and heal , and i want change color like :
damage taken by red color .
damage delt by white .
heal done on target by green .
 

keychup

Active Member
Reaction score
34
To detect damage try looking for Weep's GUI-friendly Damage Detector.
As for healing, simply add a function to the triggers of your healing spell to also notify the healer and the healed.
 

WolfieeifloW

WEHZ Helper
Reaction score
372
I think he means he wants floating text over the targets, with each different source of damage/heal being a different color.

You would need some sort of damage detection system;
And then you would need to trigger floating text for each different type of thing.
 

mute

New Member
Reaction score
2
there is no 1 trigger jass for this all :D ?
and plz explain more what do u mean .
 

keychup

Active Member
Reaction score
34
The damage detector can do just that. It includes a function which triggers the detection of how much damage was received by a unit, and also detects which unit the damage comes from. If you use that function you can convert the damage amount to an integer, convert the integer to a string and create the floating text above the damaged unit using the string.

Any heals can be detected via the trigger that caused a heal.
For example: A single target spell that heals the target by 50% of its maximum HP.

When you use a trigger for the healing spell you use a formula to calculate how much HP was restored, yes? Just use the same formula of the healing ability to display how much health was restored.
 

WolfieeifloW

WEHZ Helper
Reaction score
372
What if the target doesn't actually get healed for the full 50%?

It would be better to check his life at the start of an ability, then check it at the end.
end hp - start hp = floating text amount.
 

keychup

Active Member
Reaction score
34
But if you check the life at the start then the end, HP regeneration could kick in and make it look like you were healed for more than 50%. Anyway, the only instants when you won't be healed for the full 50% is if you were taking damage with negative values. It would be like Chain Lightning which deals -200 damage, being used on a hero with Runed Bracer, causing him/her to gain 170 HP instead of 200. But a Holy Light that restores 200 HP to a hero with runed bracers heals for the full 200 HP, since it's not damage.
 

WolfieeifloW

WEHZ Helper
Reaction score
372
If you heal 50% of your max HP, you can easily heal over max.
What if you have 75/100 HP.
Healing 50% would heal 50.
125 > 100.

And, in the 0.1 second it takes to run the heal trigger, you might regen an extra.. 0.001 HP :p ?
 

EspadaDelRey

New Member
Reaction score
3
Excessive healing values have been around before in RPG games. No need for precisely showing less of a heal simply because the current HP was unusually high under maximum HP.
 

keychup

Active Member
Reaction score
34
If you heal 50% of your max HP, you can easily heal over max.
What if you have 75/100 HP.
Healing 50% would heal 50.
125 > 100.

And, in the 0.1 second it takes to run the heal trigger, you might regen an extra.. 0.001 HP :p ?

Right. That can easily be worked around ^_^

Trigger:
  • Heal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Heal
    • Actions
      • Set Heal_Real_Amount = (0.50 x (Max life of (Target unit of ability being cast)))
      • Set Heal_Point_Target = (Position of (Target unit of ability being cast))
      • If (Heal_Real_Amount Greater than ((Max life of (Target unit of ability being cast)) - (Life of (Target unit of ability being cast)))) then do (Set Heal_Real_Amount = ((Max life of (Target unit of ability being cast)) - (Life of (Target unit of ability being cast)))) else do (Do nothing)
      • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + Heal_Real_Amount)
      • Floating Text - Create floating text that reads (String((Integer(Heal_Real_Amount)))) at Heal_Point_Target with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 75.00% transparency
      • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
      • Floating Text - Change (Last created floating text): Disable permanence
      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
      • Custom script: call RemoveLocation (udg_Heal_Point_Target)
      • Set Heal_Real_Amount = 0.00


The real value of your HP will always be capped at it's most possible maximum anyway. Maybe it would be nice to see how much HP you "would" have recovered if you hadn't maxed out yet :p

On a side note, I think we should take this down a notch. I don't think mute understands us.

Mute. Download this map. It contains a Damage Detector ad a tutorial on how to use it.
 

Attachments

  • GDD 1.2.0 Demo.w3x
    23.2 KB · Views: 208

WolfieeifloW

WEHZ Helper
Reaction score
372
It's really up the map creator.
I'd, personally, rather show how much the unit actually got healed for.
Code:
set bHP = GetUnitState(GetTargetUnit(), UNIT_STATE_LIFE)
set hp = hp + heal
set aHP = GetUnitState(...)
create floating text = I2S(aHP - bHP)
 
General chit-chat
Help Users

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top