Lightning Warrior Ability

Kalder

New Member
Reaction score
1
Multi-Hook Ability Help

Ok, so im making an ORPG and one of the classes is going to be a Tech warrior. I am making a spell called Static Cling and it acts similarly to pudges meat hook spell in dota except its chain lightning based and pulls multiple targets instead of one. How can i get this to work because the move target of ability being cast only pulls the first target. How can i get this to work and thank you for any help given. :)
 

Kalder

New Member
Reaction score
1
ok

how do i do that but for now here

Trigger:
  • Untitled Trigger 002
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Static Cling
    • Actions
      • Unit - Move (Target unit of ability being cast) instantly to (Position of (Triggering unit))
 

Pritrostell

New Member
Reaction score
1
just throwing this out there, you could create a small region off the side of the map, and have it center on the target of your ability

then instantly move all units in region to point of casting unit

could be slightly flawed if you use units to make buildings, trees, etc. but otherwise should do what you want.

EDIT:

Trigger:
  • Untitled Trigger 002
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Animate Dead
    • Actions
      • Region - Center Region 000 <gen> on (Target point of ability being cast)
      • Unit Group - Pick every unit in (Units in Region 000 <gen>) and do (Actions)
        • Loop - Actions
          • Unit - Move (Triggering unit) instantly to (Position of (Casting unit))


just instead of animate dead make it your static cling
 

ShadowInTheD

Active Member
Reaction score
12
There are probably a lot of ways to do this.. You could put a buff on the unit whenever it gets hit by the spell, and then all the units with that buff gets pulled toward caster. You could throw all the units that were hit by the chain in a group and pull the whole group toward the caster. But you can't use "Target of spell being cast" because your target is only the unit that you click on, not all that have been hit.
 

Kalder

New Member
Reaction score
1
how...?

There are probably a lot of ways to do this.. You could put a buff on the unit whenever it gets hit by the spell, and then all the units with that buff gets pulled toward caster. You could throw all the units that were hit by the chain in a group and pull the whole group toward the caster. But you can't use "Target of spell being cast" because your target is only the unit that you click on, not all that have been hit.

These are good ideas but how would i create the "You could put a buff on the unit whenever it gets hit by the spell, and then all the units with that buff gets pulled toward caster." trigger.
Thanks :confused:
 

ShadowInTheD

Active Member
Reaction score
12
Actually, I don't know how you would add the buffs, thought you could, hmmmmm. Nor do I think you can put them in a group. Another way to do it would be to base the spell off something like stormbolt and get random targets and pull those picked targets toward caster.
 

Kalder

New Member
Reaction score
1
i see...

Actually, I don't know how you would add the buffs, thought you could, hmmmmm. Nor do I think you can put them in a group. Another way to do it would be to base the spell off something like stormbolt and get random targets and pull those picked targets toward caster.
I meant to say i know how to get the buff on the units being hit but how do i get it to pull the buffed units
 

ShadowInTheD

Active Member
Reaction score
12
So this is what I came up with:

Trigger:
  • Chain Pull
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Storm Bolt
    • Actions
      • Set hitUnit[1] = (Target unit of ability being cast)
      • Set Spell_Pivot = (Position of (Targeted unit))
      • Set TempGroup = (Units within 500.00 of Spell_Pivot matching (((Triggering player) is an enemy of (Owner of (Picked unit))) Equal to True))
      • Custom script: call RemoveLocation(udg_Spell_Caster)
      • For each (Integer A) from 1 to 3, do (Actions)
        • Loop - Actions
          • Set RangeCounter = 500.00
          • Set Spell_Caster = Spell_Pivot
          • Custom script: call RemoveLocation(udg_Spell_Pivot)
          • Unit Group - Pick every unit in TempGroup and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • hitUnit[1] Not equal to (Picked unit)
                  • hitUnit[2] Not equal to (Picked unit)
                  • hitUnit[3] Not equal to (Picked unit)
                  • hitUnit[4] Not equal to (Picked unit)
                  • (Distance between Spell_Caster and (Position of (Picked unit))) Less than RangeCounter
                • Then - Actions
                  • Set RangeCounter = (Distance between Spell_Caster and (Position of PickedUnit))
                  • Set Spell_Pivot = (Position of PickedUnit)
                  • Set PickedUnit = (Picked unit)
                  • Set hitUnit[(Integer A)] = (Picked unit)
                • Else - Actions
              • Unit - Create 1 Sorceress for (Owner of (Triggering unit)) at Spell_Caster facing Default building facing degrees
              • Unit - Order (Last created unit) to Neutral - Firebolt PickedUnit
              • Unit - Kill (Last created unit)
              • Custom script: call RemoveLocation(udg_Spell_Caster)
      • Custom script: call DestroyGroup(udg_TempGroup)


Variables:
hitUnit - Unit, Spell_Caster - Point, Spell_Pivot - Point, TempGroup - Group, RangeCounter - Real, PickedUnit - Unit

Spells: The spells are just dummies for animations, so you can choose what ever targetting spell (that does damage and any effects you want) for each of them.

This is just the part to hit them with chain lightning (the reason for this is to make it easy to get the targets to move toward the caster). This trigger, though, has 2 damages, the main spell, which has initial damage, and the second spell which transfers the same amount of damage to the last three targetted units. If you want me to, I can change it so that it does less damage per unit if you want, but it'll be more complicated.

Try just that and see if it works. If it doesn't, tell me and I'll try to fix it.
 

Kalder

New Member
Reaction score
1
How do i integrate in the if condition
Trigger:
  • (Distance between Spell_Caster and (Position of (Picked unit))) Less than RangeCounter
. Thx for this seems to be looking good so far
 

Kalder

New Member
Reaction score
1
Trigger:
  • Untitled Trigger 002
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Static Cling
    • Actions
      • For each (Integer A) from 1 to 3, do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in TempGroup and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Distance between Spell_Caster and (Position of PickedUnit)) Less than RangeCounter
                  • hitUnit Not equal to PickedUnit
                  • hitUnit Not equal to PickedUnit
                  • hitUnit Not equal to PickedUnit
                  • hitUnit Not equal to PickedUnit
                • Then - Actions
                  • Set hitUnit = (Picked unit)
                  • Set PickedUnit = (Picked unit)
                  • Set Spell_Pivot = (Position of (Picked unit))
                  • Set RangeCounter = (Distance between Spell_Caster and (Position of PickedUnit))
                • Else - Actions
                  • Custom script: call RemoveLocation(udg_Spell_Caster)
                  • Unit - Kill (Last created unit)
                  • Unit - Order (Last created unit) to Neutral - Firebolt PickedUnit
                  • Unit - Create 1 Sorceress for (Owner of (Triggering unit)) at Spell_Caster facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_Spell_Pivot)
          • Set Spell_Caster = Spell_Pivot
          • Set RangeCounter = 500.00
      • Custom script: call DestroyGroup(udg_TempGroup)
      • Set TempGroup = (Units within 500.00 of Spell_Pivot matching (((Triggering player) is an enemy of (Owner of PickedUnit)) Equal to True))
      • Set Spell_Pivot = (Position of (Targeted unit))
      • Set hitUnit = (Target unit of ability being cast)


This does not work it does damage but does not pull them to him why?
 

ShadowInTheD

Active Member
Reaction score
12
I told you it wouldn't pull them... I just wanted to make sure that that worked (I didn't feel like changing all kinds of unit things, so I didn't test, but you can change the animations and effects and w/e for the two spells that I gave so it looks like chain lighting, or however you want).

I'll work on the movement thing now.

Edit: Your posted trigger doesn't match mine exactly. hitUnit is an array, and some of your variable setting is out of order, which could change a lot of stuff.
 

Kalder

New Member
Reaction score
1
I told you it wouldn't pull them... I just wanted to make sure that that worked (I didn't feel like changing all kinds of unit things, so I didn't test, but you can change the animations and effects and w/e for the two spells that I gave so it looks like chain lighting, or however you want).

I'll work on the movement thing now.

Edit: Your posted trigger doesn't match mine exactly. hitUnit is an array, and some of your variable setting is out of order, which could change a lot of stuff.

how would i turn
Trigger:
  • Untitled Trigger 002
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Static Cling
    • Actions
      • For each (Integer A) from 1 to 3, do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in TempGroup and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Distance between Spell_Caster and (Position of PickedUnit)) Less than RangeCounter
                  • hitUnit Not equal to PickedUnit
                  • hitUnit Not equal to PickedUnit
                  • hitUnit Not equal to PickedUnit
                  • hitUnit Not equal to PickedUnit
                • Then - Actions
                  • Set hitUnit = (Picked unit)
                  • Set PickedUnit = (Picked unit)
                  • Set Spell_Pivot = (Position of (Picked unit))
                  • Set RangeCounter = (Distance between Spell_Caster and (Position of PickedUnit))
                • Else - Actions
                  • Custom script: call RemoveLocation(udg_Spell_Caster)
                  • Unit - Kill (Last created unit)
                  • Unit - Order (Last created unit) to Neutral - Firebolt PickedUnit
                  • Unit - Create 1 Sorceress for (Owner of (Triggering unit)) at Spell_Caster facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_Spell_Pivot)
          • Set Spell_Caster = Spell_Pivot
          • Set RangeCounter = 500.00
      • Custom script: call DestroyGroup(udg_TempGroup)
      • Set TempGroup = (Units within 500.00 of Spell_Pivot matching (((Triggering player) is an enemy of (Owner of PickedUnit)) Equal to True))
      • Set Spell_Pivot = (Position of (Targeted unit))
      • Set hitUnit = (Target unit of ability being cast)


into the hit unit part on yours?
 

ShadowInTheD

Active Member
Reaction score
12
Trigger:
  • Chain Pull
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Storm Bolt
    • Actions
      • Set Spell_Caster = (Position of (Triggering unit))
      • Set hitUnit[1] = (Target unit of ability being cast)
      • Set RangeCounter = 500.00
      • Set Spell_Pivot = (Position of (Targeted unit))
      • Set TempGroup = (Units within 500.00 of Spell_Pivot matching (((Triggering player) is an enemy of (Owner of (Picked unit))) Equal to True))
      • Custom script: call RemoveLocation(udg_Spell_Caster)
      • For each (Integer A) from 1 to 3, do (Actions)
        • Loop - Actions
          • Set Spell_Caster = Spell_Pivot
          • Custom script: call RemoveLocation(udg_Spell_Pivot)
          • Unit Group - Pick every unit in TempGroup and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • hitUnit[1] Not equal to (Picked unit)
                  • hitUnit[2] Not equal to (Picked unit)
                  • hitUnit[3] Not equal to (Picked unit)
                  • hitUnit[4] Not equal to (Picked unit)
                  • (Distance between Spell_Caster and (Position of (Picked unit))) Less than RangeCounter
                • Then - Actions
                  • Set RangeCounter = (Distance between Spell_Caster and (Position of PickedUnit))
                  • Set Spell_Pivot = (Position of PickedUnit)
                  • Set PickedUnit = (Picked unit)
                  • Set hitUnit[(Integer A)] = (Picked unit)
                • Else - Actions
              • Unit - Create 1 Sorceress for (Owner of (Triggering unit)) at Spell_Caster facing Default building facing degrees
              • Unit - Order (Last created unit) to Neutral - Firebolt PickedUnit
              • Unit - Kill (Last created unit)
              • Custom script: call RemoveLocation(udg_Spell_Caster)
      • Custom script: call DestroyGroup(udg_TempGroup)
      • Trigger - Turn on Pulling <gen>
      • Wait 4.00 seconds
      • Trigger - Turn off Pulling <gen>


Trigger:
  • Pulling
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 4, do (Actions)
        • Loop - Actions
          • Set hitUnitLoc[(Integer A)] = (Position of hitUnit[(Integer A)])
          • Set offset[(Integer A)] = (hitUnitLoc[(Integer A)] offset by 4.00 towards (Angle from hitUnitLoc[(Integer A)] to Spell_Caster) degrees)
          • Unit - Move hitUnit[(Integer A)] instantly to offset[(Integer A)]
          • Set hitUnitLoc[(Integer A)] = offset[(Integer A)]
      • For each (Integer A) from 1 to 4, do (Actions)
        • Loop - Actions
          • Custom script: call RemoveLocation(udg_hitUnitLoc[GetForLoopIndexA])
          • Custom script: call RemoveLocation(udg_offset[GetForLoopIndexA])


That should hit with chain lightning and then pull for 4 seconds. What you need to do is get all of your lines in order so they match my order exactly. One thing I noticed is that you used your sorcerer to cast neutral firebolt, which I'm assuming you didn't give it. What you need to do is create a dummy unit (size like 1, and give it fireball) and replace sorcerer with dummy unit. I also added some things in the original trigger so look out for those. And you need to make the "Pulling" trigger enabled and turned off.

To change the hitUnit to like mine you need to make it an array - go to edit variables and edit that variable and check array.
 

Kalder

New Member
Reaction score
1
not done

Im not done but how does this look so far?
Trigger:
  • Untitled Trigger 002
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Static Cling
    • Actions
      • Set Tech_Warrior = (Position of (Triggering unit))
      • Set hitUnit = (Target unit of ability being cast)
      • Set RangeCounter = 500.00
      • Set Tech_Pivot = (Position of (Targeted unit))
      • Set TempGroup = (Units within 500.00 of Tech_Pivot matching (((Triggering player) is an enemy of (Owner of PickedUnit)) Equal to True))
      • Custom script: call RemoveLocation(udg_Spell_Pivot)
      • For each (Integer A) from 1 to 3, do (Actions)
        • Loop - Actions
          • Set Tech_Warrior = Tech_Pivot
          • Custom script: call RemoveLocation(udg_Tech_Pivot)
          • Unit Group - Pick every unit in TempGroup and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • hitUnit Not equal to PickedUnit
                  • hitUnit Not equal to PickedUnit
                  • hitUnit Not equal to PickedUnit
                  • hitUnit Not equal to PickedUnit
                  • (Distance between Tech_Warrior and (Position of PickedUnit)) Less than RangeCounter
                • Then - Actions
                  • Set RangeCounter = (Distance between Tech_Warrior and (Position of PickedUnit))
                  • Set Tech_Pivot = (Position of (Picked unit))
                  • Set PickedUnit = (Picked unit)
                  • Set hitUnit = (Picked unit)
                • Else - Actions
                  • Unit - Create 1 Sorceress for (Owner of (Triggering unit)) at Tech_Warrior facing Default building facing degrees
                  • Unit - Order (Last created unit) to Neutral - Firebolt PickedUnit
                  • Unit - Kill (Last created unit)
                  • Custom script: call RemoveLocation(udg_Spell_Caster)
      • Custom script: call DestroyGroup(udg_TempGroup)
 

ShadowInTheD

Active Member
Reaction score
12
Trigger:
  • Chain Pull
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Storm Bolt
    • Actions
      • Set hitUnit[1] = (Target unit of ability being cast)
      • Set RangeCounter = 500.00
      • Set Spell_Pivot = (Position of (Targeted unit))
      • Set TempGroup = (Units within 500.00 of Spell_Pivot matching (((Triggering player) is an enemy of (Owner of (Picked unit))) Equal to True))
      • Custom script: call RemoveLocation(udg_Spell_Caster)
      • For each (Integer A) from 1 to 3, do (Actions)
        • Loop - Actions
          • Set Spell_Caster = Spell_Pivot
          • Custom script: call RemoveLocation(udg_Spell_Pivot)
          • Unit Group - Pick every unit in TempGroup and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • hitUnit[1] Not equal to (Picked unit)
                  • hitUnit[2] Not equal to (Picked unit)
                  • hitUnit[3] Not equal to (Picked unit)
                  • hitUnit[4] Not equal to (Picked unit)
                  • (Distance between Spell_Caster and (Position of (Picked unit))) Less than RangeCounter
                • Then - Actions
                  • Set RangeCounter = (Distance between Spell_Caster and (Position of PickedUnit))
                  • Set Spell_Pivot = (Position of (Picked unit))
                  • Set PickedUnit = (Picked unit)
                  • Set hitUnit[(Integer A)] = (Picked unit)
                • Else - Actions
              • Unit - Create 1 Sorceress for (Owner of (Triggering unit)) at Spell_Caster facing Default building facing degrees
              • Unit - Order (Last created unit) to Neutral - Firebolt PickedUnit
              • Unit - Kill (Last created unit)
              • Custom script: call RemoveLocation(udg_Spell_Caster)
      • Set Spell_Caster = (Position of (Triggering unit))
      • Custom script: call DestroyGroup(udg_TempGroup)
      • Trigger - Turn on Pulling <gen>
      • Wait 4.00 seconds
      • Trigger - Turn off Pulling <gen>


Two things I noticed, 1: you still haven't made hitUnit an array, and two, you're mixing up "PickedUnit" and "Picked unit". Make sure those are correct.

Also, I edited the first line and I moved it right above:
Trigger:
  • Custom script: call DestroyGroup(udg_TempGroup)
 

ShadowInTheD

Active Member
Reaction score
12
There's a button at the top on a bar that has a big yellow X on it. Click that. It'll have options to add, edit, or remove variables. Click on hitUnit and click Edit. Then under the name and type of variable, you'll see a check box with array next to it. Click that check box. Then just close the menu thing. If it asks if you want to make the change (because it'll change every instance the variable is used) click yes, and go back and change all of the places it needs the array.
 

Tyman2007

Ya Rly >.
Reaction score
74
Try starts the effect of an ability, cause you can use the stop exploit and get as many casts as you want and really screw up the game. Stop before the spell casts and the trigger's running = No cooldown.

The spell can even break temporarily!

Events should be Starts the effect of an ability.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    New recipe is another summer dessert Berry and Peach Cheesecake - https://www.thehelper.net/threads/recipe-berry-and-peach-cheesecake.194169/

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top