My spell trigger wont work?

darkreapers

New Member
Reaction score
6
trying to make trigger that every 5 seconds would cause lightning to erupt from the caster. The spell is a channeling spell that lasts for 30 seconds.

Trigger:
  • Lightning overload Copy
    • Events
      • Time - Every 5.00 seconds of game time
    • Conditions
    • ((Casting unit) has buff Electic Overload (f) ) Equal to True
      • Actions
        • Set Electric_Point[0] = (Position of (Triggering unit))
        • Set Electic_Real = 0.00
        • For each (Integer A) from 1 to 8, do (Actions)
          • Loop - Actions
            • Unit - Create 1 Dummy (Electric overload) for (Owner of (Triggering unit)) at Electric_Point[0] facing Default building facing degrees
            • Unit - Add Breath of Fire to (Last created unit)
            • Unit - Set level of Breath of Fire for (Last created unit) to (Level of Electric Overload for (Triggering unit))
            • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            • Set Electric_Point[(Integer A)] = (Electric_Point[0] offset by 200.00 towards Electric_Real degrees)
            • Unit - Order (Last created unit) to Neutral Pandaren Brewmaster - Breath Of Fire Electric_Point[(Integer A)]
            • Set Eletric_Real = (FireNova_Real + (360.00 / 8.00))
            • Custom script: call RemoveLocation(udg_Electric_Point[bj_forLoopAIndex])
        • Custom script: call RemoveLocation(udg_Electric_Point[0])



If i do event, unit casts a spell
Condition, spell = electric over load.

then it would work, so i know just the first 2 lines of trigger is messed up.
i need the spell to fire off once every 5 seconds, can anyone pls help??
 

ludnica

Long gone
Reaction score
61
First of there's no casting unit. And you're double-setting the Variables.
Make two separate triggers and run the ability every 5 seconds.
 

darkreapers

New Member
Reaction score
6
i dont get wat u mean? how should i set this as 2 trigger?

i am actually basing the spell off frenzy now to give my caster the buff, because for some reason channel spell doesnt work for me.
 

ludnica

Long gone
Reaction score
61
Trigger:
  • Trigger 1
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Frenzy
    • Actions
      • Trigger - Run Trigger 2 <gen> (checking conditions)

Trigger:
  • Trigger 2
    • Events
      • Time - Every 5.00 seconds of game time
    • Conditions
    • Actions
      • Your Actions here

Set the variables only once. Maybe in the Map Init trigger. You said you based the ability on Frenzy, so whenever your unit casts frenzy, the second trigger will run and do your "lightning" thingy.
 

Faust

You can change this now in User CP.
Reaction score
123
You pasted wrong action, I believe you meant turn on trigger 2, and not run :)
 

darkreapers

New Member
Reaction score
6
umm for some reason it would only run it once as well x.x
my 2nd trigger is based off Ludnica suggestion, if i do run it would work once, if i do turn on, it wouldnt run at all, i will just mess around with it lol. maybe i could do add wait to it and just create multiple copies of the first trigger and change wait time between each one, but i doubt it would be very MUI
 

Faust

You can change this now in User CP.
Reaction score
123
I just corrected him(her?)
Dude, instead of run, set it to turn on.
When you don't need it anymore, turn off.

But Running it could work too, but then delete the event, and put a 5 seconds wait at the bottom of the trigger, then put a run this trigger again (to stop it, put a condition).

>>Turning on doesn't work

Copy your triggers here

>>i doubt it would be very MUI

It's not MUI right now anyway... You would need to use JASS for that
 

darkreapers

New Member
Reaction score
6
Trigger:
  • Lightning overload
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Electric Overload
    • Actions
      • Trigger - Turn on Lightning overload Copy <gen>




Trigger:
  • Lightning overload Copy
    • Events
      • Time - Every 5.00 seconds of game time
    • Conditions
    • Actions
      • Set Electric_Point[0] = (Position of (Triggering unit))
      • Set Electric_Real = 0.00
      • For each (Integer A) from 1 to 8, do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy (Electric overload) for (Owner of (Triggering unit)) at Electric_Point[0] facing Default building facing degrees
          • Unit - Add Breath of Fire to (Last created unit)
          • Unit - Set level of Breath of Fire for (Last created unit) to (Level of Electric Overload for (Triggering unit))
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Set Electric_Point[(Integer A)] = (Electric_Point[0] offset by 200.00 towards Electric_Real degrees)
          • Unit - Order (Last created unit) to Neutral Pandaren Brewmaster - Breath Of Fire Electric_Point[(Integer A)]
          • Set Electric_Real = (Electric_Real + (360.00 / 8.00))
          • Custom script: call RemoveLocation(udg_Electric_Point[bj_forLoopAIndex])
      • Custom script: call RemoveLocation(udg_Electric_Point[0])
 

Faust

You can change this now in User CP.
Reaction score
123
Erm
There is no triggering unit, as it is a game-time related event.
It is triggered automatically every five seconds, not by a unit.

Please try to see the logic, or give up mapping.
You need to set the triggering unit to a variable in the first trigger, and refer to the variable in the second.
 

darkreapers

New Member
Reaction score
6
Erm
There is no triggering unit, as it is a game-time related event.
It is triggered automatically every five seconds, not by a unit.

Please try to see the logic, or give up mapping.
You need to set the triggering unit to a variable in the first trigger, and refer to the variable in the second.


if i could see logic in the first place i wouldnt ask for your help.
but thx i will continue mapping :thup:
 

foodflare

You can change this now in User CP.
Reaction score
32
This is kind of what you wanted based on what i read
Trigger:
  • Lightning Overload Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Electric Overload
    • Actions
      • Set LOCasterNum = (LOCasterNum + 1)
      • Set LOCaster[LOCasterNum] = (Triggering unit)
      • Trigger - Turn on Lightning Overload Effects <gen>


Trigger:
  • Lightning Overload Effects
    • Events
      • Time - Every 5.00 seconds of game time
    • Conditions
    • Actions
      • For each (Integer B) from 1 to LOCasterNum, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Current order of LOCaster[(Integer B)]) Equal to (Order(channel))
            • Then - Actions
              • Set ElectricPoint[0] = (Position of LOCaster[(Integer B)])
              • Set ElectricReal = 0.00
              • For each (Integer A) from 1 to 8, do (Actions)
                • Loop - Actions
                  • Unit - Create 1 Dummy (Electric Overload) for (Owner of LOCaster[(Integer B)]) at ElectricPoint[0] facing Default building facing degrees
                  • Unit - Add Breath of Fire to (Last created unit)
                  • Unit - Set level of Breath of Fire for (Last created unit) to (Level of Electric Overload for LOCaster[(Integer B)])
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Set ElectricPoint[(Integer A)] = (ElectricPoint[0] offset by 200.00 towards ElectricReal degrees)
                  • Unit - Order (Last created unit) to Neutral Pandaren Brewmaster - Breath Of Fire ElectricPoint[(Integer A)]
                  • Set ElectricReal = (ElectricReal + 45.00)
                  • Custom script: call RemoveLocation(udg_ElectricPoint[bj_forLoopAIndex])
              • Custom script: call RemoveLocation(udg_ElectricPoint[0])
            • Else - Actions
              • Set LOCaster[(Integer B)] = LOCaster[LOCasterNum]
              • Set LOCaster[LOCasterNum] = No unit
              • Set LOCasterNum = (LOCasterNum - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • LOCasterNum Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions


and faust it is possible to make it MUI in GUI ;) look above
 

Faust

You can change this now in User CP.
Reaction score
123
I never said it's impossible, I said that his triggers were light years away from that. And there, compare yours with his :p
 
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