Targeting Problems

aaronksw

New Member
Reaction score
0
Ok, I have a Storm Bolt spell at melee range. The problem is that after my Hero casts the spell, he then starts attacking another adjacent unit instead of keeping on the unit that was targeted with Storm Bolt. This is defaulted into the game. How do I make it so that whenever a unit casts a spell targeting an enemy, the unit stays attacking the enemy target instead of moving on a different target? Is there an option to change this or what triggers are required?
 

cleeezzz

The Undead Ranger.
Reaction score
268
trigger it

Code:
Event -
   Unit Starts the effect of an ability
Conditions
   Ability being cast equals Storm Bolt
Actions
   Unit - Order Triggering Unit to Attack Targetted Unit

freehand
 

Slapshot136

Divide et impera
Reaction score
471
i think the easiest solution would be to have a trigger that orders the unit to attack the targeted unit after the spell is completed, or maybe save the target each time an attack-order is given and then re-issue that order

p.s. cleeezzz beat me to it
 

Tru_Power22

You can change this now in User CP.
Reaction score
144
trigger it

Code:
Event -
   Unit Starts the effect of an ability
Conditions
   Ability being cast equals Storm Bolt
Actions
   Unit - Order Triggering Unit to Attack Targetted Unit

freehand

You may want to add a small wait, seeing as the unit may start attacking before storm bolt is cast.
 

Justice-BR

New Member
Reaction score
8
well, the trigger will fire when the effect of the storm bolt start,


anyway, you can try "finishes casting" too
 

aaronksw

New Member
Reaction score
0
These triggers aren't working. :(

The hero still targets the other unit after he Storm Bolts one.
 

millz-

New Member
Reaction score
25
Trigger:
  • Stormbolt
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Storm Bolt
    • Actions
      • Wait 0.50 game-time seconds
      • Unit - Order (Triggering unit) to Attack (Target unit of ability being cast)


Test around with the waiting time if you need (preferably 0.5 seconds or more, more than your storm bolt's casting time).

Edit: shortened it.
 

Komaqtion

You can change this now in User CP.
Reaction score
469
That trigger won't work, millz-...
"(Target unit of ability being cast)" won't work after a wait, even if it's that small XD

Wait a minute, I'll mix something u for you ;)
 

Komaqtion

You can change this now in User CP.
Reaction score
469
You tested it while he was attacked by another unit ? :S

Here's what I have :D
Trigger:
  • Attack Specific Target
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Attack Target
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • TempInt Greater than or equal to 5000
        • Then - Actions
          • Set TempInt = 0
        • Else - Actions
          • Set TempInt = (TempInt + 1)
      • Set Target_Unit[TempInt] = (Target unit of ability being cast)
      • Set Duration[TempInt] = (Real(((Level of (Ability being cast) for (Triggering unit)) + 1)))
      • Unit - Set the custom value of (Triggering unit) to TempInt
      • Unit - Order (Triggering unit) to Attack Target_Unit[TempInt]
      • Unit Group - Add (Triggering unit) to Specific_Target_Casters


Trigger:
  • Attack Target Periodic
    • Events
      • Time - Every 0.50 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Specific_Target_Casters and do (Actions)
        • Loop - Actions
          • Set Duration[(Custom value of (Picked unit))] = (Duration[(Custom value of (Picked unit))] - 0.50)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Duration[(Custom value of (Picked unit))] Less than or equal to 0.00
            • Then - Actions
              • Unit Group - Remove (Picked unit) from Specific_Target_Casters
              • Set Target_Unit[(Custom value of (Picked unit))] = No unit
            • Else - Actions
          • Unit - Order (Picked unit) to Attack Target_Unit[(Custom value of (Picked unit))]


This should work if you want to have it under a certain amount of time, even if another unit nearby has more priority than the target (Which is where I believe miööz-'s trigger will fail, no offense ;))
 

millz-

New Member
Reaction score
25
You tested it while he was attacked by another unit ? :S

Yes.

X = creep, X1 = creep targeted, H = hero

.....X1...X

......X....H

Hero H has 2 nearer creeps compared to the targeted creep with Stormbolt. After casting Stormbolt on X1, Hero H continues to attack Creep X1 until it dies. And yes, Hero H was a melee hero, all creeps are melee as well.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
Test around with the waiting time if you need (preferably 0.5 seconds or more, more than your storm bolt's casting time).
If you use "starts the effect", it doesn't need to be long at all; the order will just queue up, as long as there is any wait.

(Target unit of ability being cast) is not safe to use after a wait, because if another unit also casts the ability during that wait, the target will be overwritten. Your trigger can be made MUI like this:
Trigger:
  • Stormbolt
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Storm Bolt
    • Actions
      • Custom script: local unit u = GetSpellTargetUnit()
      • Wait 0.00 seconds
      • Custom script: call IssueTargetOrder(GetTriggerUnit(), "attack", u)
      • Custom script: set u = null
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top