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

[Spell] Detect Bladestorm

Status
Not open for further replies.
Well, basically I'm using Bride's Damage Detection system and Knockback 3D by Jad aka DotCa and T.D.W.

Issue:
Anyway, I've tried to make a bladestorm that knockbacks units, and need to detect if the unit is in bladestorm "mode" while dealing damage. This is the trigger I've tried the following:

(You can basically ignore all the actions, this thing dosen't go off at all, which means the conditions is the issue)
  • Whirlwind
    • Events
      • Game - AfterDamageEvent becomes Equal to 1.00
    • Conditions
      • (DamageEventSource has buff Bladestorm (Caster)) Equal to True
      • (DamageEventTarget is A structure) Equal to False
      • (DamageEventTarget is A flying unit) Equal to False
      • (DamageEventTarget is Mechanical) Equal to False
      • (DamageEventTarget is An Ancient) Equal to False
      • (DamageEventTarget is Magic Immune) Equal to False
    • Actions
      • Custom script: local real dmg = 25 - 100 + ( 100 * I2R(GetUnitAbilityLevel(udg_DamageEventSource, 'A006')) + ( 2.00 * I2R(GetHeroStr(udg_DamageEventSource, true))))
      • Custom script: call UnitDamageTarget(udg_DamageEventSource, udg_DamageEventTarget, dmg, true, false, ATTACK_TYPE_MELEE, DAMAGE_TYPE_FORCE, WEAPON_TYPE_WHOKNOWS)
      • Trigger - Run ClearDamageEvent (checking conditions)
      • Set KB3D_Unit = DamageEventTarget
      • Set KB3D_Range = -300.00
      • Set KB3D_Speed = 500.00
      • Set KB3D_Angle = (Angle from (Position of DamageEventTarget) to (Position of DamageEventSource))
      • Set KB3D_EndFx = <Empty String>
      • Set KB3D_AoEEndDamage = 0.00
      • Set KB3D_AoEKB = False
      • Set KB3D_AoEKB_Power = 1.00
      • Set KB3D_EndwhenDead = False
      • Set KB3D_KBTarget = False
      • Set KB3D_StopTime = 0.00
      • Set KB3D_KillatEnd = False
      • Set KB3D_KillatTime = 0.00
      • Set KB3D_Accel = -300.00
      • Set KB3D_AllowOutSiding = False
      • Set KB3D_Angle = (Angle from (Position of DamageEventTarget) to (Position of DamageEventSource))
      • Set KB3D_AoE = 0.00
      • Set KB3D_AoEDamage = 0.00
      • Set KB3D_AttackType = Normal
      • Set KB3D_DamageType = Magic
      • Set KB3D_Damager = DamageEventSource
      • Set KB3D_DestroyTree = True
      • Set KB3D_DisableUnit = False
      • Set KB3D_EndWhenHit = False
      • Set KB3D_FaceAngle = False
      • Set KB3D_Fx = Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
      • Set KB3D_Attach = origin
      • Set KB3D_iKB = True
      • Set KB3D_KillWhenHit = False
      • Set KB3D_KillifOutSider = False
      • Set KB3D_Targeted_Unit = No unit
      • Set KB3D_TrailFx = <Empty String>
      • Set KB3D_UnpathableStop = True
      • Set KB3D_Zoffset = 0.00
      • Custom script: call ExecuteFunc( "KB3D_Registration" )
But it fails. My guts says it is because it can't detect the "Bladestorm (Caster)" buff, because it is one of the invisible caster buffs.
 
Level 12
Joined
Jan 2, 2016
Messages
973
It would be even easier with a unit group. That way it will be MUI, without a need for indexing.
When a unit starts casting bladestorm - add it to unit group, and in the conditions put "damage source is in unit group ...".
I'm not 100% sure if bladestorm is considered a "channeling spell" thus I don't really know if "a unit stops casting an ability" will work as an end event...
If it doesn't work with this event, perhaps try to start a timer: set the timer time to the bladestorm duration, and remove the unit from the unit group when the timer is over.
 
Level 7
Joined
Nov 19, 2015
Messages
283
I know the Orc bladestorm (caster) buff has no icon but have you checked that units don't have that buff and is perhaps just hidden.
 
Status
Not open for further replies.
Top