1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  4. Choose your ride to damnation in the 5th Special Effect Contest Poll.
    Dismiss Notice
  5. The winners of the 13th Techtree Contest have been announced!
    Dismiss Notice
  6. The 13th Music Contest Poll has begun! Vote for the best tracks in this symphony of frost and flame.
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Flame Nova ability not working properly

Discussion in 'Triggers & Scripts' started by Recklessness, Nov 21, 2018.

  1. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    81
    Resources:
    0
    Resources:
    0
    Essentially, I am trying to create the following spell :
    Flame Nova: Cause a nova of fire to explode outwards from the targeted area dealing (1.5 x Intelligence) damage to all units caught within. Additionally, units caught within flame nova are set Ablaze and will explode after 3 seconds dealing (.5 x Intelligence) damage to all nearby allies.

    I have two abilities created Flame Nova itself and a dummy spell for the Ablaze debuff.

    The spell actually works as intended, but not as precisely i'd like whenever there are more than about 4 or 5 units within the spell the Ablaze part does not seem to go off at all, but when it is less than that it works 100% fine. I'm sure there's a way to fix this using arrays, but unfortunately i'm still a relative novice.

    Triggers I am using for now:
    • Flame Nova
      • Events
        • Unit - A unit Starts the effect of an ability
      • Conditions
        • (Ability being cast) Equal to Flame Nova (Disciple of Fire)
      • Actions
        • Set Damage = (Real((Intelligence of (Triggering unit) (Include bonuses))))
        • Set Caster_FlameNova = (Triggering unit)
        • Special Effect - Create a special effect at (Target point of ability being cast) using war3mapImported\FireNova2.mdx
        • Special Effect - Set Scale of (Last created special effect) to 0.50
        • Unit Group - Pick every unit in (Units within 300.00 of (Target point of ability being cast) matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True)) and do (Actions)
          • Loop - Actions
            • Set Target_FlameNova = (Picked unit)
            • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (1.50 x Damage) damage of attack type Magic and damage type Normal
            • Unit - Create 1 Dummy for (Owner of (Triggering unit)) at (Position of (Picked unit)) facing Default building facing degrees
            • Set Temp_Unit_Flamenova = (Last created unit)
            • Unit - Add a 0.50 second Generic expiration timer to Temp_Unit_Flamenova
            • Unit - Add Ablaze (Flame Nova effect) to Temp_Unit_Flamenova
            • Unit - Order Temp_Unit_Flamenova to Undead Banshee - Curse (Picked unit)
            • Trigger - Run Flame Nova Ablaze <gen> (checking conditions)


    • Flame Nova Ablaze
      • Events
      • Conditions
      • Actions
        • Wait 3.00 seconds
        • Special Effect - Create a special effect attached to the origin of Target_FlameNova using Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
        • Unit Group - Pick every unit in (Units within 175.00 of (Position of Target_FlameNova) matching (((Matching unit) belongs to an enemy of (Owner of Caster_FlameNova)) Equal to True)) and do (Actions)
          • Loop - Actions
            • Unit - Cause Caster_FlameNova to damage (Picked unit), dealing (0.50 x Damage) damage of attack type Magic and damage type Normal
     
    Last edited: Nov 21, 2018
  2. Wareditor

    Wareditor

    Joined:
    Jan 16, 2009
    Messages:
    681
    Resources:
    3
    Maps:
    3
    Resources:
    3
    Your images aren't showing up.
    Use
    Code (Text):
    [trigger]sample[/trigger]
    instead. Copy the trigger as text and paste it inside.
     
  3. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    81
    Resources:
    0
    Resources:
    0
    Fixed it thank you!
     
  4. Tasyen

    Tasyen

    Joined:
    Jul 18, 2010
    Messages:
    1,443
    Resources:
    18
    Tools:
    2
    Maps:
    3
    Spells:
    8
    Tutorials:
    4
    JASS:
    1
    Resources:
    18
    Your current Triggers will:
    1. Deal damage to current picked Unit
    2. wait 3 seconds
    3. Deal AoE damage around same target
    4. repeat for all units in the group. Waits inside a group loop tend to fail.
    Total result, if it works, is your spell takes 3 x targets seconds to be completed.

    But what you want to do, as I Understand is:
    1. Deal AoE Damage around Caster
      • Place some buff
    2. wait 3 seconds
    3. Deal AoE damage around every unit taken damage before the wait
    Dat requiers either indexing/dynamic timers or a local shadow group you take over the wait.

    But beaware with that local stuff: Group Loops and Conditions are in a subfunction, Therefore inside such a subfunction there is no access to the locals of the main function. If you only make the group local and use the "not recommented" way of group finding it should work.
     
  5. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    81
    Resources:
    0
    Resources:
    0
    The trigger actually is properly doing the aoe[debuff] for all the picked units within the initial aoe, but for some reason only when its a small number of units. Whenever it's more than 4 individuals it doesn't occur at all.

    My intention for the spell is:
    1. Deal instant aoe damage in a target area and place a debuff on every enemy unit within that area
    2. after 3 seconds
    3. those enemy units with the debuff deal additional aoe in a much smaller radius around them

    As far as "local shadow group" I have no idea what that is like I mentioned I really am not too great with triggering yet.
     
  6. Tasyen

    Tasyen

    Joined:
    Jul 18, 2010
    Messages:
    1,443
    Resources:
    18
    Tools:
    2
    Maps:
    3
    Spells:
    8
    Tutorials:
    4
    JASS:
    1
    Resources:
    18
  7. Aeryn

    Aeryn

    Joined:
    Apr 17, 2017
    Messages:
    297
    Resources:
    0
    Resources:
    0
    Well, I am no expert but I did the best I could. You might wanna use a timer or a counter instead of wait.

    • Flame Nova
      • Events
        • Unit - A unit Starts the effect of an ability
      • Conditions
        • (Ability being cast) Equal to Flame Nova (Disciple of Fire)
      • Actions
        • Set Caster_FlameNova = (Triggering unit)
        • Set Damage = (Real((Intelligence of Caster_FlameNova (Include bonuses))))
        • Set FlameNova_Targ = (Target point of ability being cast)
        • Special Effect - Create a special effect at FlameNova_Targ using war3mapImported\FireNova2.mdx
        • Special Effect - Set Scale of (Last created special effect) to 0.50
        • Special Effect - Destroy (Last created special effect)
        • Set FlameNova_UnitGroup = (Units within 300.00 of FlameNova_Targ matching (((Matching unit) belongs to an enemy of (Owner of Caster_FlameNova)) Equal to True))
        • Unit Group - Pick every unit in FlameNova_UnitGroup and do (Actions)
          • Loop - Actions
            • Set Target_FlameNova = (Picked unit)
            • Unit - Cause Caster_FlameNova to damage Target_FlameNova, dealing (1.50 x Damage) damage of attack type Magic and damage type Normal
            • Unit - Create 1 Dummy for (Owner of Caster_FlameNova) at (Position of Target_FlameNova) facing Default building facing degrees
            • Set Temp_Unit_Flamenova = (Last created unit)
            • Unit - Add a 0.50 second Generic expiration timer to Temp_Unit_Flamenova
            • Unit - Add Ablaze (Flame Nova Effect) to Temp_Unit_Flamenova
            • Unit - Order Temp_Unit_Flamenova to Undead Banshee - Curse Target_FlameNova
        • Countdown Timer - Start FlameNovaTimer as a One-shot timer that will expire in 3.00 seconds
        • Trigger - Turn on Flame Nova Ablaze <gen>


    • Flame Nova Ablaze
      • Events
        • Time - FlameNovaTimer expires
      • Conditions
      • Actions
        • Unit Group - Pick every unit in FlameNova_UnitGroup and do (Actions)
          • Loop - Actions
            • Set Target_FlameNova = (Picked unit)
            • Set Target_FlameNovaPosition = (Position of Target_FlameNova)
            • Special Effect - Create a special effect at Target_FlameNovaPosition using Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
            • Special Effect - Destroy (Last created special effect)
            • Custom script: call RemoveLocation(udg_Target_FlameNovaPosition)
            • Set FlameNova_UnitGroup2 = (Units within 175.00 of (Position of Target_FlameNova) matching ((((Matching unit) belongs to an enemy of (Owner of Caster_FlameNova)) Equal to True) and (((Matching unit) is in FlameNova_UnitGroup) Equal to False)))
            • Unit Group - Pick every unit in FlameNova_UnitGroup2 and do (Actions)
              • Loop - Actions
                • Set Target_FlameNovaPosition2 = (Position of (Picked unit))
                • Special Effect - Create a special effect at Target_FlameNovaPosition2 using Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
                • Special Effect - Destroy (Last created special effect)
                • Unit - Cause Caster_FlameNova to damage (Picked unit), dealing (0.50 x Damage) damage of attack type Magic and damage type Normal
                • Custom script: call RemoveLocation(udg_Target_FlameNovaPosition2)
        • Custom script: call DestroyGroup(udg_FlameNova_UnitGroup2)
        • Custom script: call DestroyGroup(udg_FlameNova_UnitGroup)
        • Custom script: call RemoveLocation(udg_FlameNova_Targ)
        • Trigger - Turn off (This trigger)
     
  8. Recklessness

    Recklessness

    Joined:
    Aug 17, 2014
    Messages:
    81
    Resources:
    0
    Resources:
    0
    I'm going to test it out today, I have not had too much time on my hands.
    It looks like it will work well, though