Need help for MUI

Ph[o]bia

New Member
Reaction score
7
I made a spell, but it isn't MUI and I'm wondering why it's not MUI , Can you tell me why it's not MUI ,


Trigger:
  • Index
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set PaIndex = 0

Trigger:
  • PA Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Pheonix Attack
    • Actions
      • Set PaIndex = (PaIndex + 1)
      • Set PaCaster[PaIndex] = (Triggering unit)
      • Set PaCasterPoint[PaIndex] = (Position of PaCaster[PaIndex])
      • Set PaTargetPoint[PaIndex] = (Target point of ability being cast)
      • Set PaMoving[PaIndex] = 0.00
      • If ((Level of Pheonix Attack for PaCaster[PaIndex]) Equal to 1) then do (Set PaDamageBurn[PaIndex] = 5.00) else do (Set PaDamageExplosion[PaIndex] = 300.00)
      • If ((Level of Pheonix Attack for PaCaster[PaIndex]) Equal to 2) then do (Set PaDamageBurn[PaIndex] = 10.00) else do (Set PaDamageExplosion[PaIndex] = 400.00)
      • If ((Level of Pheonix Attack for PaCaster[PaIndex]) Equal to 3) then do (Set PaDamageBurn[PaIndex] = 20.00) else do (Set PaDamageExplosion[PaIndex] = 550.00)
      • Unit - Create 1 PA[Pheonix] for (Owner of PaCaster[PaIndex]) at PaCasterPoint[PaIndex] facing PaTargetPoint[PaIndex]
      • Set PaPheonix[PaIndex] = (Last created unit)
      • Unit - Add a 2.00 second Generic expiration timer to PaPheonix[PaIndex]


Trigger:
  • PA Periodic
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer A) from 1 to PaIndex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Unit-type of PaPheonix[(Integer A)]) Equal to PA[Pheonix]
            • Then - Actions
              • Set PaPheonixAngle[(Integer A)] = (Facing of PaPheonix[(Integer A)])
              • Set PaPheonixPoint[(Integer A)] = (Position of PaPheonix[(Integer A)])
              • Set PaPheonixPointNew[(Integer A)] = (PaPheonixPoint[(Integer A)] offset by PaMoving[(Integer A)] towards PaPheonixAngle[(Integer A)] degrees)
              • Set PaMoving[(Integer A)] = (PaMoving[(Integer A)] + 0.50)
              • Unit - Move PaPheonix[(Integer A)] instantly to PaPheonixPointNew[(Integer A)], facing PaPheonixAngle[(Integer A)] degrees
              • Unit - Create 1 PA[Burn] for (Owner of PaCaster[(Integer A)]) at PaPheonixPoint[(Integer A)] facing PaPheonixPoint[(Integer A)]
              • Unit - Add a 1.00 second Generic expiration timer to PaBurn[(Integer A)]
              • Set PaBurn[(Integer A)] = (Last created unit)
              • Set PaBurnPoint[(Integer A)] = (Position of PaBurn[(Integer A)])
              • Set PaGroupBurn[(Integer A)] = (Units within 300.00 of PaBurnPoint[(Integer A)] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is Magic Immune) Not equal to True) and (((Matching unit) belongs to an enemy of (Owner of PaCaster[(Integer A)])) Equal to
              • Unit Group - Pick every unit in PaGroupBurn[(Integer A)] and do (Actions)
                • Loop - Actions
                  • Unit - Cause PaCaster[(Integer A)] to damage PaBurnTarget[(Integer A)], dealing PaDamageBurn[(Integer A)] damage of attack type Spells and damage type Normal
                  • Set PaBurnTarget[(Integer A)] = (Picked unit)
                  • Special Effect - Create a special effect attached to the chest of PaBurnTarget[(Integer A)] using Abilities\Weapons\LordofFlameMissile\LordofFlameMissile.mdl
                  • Special Effect - Destroy (Last created special effect)
              • Custom script: call RemoveLocation(udg_PaPheonixPoint[GetForLoopIndexA( )])
              • Custom script: call RemoveLocation(udg_PaPheonixPointNew[GetForLoopIndexA( )])
              • Custom script: call RemoveLocation(udg_PaBurnPoint[GetForLoopIndexA( )])
              • Custom script: call DestroyGroup(udg_PaGroupBurn[GetForLoopIndexA( )])
            • Else - Actions

Trigger:
  • PA Death
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • For each (Integer A) from 1 to PaIndex, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Unit-type of (Triggering unit)) Equal to PA[Pheonix]
            • Then - Actions
              • Set PaTargetPoint[(Integer A)] = (Position of PaPheonix[(Integer A)])
              • For each (Integer B) from 1 to 20, do (Actions)
                • Loop - Actions
                  • Set PaExplosionPoint1[(Integer A)] = (PaTargetPoint[(Integer A)] offset by 50.00 towards ((Real((Integer B))) x (360.00 / 20.00)) degrees)
                  • Set PaExplosionPoint2[(Integer A)] = (PaTargetPoint[(Integer A)] offset by 150.00 towards ((Real((Integer B))) x (360.00 / 20.00)) degrees)
                  • Set PaExplosionPoint3[(Integer A)] = (PaTargetPoint[(Integer A)] offset by 250.00 towards ((Real((Integer B))) x (360.00 / 20.00)) degrees)
                  • Unit - Create 1 PA[Explosion] for (Owner of PaCaster[(Integer A)]) at PaExplosionPoint1[(Integer A)] facing PaPheonixPoint[(Integer A)]
                  • Unit - Add a 1.00 second Generic expiration timer to PaExplosion[(Integer A)]
                  • Set PaExplosion[(Integer A)] = (Last created unit)
                  • Unit - Create 1 PA[Explosion] for (Owner of PaCaster[(Integer A)]) at PaExplosionPoint2[(Integer A)] facing PaPheonixPoint[(Integer A)]
                  • Unit - Add a 1.00 second Generic expiration timer to PaExplosion2[(Integer A)]
                  • Set PaExplosion2[(Integer A)] = (Last created unit)
                  • Unit - Create 1 PA[Explosion] for (Owner of PaCaster[(Integer A)]) at PaExplosionPoint3[(Integer A)] facing PaPheonixPoint[(Integer A)]
                  • Unit - Add a 1.00 second Generic expiration timer to PaExplosion3[(Integer A)]
                  • Set PaExplosion3[(Integer A)] = (Last created unit)
              • Set PaGroupExplosion[(Integer A)] = (Units within 300.00 of PaTargetPoint[(Integer A)] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is Magic Immune) Not equal to True) and (((Matching unit) belongs to an enemy of (Owner of PaCaster[(Integer A)])) Equal t
              • Unit Group - Pick every unit in PaGroupExplosion[(Integer A)] and do (Actions)
                • Loop - Actions
                  • Set PaTarget[(Integer A)] = (Picked unit)
                  • Unit - Cause PaCaster[(Integer A)] to damage PaTarget[(Integer A)], dealing PaDamageExplosion[(Integer A)] damage of attack type Spells and damage type Normal
              • Set PaMoving[(Integer A)] = PaMoving[PaIndex]
              • Set PaMoving[PaIndex] = 0.00
              • Set PaPheonix[(Integer A)] = PaPheonix[PaIndex]
              • Set PaPheonix[PaIndex] = No unit
              • Set PaBurn[(Integer A)] = PaBurn[PaIndex]
              • Set PaBurn[PaIndex] = No unit
              • Set PaBurnTarget[(Integer A)] = PaBurnTarget[PaIndex]
              • Set PaBurnTarget[PaIndex] = No unit
              • Set PaCaster[(Integer A)] = PaCaster[PaIndex]
              • Set PaCaster[PaIndex] = No unit
              • Set PaDamageBurn[(Integer A)] = PaDamageBurn[PaIndex]
              • Set PaDamageBurn[PaIndex] = 0.00
              • Set PaDamageExplosion[(Integer A)] = PaDamageExplosion[PaIndex]
              • Set PaDamageExplosion[PaIndex] = 0.00
              • Set PaExplosion[(Integer A)] = PaExplosion[PaIndex]
              • Set PaExplosion[PaIndex] = No unit
              • Set PaBurnPoint[(Integer A)] = PaBurnPoint[PaIndex]
              • Set PaCasterPoint[(Integer A)] = PaCasterPoint[PaIndex]
              • Set PaExplosionPoint1[(Integer A)] = PaExplosionPoint1[PaIndex]
              • Set PaExplosionPoint2[(Integer A)] = PaExplosionPoint2[PaIndex]
              • Set PaExplosionPoint3[(Integer A)] = PaExplosionPoint3[PaIndex]
              • Set PaExplosion2[(Integer A)] = PaExplosion2[PaIndex]
              • Set PaExplosion2[PaIndex] = No unit
              • Set PaExplosion3[(Integer A)] = PaExplosion3[PaIndex]
              • Set PaExplosion3[PaIndex] = No unit
              • Set PaGroupBurn[(Integer A)] = PaGroupBurn[PaIndex]
              • Set PaGroupExplosion[(Integer A)] = PaGroupExplosion[PaIndex]
              • Set PaPheonixAngle[(Integer A)] = PaPheonixAngle[PaIndex]
              • Set PaPheonixAngle[PaIndex] = 0.00
              • Set PaTarget[(Integer A)] = PaTarget[PaIndex]
              • Set PaTarget[PaIndex] = No unit
              • Set PaPheonixPoint[(Integer A)] = PaPheonixPoint[PaIndex]
              • Set PaPheonixPointNew[(Integer A)] = PaPheonixPointNew[PaIndex]
              • Set PaTargetPoint[(Integer A)] = PaTargetPoint[PaIndex]
              • Custom script: call RemoveLocation(udg_PaPheonixPoint[GetForLoopIndexA( )])
              • Custom script: call RemoveLocation(udg_PaPheonixPointNew[GetForLoopIndexA( )])
              • Custom script: call RemoveLocation(udg_PaExplosionPoint1[GetForLoopIndexA( )])
              • Custom script: call RemoveLocation(udg_PaExplosionPoint2[GetForLoopIndexA( )])
              • Custom script: call RemoveLocation(udg_PaExplosionPoint3[GetForLoopIndexA( )])
              • Custom script: call RemoveLocation(udg_PaTargetPoint[GetForLoopIndexA( )])
              • Custom script: call RemoveLocation(udg_PaBurnPoint[GetForLoopIndexA( )])
              • Custom script: call RemoveLocation(udg_PaCasterPoint[GetForLoopIndexA( )])
              • Custom script: call DestroyGroup(udg_PaGroupExplosion[GetForLoopIndexA( )])
              • Custom script: call DestroyGroup(udg_PaGroupBurn[GetForLoopIndexA( )])
              • Custom script: call DestroyGroup(udg_PaGroupBurn[udg_PaIndex])
              • Custom script: call DestroyGroup(udg_PaGroupExplosion[udg_PaIndex])
              • Custom script: call RemoveLocation(udg_PaPheonixPoint[udg_PaIndex])
              • Custom script: call RemoveLocation(udg_PaPheonixPointNew[udg_PaIndex])
              • Custom script: call RemoveLocation(udg_PaExplosionPoint1[udg_PaIndex])
              • Custom script: call RemoveLocation(udg_PaExplosionPoint2[udg_PaIndex])
              • Custom script: call RemoveLocation(udg_PaExplosionPoint3[udg_PaIndex])
              • Custom script: call RemoveLocation(udg_PaTargetPoint[udg_PaIndex])
              • Custom script: call RemoveLocation(udg_PaBurnPoint[udg_PaIndex])
              • Custom script: call RemoveLocation(udg_PaCasterPoint[udg_PaIndex])
              • Set PaIndex = (PaIndex - 1)
            • Else - Actions
 

Tyrulan

Ultra Cool Member
Reaction score
37
Why are you using PAIndex in your third trigger for setting variables? If a second cast has already been committed then you would be resetting variables. Then with the PAIndex - 1?....

Also your first trigger is unneeded. Set it's default value to 0 in variable editor.
 
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