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

Bladestorm - Damage Per Second

Status
Not open for further replies.
Level 5
Joined
Mar 24, 2020
Messages
80
Hello,

I've been trying to make bladestorm's power be based on the casting hero's agility.

I set the abilities damage using triggers, however the damage still maintains as the same damage before. I have even detected with triggers that the change is definitely made in terms of the ability value being changed. It just doesn't actually reflect that when it's cast.

Any ideas on a fix other than rebuilding the spell fully with triggers?

  • Bladespin
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to The Blademaster - [|cffffcc00Bladestorm|r]
    • Actions
      • Set VariableSet BlademasterAgility[(Player number of (Owner of (Triggering unit)))] = (Agility of Heroes[(Player number of (Owner of (Casting unit)))] (Include bonuses))
      • Ability - Set Ability: (Unit: (Casting unit)'s Ability with Ability Code: (Ability being cast))'s Real Level Field: Damage Per Second ('Oww1') of Level: 0 to (Real(BlademasterAgility[(Player number of (Owner of (Triggering unit)))]))
      • Game - Display to (All players) the text: (String((Ability: (Unit: (Casting unit)'s Ability with Ability Code: (Ability being cast))'s Real Level Field Damage Per Second ('Oww1'), of Level: 0)))
  • [/triggger]
 
Last edited:
Level 12
Joined
Mar 13, 2020
Messages
421
Hello,

I've been trying to make bladestorm's power be based on the casting hero's agility.

I set the abilities damage using triggers, however the damage still maintains as the same damage before. I have even detected with triggers that the change is definitely made in terms of the ability value being changed. It just doesn't actually reflect that when it's cast.

Any ideas on a fix other than rebuilding the spell fully with triggers?

  • Bladespin
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to The Blademaster - [|cffffcc00Bladestorm|r]
    • Actions
      • Set VariableSet BlademasterAgility[(Player number of (Owner of (Triggering unit)))] = (Agility of Heroes[(Player number of (Owner of (Casting unit)))] (Include bonuses))
      • Ability - Set Ability: (Unit: (Casting unit)'s Ability with Ability Code: (Ability being cast))'s Real Level Field: Damage Per Second ('Oww1') of Level: 0 to (Real(BlademasterAgility[(Player number of (Owner of (Triggering unit)))]))
      • Game - Display to (All players) the text: (String((Ability: (Unit: (Casting unit)'s Ability with Ability Code: (Ability being cast))'s Real Level Field Damage Per Second ('Oww1'), of Level: 0)))
  • [/triggger]

Ye there some real fields that doesn’t work

like rejuvenation
Healing Spray
Or fan of knives or this one Whirlewind...

I did it based on Thunderclap but the terrain deformation sucks... maybe you can use the old way with unit groups for this one and a timed Trigger that activates

event
Evry 1 second
Variablecount = Variablecount + 1
Variable temp point Unit
Variable group pick all Units in range 300 of Blademaster
And then just loop the damage to each unit
And remove group and location leaks...
If Variablecount equal to 5
Turn off trigger
Set Variablecount = 0
 
I'm not sure if it's present in GUI, but you can use the following functions:

JASS:
call IncUnitAbilityLevel(unit, abilID)
call DecUnitAbilityLevel(unit, abilID)

Substitute the unit field with the caster, and abilID with the rawcode of your Bladestorm ability (Ctrl + D). Call these functions at the moment when the Bladestorm damage is modified (e.g. upon cast in your case)
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,534
  • Example
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Bladestorm
    • Actions
      • Ability - Set Ability: (Unit: (Triggering unit)'s Ability with Ability Code: (Ability being cast))'s Real Level Field: Damage Per Second ('Oww1') of Level: ((Level of (Ability being cast) for (Triggering unit)) - 1) to 99999.00
      • Unit - Increase level of (Ability being cast) for (Triggering unit)
      • Unit - Decrease level of (Ability being cast) for (Triggering unit)
You don't need to give Bladestorm an additional level in the Object Editor for this to work.
 
Last edited:
Status
Not open for further replies.
Top