• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Spin of Blades Help.

Status
Not open for further replies.
Level 6
Joined
Jul 18, 2009
Messages
200
This is my stupid spell Spin of Blades. It's like DotA's Counter Helix, which is a passive ability that makes the "caster" to spin around dealing damage.

I used GDD for it cause someone told me to. But i wont get it work.


  • Spin of Blades
    • Events
      • Game - GDD_Event becomes Equal to 0.00
    • Conditions
      • (SoB_Caster has buff Blade Spin ) Equal to True
    • Actions
      • Set SoB_Target = (Picked unit)
      • Set SoB_Caster = GDD_DamagedUnit
      • Set SoB_Point = (Position of SoB_Caster)
      • Set SoB_Chance = (10.00 x (Real((Level of Blade Spin for SoB_Caster))))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
        • Then - Actions
          • Set SoB_Group = (Units within (70.00 x (Real((Level of Blade Spin for SoB_Caster)))) of SoB_Point matching ((((Matching unit) is A structure) Equal to False) and (((SoB_Target belongs to an enemy of SoB_CasterOwner) Equal to True) and ((((Matching unit) is Magic Immune) Equ
          • Unit Group - Pick every unit in SoB_Group and do (Actions)
            • Loop - Actions
              • Unit - Cause SoB_Caster to damage SoB_Target, dealing ((Real((Agility of SoB_Caster (Include bonuses)))) x (3.00 + ((Real((Level of Blade Spin for SoB_Caster))) x (Random real number between 0.50 and 2.00)))) damage of attack type Spells and damage type Normal
              • Animation - Play SoB_Caster's Spin animation
              • Special Effect - Create a special effect attached to the origin of SoB_Target using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
              • Special Effect - Destroy (Last created special effect)
        • Else - Actions
      • Animation - Reset SoB_Caster's animation
      • Custom script: call RemoveLocation(udg_SoB_Point)
      • Custom script: call DestroyGroup(udg_SoB_Group)
      • Custom script: set udg_SoB_Caster = null
      • Custom script: set udg_SoB_Target = null
      • Custom script: set udg_SoB_CasterOwner = null
 
You should have a damage detection system first of all
  • Trigger1
  • Events
    • Map Initialization
  • Conditions
  • Actions
    • Custom script: set bj_wantDestroyGroup = true
    • Unit Group - Pick every unit in (Units in (Playable Map Area)) and do (Actions)
      • Loop - Actions
        • Trigger - Add to Trigger 3 <gen> the event ((Picked unit) takes damage)
  • Trigger2
  • Events
    • Unit - A unit enters (Playable Map Area)
  • Conditions
  • Actions
    • Trigger - Add to Trigger 3 <gen> the event ((Triggering unit) takes damage)
  • Trigger3
  • Events
  • Conditions
    • (Level of Spin of Blades for (Triggering unit)) Greater than 0
  • Actions
    • //Actions here (the trigger you posted)
 
Level 6
Joined
Jul 18, 2009
Messages
200
It doesnt work.

  • Spin Of Blades 3
    • Events
      • Unit - A unit enters (Playable map area)
    • Conditions
    • Actions
      • Trigger - Add to Spin of Blades <gen> the event (Unit - (Triggering unit) Takes damage)
  • Spin of Blades 2
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        • Loop - Actions
          • Trigger - Add to Spin of Blades <gen> the event (Unit - (Picked unit) Takes damage)
  • Spin of Blades
    • Events
    • Conditions
      • (SoB_Caster has buff Blade Spin ) Equal to True
    • Actions
      • Set SoB_Target = (Picked unit)
      • Set SoB_Caster = GDD_DamagedUnit
      • Set SoB_Point = (Position of SoB_Caster)
      • Set SoB_Chance = (10.00 x (Real((Level of Blade Spin for SoB_Caster))))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Blade Spin for SoB_Caster) Equal to 1
        • Then - Actions
          • Set SoB_Group = (Units within (70.00 x (Real((Level of Blade Spin for SoB_Caster)))) of SoB_Point matching ((((Matching unit) is A structure) Equal to False) and (((SoB_Target belongs to an enemy of SoB_CasterOwner) Equal to True) and ((((Matching unit) is Magic Immune) Equ
          • Unit Group - Pick every unit in SoB_Group and do (Actions)
            • Loop - Actions
              • Unit - Cause SoB_Caster to damage SoB_Target, dealing ((Real((Agility of SoB_Caster (Include bonuses)))) x (3.00 + ((Real((Level of Blade Spin for SoB_Caster))) x (Random real number between 0.50 and 2.00)))) damage of attack type Spells and damage type Normal
              • Animation - Play SoB_Caster's Spin animation
              • Special Effect - Create a special effect attached to the origin of SoB_Target using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
              • Special Effect - Destroy (Last created special effect)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Blade Spin for SoB_Caster) Equal to 2
        • Then - Actions
          • Set SoB_Group = (Units within (70.00 x (Real((Level of Blade Spin for SoB_Caster)))) of SoB_Point matching ((((Matching unit) is A structure) Equal to False) and (((SoB_Target belongs to an enemy of SoB_CasterOwner) Equal to True) and ((((Matching unit) is Magic Immune) Equ
          • Unit Group - Pick every unit in SoB_Group and do (Actions)
            • Loop - Actions
              • Unit - Cause SoB_Caster to damage SoB_Target, dealing ((Real((Agility of SoB_Caster (Include bonuses)))) x (4.00 + ((Real((Level of Blade Spin for SoB_Caster))) x (Random real number between 1.00 and 3.00)))) damage of attack type Spells and damage type Normal
              • Animation - Play SoB_Caster's Spin animation
              • Special Effect - Create a special effect attached to the origin of SoB_Target using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
              • Special Effect - Destroy (Last created special effect)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Blade Spin for SoB_Caster) Equal to 3
        • Then - Actions
          • Set SoB_Group = (Units within (70.00 x (Real((Level of Blade Spin for SoB_Caster)))) of SoB_Point matching ((((Matching unit) is A structure) Equal to False) and (((SoB_Target belongs to an enemy of SoB_CasterOwner) Equal to True) and ((((Matching unit) is Magic Immune) Equ
          • Unit Group - Pick every unit in SoB_Group and do (Actions)
            • Loop - Actions
              • Unit - Cause SoB_Caster to damage SoB_Target, dealing ((Real((Agility of SoB_Caster (Include bonuses)))) x (5.00 + ((Real((Level of Blade Spin for SoB_Caster))) x (Random real number between 1.50 and 4.00)))) damage of attack type Spells and damage type Normal
              • Animation - Play SoB_Caster's Spin animation
              • Special Effect - Create a special effect attached to the origin of SoB_Target using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
              • Special Effect - Destroy (Last created special effect)
        • Else - Actions
      • Animation - Reset SoB_Caster's animation
      • Custom script: call RemoveLocation(udg_SoB_Point)
      • Custom script: call DestroyGroup(udg_SoB_Group)
      • Custom script: set udg_SoB_Caster = null
      • Custom script: set udg_SoB_Target = null
      • Custom script: set udg_SoB_CasterOwner = null
 
Level 28
Joined
Jan 26, 2007
Messages
4,789
Pharaoh: GDD is a damage detection system (and far better than the ones you can create with GUI).

Anyway: SoB_Target = picked unit? That returns null, since there is no picked unit (it's only used in unit groups).
If you want the unit that attacks your GDD_DamagedUnit, then you should pick "Damage Source" (which will return the attacking unit).
  • Set SoB_Target = (Damage Source)
There are unit group leaks as well, try to fix those.

Edit: wait... that makes no sense xD
Sob_Target is the attacked unit?

  • Set SoB_Target = GDD_DamagedUnit // This will return the attacked unit.
  • Set SoB_Caster = GDD_DamagedSource // This will return the attacker.
 
Level 6
Joined
Jul 18, 2009
Messages
200
Pharaoh: GDD is a damage detection system (and far better than the ones you can create with GUI).

Anyway: SoB_Target = picked unit? That returns null, since there is no picked unit (it's only used in unit groups).
If you want the unit that attacks your GDD_DamagedUnit, then you should pick "Damage Source" (which will return the attacking unit).
  • Set SoB_Target = (Damage Source)
There are unit group leaks as well, try to fix those.

Edit: wait... that makes no sense xD
Sob_Target is the attacked unit?

  • Set SoB_Target = GDD_DamagedUnit // This will return the attacked unit.
  • Set SoB_Caster = GDD_DamagedSource // This will return the attacker.

That one doesnt work.
 
Level 28
Joined
Jan 26, 2007
Messages
4,789
That one doesnt work.
Can you please send the map? That's the only thing I can spot at first sight.
If you don't want to send it, try checking the units with game messages (after the setup, check which units "SoB_Target" and "SoB_Caster" are).
If those values are correct, then we can move on and put some more game message in some places ^^ (like a game message right before the unit group, one in the unit group etc - this way you can clearly spot where it is failing).

Remember that method (game messages at 'smart' locations), it's one of the best methods for analyzing where a problem is ^^
So instead of just saying "doesn't work, try again", you can actually do something yourself as well.
 
Level 6
Joined
Mar 22, 2009
Messages
276
i think it is much better if you make your spell simple.
you can just create a dummy unit that will cast bladestorm when the skill triggered.
just a thought.
 
Status
Not open for further replies.
Top