[Trigger] How to make this MUI...

Level 4
Joined
Jul 7, 2010
Messages
69
  • Fissure
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fissure (skill)
    • Actions
      • Set Fissure_Level = (Level of Fissure (skill) for (Casting unit))
      • Set Fissure_Count = 0
      • Set Fissure_Unit[0] = (Casting unit)
      • Set Fissure_Point[1] = (Position of (Casting unit))
      • Set Fissure_Point[2] = ((Position of (Casting unit)) offset by 1600.00 towards (Angle from (Position of (Casting unit)) to (Target point of ability being cast)) degrees)
      • For each (Integer A) from 1 to 16, do (Actions)
        • Loop - Actions
          • Set Fissure_Count = (Fissure_Count + 1)
          • Unit - Create 1 Dummy_For_Map for (Owner of Fissure_Unit[0]) at (Fissure_Point[1] offset by ((Real((Integer A))) x 100.00) towards (Angle from Fissure_Point[1] to Fissure_Point[2]) degrees) facing Default building facing degrees
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Set Fissure_Unit[Fissure_Count] = (Last created unit)
          • Destructible - Create a Rock Chunks wall at (Position of Fissure_Unit[Fissure_Count]) facing 0.00 with scale 1.00 and variation (Random integer number between 1 and 6)
          • Set Fissure_Doodad[(Integer A)] = (Last created destructible)
          • Set fissure_d[(indx + 1)] = (Last created destructible)
          • Special Effect - Create a special effect at (Position of Fissure_Unit[Fissure_Count]) using Abilities\Spells\Other\Volcano\VolcanoDeath.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit Group - Pick every unit in (Units within 225.00 of (Position of Fissure_Unit[Fissure_Count]) matching ((((Matching unit) belongs to an enemy of (Owner of Fissure_Unit[Fissure_Count])) Equal to True) and (((Matching unit) Not equal to Fissure_Unit[Fissure_Count]) and ((((Matching unit) and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Picked unit) is in Fissure_Group) Equal to False
                • Then - Actions
                  • Unit Group - Add (Picked unit) to Fissure_Group
                  • Unit - Create 1 Dummy_For_Map for (Owner of Fissure_Unit[Fissure_Count]) at (Position of Fissure_Unit[Fissure_Count]) facing Default building facing degrees
                  • Unit - Add Fissure (Dummy) to (Last created unit)
                  • Unit - Set level of Fissure (Dummy) for (Last created unit) to Fissure_Level
                  • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Picked unit)
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                • Else - Actions
          • Set Fissure_Unit[Fissure_Count] = No unit
      • Unit Group - Remove all units from Fissure_Group
      • Set Fissure_Unit[0] = No unit
      • Trigger - Turn on Fissure Doodad Remove <gen>

  • Fissure Doodad Remove
    • Events
      • Time - Every 8.00 seconds of game time
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 16, do (Actions)
        • Loop - Actions
          • Destructible - Remove Fissure_Doodad[(Integer A)]
          • Set Fissure_Doodad[(Integer A)] = No destructible
      • Trigger - Turn off (This trigger)
 
Level 17
Joined
Apr 3, 2010
Messages
1,101
First remove all your arrays and make them seperate variables,

Then make all the seperate variables into 11 arrays so that each one relates to a player
via Fissure_caster[playernumberofownerofcastingunit]=Casting unit



Your variables become Fissure_level -- Fissure_unit -FissurePoint1 - Fissure point 2
Each with an array of 12- Each relating to a specific player.


Alternatively learn jass or turn this to custom code and replace all variables with locals then replace all references with the local variable
 
Top