Devour spell help

Evil Seal

Member
Reaction score
2
I need help with some triggers of mine, it's works one time but not the second time. I don't know why this is happening

"The abillity makes the caster to become insanely hungery, increasing his movment speed by 25. All organic units that come in contact with the caster is devoured, kept inside the body of the caster. Decoured units take 40/60/80 damage each second and heals the caster the same amount. For each unit he devours he get +10 movment speed. At the end of the ability the devoured units are released infront of the caster, dealing 6/8/10 x number of units devoured."

Thats how the spell should work, here are the triggers

btw I know that my spell may leak, but i will fix it later on. And I knwo the triggers are abit long too read trough but i gave them here anyway,

Trigger:
  • Devour
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Devour
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • MUI Less than 1000
        • Then - Actions
          • Set MUI = (MUI + 1)
        • Else - Actions
          • Set MUI = 1
      • Set DeV_Caster[MUI] = (Casting unit)
      • Set DeV_Duration[MUI] = 0.00
      • Set GluttonSize[MUI] = (GluttonSize[MUI] + 125.00)
      • Animation - Change (Casting unit)'s size to (GluttonSize[MUI]%, GluttonSize[MUI]%, GluttonSize[MUI]%) of its original size
      • Unit - Set (Triggering unit) movement speed to ((Current movement speed of (Triggering unit)) + 25.00)
      • Unit - Create 1 Dummy for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees
      • Unit - Set the custom value of (Last created unit) to MUI
      • Unit Group - Add (Last created unit) to DummyGroup


Btw how do I make the codes look like they do in GUI :)

Trigger:
  • Devour Loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in DummyGroup and do (Actions)
        • Loop - Actions
          • Set TempInt1 = (Custom value of (Picked unit))
          • Set DeV_Duration[TempInt1] = (DeV_Duration[TempInt1] + 0.02)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • DeV_Duration[TempInt1] Less than (5.00 + (2.00 x (Real((Level of Devour for DeV_Caster[TempInt1])))))
            • Then - Actions
              • Set TempPoint = (Position of DeV_Caster[TempInt1])
              • Set Temp_Group_1 = (Units within 150.00 of TempPoint)
              • Unit Group - Pick every unit in Temp_Group_1 and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Picked unit) is A structure) Equal to False
                      • ((Picked unit) is alive) Equal to True
                      • (Picked unit) Not equal to DeV_Caster[TempInt1]
                    • Then - Actions
                      • Set TempPoint = (Position of (Picked unit))
                      • Set GluttonSize[TempInt1] = (GluttonSize[TempInt1] + 5.00)
                      • Animation - Change DeV_Caster[TempInt1]'s size to (GluttonSize[TempInt1]%, GluttonSize[TempInt1]%, GluttonSize[TempInt1]%) of its original size
                      • Special Effect - Create a special effect at TempPoint using Objects\Spawnmodels\Human\HumanLargeDeathExplode\HumanLargeDeathExplode.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Unit - Set DeV_Caster[TempInt1] movement speed to ((Current movement speed of DeV_Caster[TempInt1]) + 10.00)
                      • Custom script: call RemoveLocation(udg_TempPoint)
                      • Unit Group - Add (Picked unit) to DeVUnits[TempInt1]
                      • Unit - Hide (Picked unit)
                      • Unit - Pause (Picked unit)
                    • Else - Actions
              • Unit Group - Pick every unit in DeVUnits[TempInt1] and do (Actions)
                • Loop - Actions
                  • Set TempPoint2 = (Position of DeV_Caster[TempInt1])
                  • Unit - Move (Picked unit) instantly to TempPoint2
              • Custom script: call RemoveLocation(udg_TempPoint)
              • Custom script: call DestroyGroup(udg_Temp_Group_1)
            • Else - Actions
              • Unit Group - Pick every unit in DeVUnits[TempInt1] and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Picked unit) belongs to an enemy of (Owner of DeV_Caster[TempInt1])) Equal to True
                    • Then - Actions
                      • Unit - Cause DeV_Caster[TempInt1] to damage (Picked unit), dealing ((6.00 + (2.00 x (Real((Level of Devour for DeV_Caster[TempInt1]))))) x (Real((Number of units in DeVUnits[TempInt1])))) damage of attack type Chaos and damage type Normal
                    • Else - Actions
                  • Set TempPoint2 = (Position of DeV_Caster[TempInt1])
                  • Set TempPoint = (TempPoint2 offset by 200.00 towards (Facing of DeV_Caster[TempInt1]) degrees)
                  • Set GluttonSize[TempInt1] = 0.00
                  • Animation - Change DeV_Caster[TempInt1]'s size to (100.00%, 100.00%, 100.00%) of its original size
                  • Unit - Move (Picked unit) instantly to TempPoint
                  • Special Effect - Create a special effect at TempPoint using Abilities\Spells\Other\AcidBomb\BottleMissile.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Set DeV_Caster[TempInt1] movement speed to (Default movement speed of DeV_Caster[TempInt1])
                  • Unit - Unhide (Picked unit)
                  • Unit - Unpause (Picked unit)
                  • Unit Group - Remove (Picked unit) from DeVUnits[TempInt1]
                  • Set DeV_Caster[TempInt1] = No unit



Trigger:
  • Consumed Units
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in DummyGroup and do (Actions)
        • Loop - Actions
          • Set TempInt1 = (Custom value of (Picked unit))
          • Unit Group - Pick every unit in DeVUnits[TempInt1] and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Picked unit) belongs to an enemy of (Owner of DeV_Caster[TempInt1])) Equal to True
                • Then - Actions
                  • Unit - Cause DeV_Caster[TempInt1] to damage (Picked unit), dealing (20.00 + (Real((20 x (Level of Devour for DeV_Caster[TempInt1]))))) damage of attack type Chaos and damage type Normal
                • Else - Actions
              • Unit - Set life of DeV_Caster[TempInt1] to ((Life of DeV_Caster[TempInt1]) + (20.00 + (20.00 x (Real((Level of Devour for DeV_Caster[TempInt1]))))))
 

Amn

Member
Reaction score
18
I need help with some triggers of mine, it's works one time but not the second time. I don't know why this is happening
maybe some of your array variables are size 1, then it works only the first time
try this; change the condition below for set MUI = 1
Trigger:
  • If - Conditions
    • MUI Less than 1000
    • Then - Actions
      • Set MUI = (MUI + 1)
    • Else - Actions
      • Set MUI = 1




Btw how do I make the codes look like they do in GUI :)
[noparse]use the tags
Trigger:
[/noparse]
 

Evil Seal

Member
Reaction score
2
maybe some of your array variables are size 1, then it works only the first time
try this; change the condition below for set MUI = 1
Trigger:
  • If - Conditions
    • MUI Less than 1000
    • Then - Actions
      • Set MUI = (MUI + 1)
    • Else - Actions
      • Set MUI = 1





[noparse]use the tags
Trigger:
[/noparse]

Thanks for the tags, but didn't quite understand what you ment with the trigger :)
 

Amn

Member
Reaction score
18
i mean, your triggers use the MUI variable plus 1 each time they run. first time MUI= 1, second time MUI=2
so, if your spell works only once, then some of your variables are unable to handle another number other than 1
 
General chit-chat
Help Users

      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