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

Same Base Ability (Stormbolt)

Status
Not open for further replies.
Level 4
Joined
Nov 25, 2013
Messages
132
i'm making a spell based on storm bolt and it's finished, my problem is i'm trying to make another spell based on storm bolt but when i cast the other it also casts the other spell, how could i fix this? i'm planning to use channel and set the ID to storm bolt also but i have doubts that it would end the same way.
 
Last edited by a moderator:
Level 13
Joined
Mar 24, 2013
Messages
1,105
You can have 1 of the based on storm bolt, the other one you need to use a different base ability. Preferably channel. Then you just have a dummy created on cast that will stun with the duration you want.
 
Level 4
Joined
Nov 25, 2013
Messages
132
You can have 1 of the based on storm bolt, the other one you need to use a different base ability. Preferably channel. Then you just have a dummy created on cast that will stun with the duration you want.

oh, so channel is the only spell that stacks when used to make triggered spells? thanks for the help master.
 
Level 4
Joined
Nov 25, 2013
Messages
132
No this is not the case.
All spells can stack but not 2 made from the same base spell.

Channel is one of the only spells to allow multiple base ids that the user can change.

oh so mean to say that when i base my spell on storm bolt and made another spell based on channel but the id is still the same, then it still be cast simultaneously?
 
Level 4
Joined
Nov 25, 2013
Messages
132
really? thats your idea of a good title for a thread about spell making?

Please read this: http://www.hiveworkshop.com/forums/site-discussion-97/suggestion-sanctions-meaningless-thread-titles-242081/

i'm sorry about the title but i thought it would be disrespectful if you ask for help without greeting first.

i have another problem regarding triggers, i'm recreating the cleave spell for barbarian but i stumble upon some bugs or leaks that i couldn't fix. here's the trigger and please point whats wrong. When i cast it the first hit doesn't work but when i cast it the second time it works, also the mana is multiplied by the number of picked units.

  • Cleave
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Cleave
    • Actions
      • Set Cleave_Unit = (Triggering unit)
      • Set Cleave_AttackType = Hero
      • Set Cleave_DamageType = Universal
      • Set Cleave_UnitGroup = (Units within 130.00 of Cleave_Point)
      • Set Cleave_Point = ((Position of Cleave_Unit) offset by 120.00 towards (Facing of Cleave_Unit) degrees)
      • Set Cleave_Damage = (25 x (Level of Cleave for Cleave_Unit))
      • Unit Group - Pick every unit in Cleave_UnitGroup and do (Actions)
        • Loop - Actions
          • Set Cleave_Unit1 = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Cleave_Unit1 belongs to an enemy of (Owner of Cleave_Unit)) Equal to True
              • (Cleave_Unit1 is A structure) Equal to False
              • (Cleave_Unit1 is alive) Equal to True
            • Then - Actions
              • Set Cleave_Point2 = (Position of Cleave_Unit1)
              • Unit - Cause Cleave_Unit to damage Cleave_Unit1, dealing (Real(Cleave_Damage)) damage of attack type Cleave_AttackType and damage type Cleave_DamageType
              • Floating Text - Create floating text that reads (|cFFE1231D + ((String(Cleave_Damage)) + |r)) at Cleave_Point2 with Z offset 0.00, using font size 8.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • Floating Text - Change the fading age of (Last created floating text) to 1.50 seconds
              • Floating Text - Set the velocity of (Last created floating text) to 70.00 towards 90.00 degrees
              • Custom script: call RemoveLocation(udg_Cleave_Point2)
              • Unit - Set mana of Cleave_Unit to ((Mana of Cleave_Unit) + 5.00)
              • Custom script: call DestroyGroup(udg_Cleave_UnitGroup)
            • Else - Actions
 
Level 13
Joined
Mar 24, 2013
Messages
1,105
Set Cleave Point before Cleave Group.

Also Cleave Point leaks right now, you need to save (Position of Cleave Unit) into a variable and clear it at the end.

You also destroy the group after the first time it enters the IF, put it outside the group loop not inside it.


  • Cleave
  • Events
  • Unit - A unit Starts the effect of an ability
  • Conditions
  • (Ability being cast) Equal to Cleave
  • Actions
  • Set Cleave_Unit = (Triggering unit)
  • Set Cleave_AttackType = Hero // If these are constants set them elsewhere or just put them directly in the damage function
  • Set Cleave_DamageType = Universal //
  • Set TempPoint = Position of Cleave Unit
  • Set Cleave_Point = TempPoint offset by 120.00 towards (Facing of Cleave_Unit) degrees)
  • Set Cleave_UnitGroup = (Units within 130.00 of Cleave_Point)
    • Set Cleave_Damage = (25 x (Level of Cleave for Cleave_Unit))
    • Unit Group - Pick every unit in Cleave_UnitGroup and do (Actions)
    • Loop - Actions
    • Set Cleave_Unit1 = (Picked unit)
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
    • (Cleave_Unit1 belongs to an enemy of (Owner of Cleave_Unit)) Equal to True
    • (Cleave_Unit1 is A structure) Equal to False
    • (Cleave_Unit1 is alive) Equal to True
    • Then - Actions
    • Set Cleave_Point2 = (Position of Cleave_Unit1)
    • Unit - Cause Cleave_Unit to damage Cleave_Unit1, dealing (Real(Cleave_Damage)) damage of attack type Cleave_AttackType and damage type Cleave_DamageType
    • Floating Text - Create floating text that reads (|cFFE1231D + ((String(Cleave_Damage)) + |r)) at Cleave_Point2 with Z offset 0.00, using font size 8.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
    • Floating Text - Change (Last created floating text): Disable permanence
    • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
    • Floating Text - Change the fading age of (Last created floating text) to 1.50 seconds
    • Floating Text - Set the velocity of (Last created floating text) to 70.00 towards 90.00 degrees
    • Custom script: call RemoveLocation(udg_Cleave_Point2)
    • Unit - Set mana of Cleave_Unit to ((Mana of Cleave_Unit) + 5.00)
    • Custom script: call DestroyGroup(udg_Cleave_UnitGroup)
    • Custom script: call RemoveLocation(udg_Cleave_Point)
  • etc etc. All of them
 
Level 4
Joined
Nov 25, 2013
Messages
132
Set Cleave Point before Cleave Group.

Also Cleave Point leaks right now, you need to save (Position of Cleave Unit) into a variable and clear it at the end.

You also destroy the group after the first time it enters the IF, put it outside the group loop not inside it.


  • Cleave
  • Events
  • Unit - A unit Starts the effect of an ability
  • Conditions
  • (Ability being cast) Equal to Cleave
  • Actions
  • Set Cleave_Unit = (Triggering unit)
  • Set Cleave_AttackType = Hero // If these are constants set them elsewhere or just put them directly in the damage function
  • Set Cleave_DamageType = Universal //
  • Set TempPoint = Position of Cleave Unit
  • Set Cleave_Point = TempPoint offset by 120.00 towards (Facing of Cleave_Unit) degrees)
  • Set Cleave_UnitGroup = (Units within 130.00 of Cleave_Point)
    • Set Cleave_Damage = (25 x (Level of Cleave for Cleave_Unit))
    • Unit Group - Pick every unit in Cleave_UnitGroup and do (Actions)
    • Loop - Actions
    • Set Cleave_Unit1 = (Picked unit)
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
    • (Cleave_Unit1 belongs to an enemy of (Owner of Cleave_Unit)) Equal to True
    • (Cleave_Unit1 is A structure) Equal to False
    • (Cleave_Unit1 is alive) Equal to True
    • Then - Actions
    • Set Cleave_Point2 = (Position of Cleave_Unit1)
    • Unit - Cause Cleave_Unit to damage Cleave_Unit1, dealing (Real(Cleave_Damage)) damage of attack type Cleave_AttackType and damage type Cleave_DamageType
    • Floating Text - Create floating text that reads (|cFFE1231D + ((String(Cleave_Damage)) + |r)) at Cleave_Point2 with Z offset 0.00, using font size 8.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
    • Floating Text - Change (Last created floating text): Disable permanence
    • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
    • Floating Text - Change the fading age of (Last created floating text) to 1.50 seconds
    • Floating Text - Set the velocity of (Last created floating text) to 70.00 towards 90.00 degrees
    • Custom script: call RemoveLocation(udg_Cleave_Point2)
    • Unit - Set mana of Cleave_Unit to ((Mana of Cleave_Unit) + 5.00)
    • Custom script: call DestroyGroup(udg_Cleave_UnitGroup)
    • Custom script: call RemoveLocation(udg_Cleave_Point)
  • etc etc. All of them

thanks for the help mate, it worked perfect this time. +rep! now the only problem are the whirlwind and earthquake skills.
 
Status
Not open for further replies.
Top