• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Trigger] MUI not Complete

Status
Not open for further replies.

BUP

BUP

Level 9
Joined
Sep 9, 2012
Messages
172
I haven't been able to fix this into MUI
I think the code is OK,,But not Complete MUI yet
I think I mis-used some actions
Please check it for me.This spell will be included in B-UP's Spell Pack v1.2


  • TdC Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Is the caster alive?? --------
      • Set TdC_Condition_Config[0] = True
      • -------- Is the picked unit alive?? --------
      • Set TdC_Condition_Config[1] = True
      • -------- Is the picked unit belongs to the enemy of the caster?? --------
      • Set TdC_Condition_Config[2] = True
      • -------- Is the picked unit a structure?? --------
      • Set TdC_Condition_Config[3] = False
      • -------- Is the picked unit magic immune?? --------
      • Set TdC_Condition_Config[4] = False
      • Set TdC_Angle_Add_Quantity[1] = 90.00
      • Set TdC_Angle_Add_Quantity[2] = -90.00
      • Set TdC_Animation_Type = attack
      • Set TdC_Push_Speed[1] = 20.00
      • Set TdC_Push_Speed[2] = 20.00
      • Set TdC_Push_Speed[3] = 20.00
      • Set TdC_Push_Speed[4] = 20.00
      • Set TdC_Rush_Speed[1] = 28.00
      • Set TdC_Rush_Speed[2] = 28.00
      • Set TdC_Rush_Speed[3] = 28.00
      • Set TdC_Rush_Speed[4] = 28.00
      • Set TdC_Push_Duration[1] = 3.00
      • Set TdC_Push_Duration[2] = 3.00
      • Set TdC_Push_Duration[3] = 3.00
      • Set TdC_Push_Duration[4] = 3.00
      • Set TdC_Push_Damage[1] = 12.00
      • Set TdC_Push_Damage[2] = 12.00
      • Set TdC_Push_Damage[3] = 12.00
      • Set TdC_Push_Damage[4] = 12.00
      • Set TdC_Damage_Type[1] = Spells
      • Set TdC_Damage_Type[2] = Spells
      • Set TdC_Damage_Type[3] = Spells
      • Set TdC_Damage_Type[4] = Spells
      • Set TdC_SE_Stay_Distance = 100.00
      • Set TdC_Picked_Stay_Distance = 30.00
      • Set TdC_Rush_Pick_Range[1] = 200.00
      • Set TdC_Rush_Pick_Range[2] = 200.00
      • Set TdC_Rush_Pick_Range[3] = 200.00
      • Set TdC_Rush_Pick_Range[4] = 200.00
      • Set TdC_Push_Max_Distance[1] = 450.00
      • Set TdC_Push_Max_Distance[2] = 450.00
      • Set TdC_Push_Max_Distance[3] = 450.00
      • Set TdC_Push_Max_Distance[4] = 450.00
      • Set TdC_Dummy_ColourSet[1] = 0.00
      • Set TdC_Dummy_ColourSet[2] = 40.00
      • Set TdC_Dummy_ColourSet[3] = 100.00
      • Set TdC_Dummy_Transparency = 0.00
      • Set TdC_Dummy_Size[1] = 300.00
      • Set TdC_Dummy_Size[2] = 300.00
      • Set TdC_Dummy_Size[3] = 300.00
      • Set TdC_Dummy_Size[4] = 300.00
      • Set TdC_Dummy_Life_Time = 4.00
      • Set TdC_Effect_Model[1] = Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
      • Set TdC_Attachment[2] = overhead
      • Set TdC_Effect_Model[2] = Abilities\Spells\Undead\FrostArmor\FrostArmorDamage.mdl
      • Set TdC_Attachment[3] = origin
      • Set TdC_Effect_Model[3] = Abilities\Spells\Orc\Voodoo\VoodooAura.mdl
      • Set TdC_Dummy_Type = Universal Dummy
      • Set TdC_Spell = Tidal Crush
      • Set TdC_Interval = 0.03
      • Trigger - Add to TdC Loop <gen> the event (Time - Every TdC_Interval seconds of game time)


  • TdC Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to TdC_Spell
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • TdC_Index_Listener Equal to 0
        • Then - Actions
          • Trigger - Turn on TdC Loop <gen>
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • TdC_Recycle_Size Greater than 0
        • Then - Actions
          • Set TdC_Recycle_Size = (TdC_Recycle_Size - 1)
          • Set TdC_Current_Index = TdC_Recycle_Container[TdC_Recycle_Size]
        • Else - Actions
          • Set TdC_Current_Index = ThS_Index_Size
          • Set TdC_Index_Size = (TdC_Index_Size + 1)
      • Set TdC_Stage[TdC_Current_Index] = 1
      • Set TdC_Target_Point[TdC_Current_Index] = (Target point of ability being cast)
      • Set TdC_Caster[TdC_Current_Index] = (Triggering unit)
      • Animation - Play TdC_Caster[TdC_Current_Index]'s TdC_Animation_Type animation
      • Set TdC_Owner[TdC_Current_Index] = (Owner of TdC_Caster[TdC_Current_Index])
      • Set TdC_Level[TdC_Current_Index] = (Level of TdC_Spell for TdC_Caster[TdC_Current_Index])
      • Set TdC_Timer[TdC_Current_Index] = TdC_Push_Duration[TdC_Level[TdC_Current_Index]]
      • Set TdC_Index_Container[TdC_Index_Listener] = TdC_Current_Index
      • Set TdC_Index_Listener = (TdC_Index_Listener + 1)


  • TdC Loop
    • Events
    • Conditions
    • Actions
      • -------- ------------------------------INDEXING START------------------------------ --------
      • For each (Integer TdC_Loop) from 0 to (TdC_Index_Listener - 1), do (Actions)
        • Loop - Actions
          • Set TdC_Current_Index = TdC_Index_Container[TdC_Loop]
          • -------- ------------------------------INDEXING END------------------------------ --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (TdC_Caster[TdC_Current_Index] is alive) Equal to TdC_Condition_Config[0]
            • Then - Actions
              • Set TdC_Caster_Point = (Position of TdC_Caster[TdC_Current_Index])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TdC_Stage[TdC_Current_Index] Equal to 1
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Distance between TdC_Caster_Point and TdC_Target_Point[TdC_Current_Index]) Greater than or equal to 128.00
                    • Then - Actions
                      • Set TdC_Angle[TdC_Current_Index] = (Angle from TdC_Caster_Point to TdC_Target_Point[TdC_Current_Index])
                      • Custom script: call SetUnitX(udg_TdC_Caster[udg_TdC_Current_Index],GetUnitX(udg_TdC_Caster[udg_TdC_Current_Index]) + udg_TdC_Rush_Speed[udg_TdC_Level[udg_TdC_Current_Index]] * Cos(udg_TdC_Angle[udg_TdC_Current_Index] * bj_DEGTORAD))
                      • Custom script: call SetUnitY(udg_TdC_Caster[udg_TdC_Current_Index],GetUnitY(udg_TdC_Caster[udg_TdC_Current_Index]) + udg_TdC_Rush_Speed[udg_TdC_Level[udg_TdC_Current_Index]] * Sin(udg_TdC_Angle[udg_TdC_Current_Index] * bj_DEGTORAD))
                      • Set TdC_SE_Spawn = (TdC_Caster_Point offset by TdC_SE_Stay_Distance towards (TdC_Angle[TdC_Current_Index] + TdC_Angle_Add_Quantity[1]) degrees)
                      • Special Effect - Create a special effect at TdC_SE_Spawn using TdC_Effect_Model[1]
                      • Special Effect - Destroy (Last created special effect)
                      • Custom script: call RemoveLocation(udg_TdC_SE_Spawn)
                      • Set TdC_SE_Spawn = (TdC_Caster_Point offset by TdC_SE_Stay_Distance towards (TdC_Angle[TdC_Current_Index] + TdC_Angle_Add_Quantity[2]) degrees)
                      • Special Effect - Create a special effect at TdC_SE_Spawn using TdC_Effect_Model[1]
                      • Special Effect - Destroy (Last created special effect)
                      • Custom script: call RemoveLocation(udg_TdC_SE_Spawn)
                      • Set TdC_Group[TdC_Current_Index] = (Units within TdC_Rush_Pick_Range[TdC_Level[TdC_Current_Index]] of TdC_Caster_Point)
                      • Unit Group - Pick every unit in TdC_Group[TdC_Current_Index] and do (Actions)
                        • Loop - Actions
                          • Set TdC_Picked_Unit = (Picked unit)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (TdC_Picked_Unit is alive) Equal to TdC_Condition_Config[1]
                              • (TdC_Picked_Unit belongs to an enemy of TdC_Owner[TdC_Current_Index]) Equal to TdC_Condition_Config[2]
                              • (TdC_Picked_Unit is A structure) Equal to TdC_Condition_Config[3]
                              • (TdC_Picked_Unit is Magic Immune) Equal to TdC_Condition_Config[4]
                            • Then - Actions
                              • Set TdC_Picked_Point = (Position of TdC_Picked_Unit)
                              • Set TdC_Angle[TdC_Current_Index] = (Angle from TdC_Caster_Point to TdC_Picked_Point)
                              • Set TdC_Carry_Point = (TdC_Caster_Point offset by TdC_Picked_Stay_Distance towards TdC_Angle[TdC_Current_Index] degrees)
                              • Unit - Move TdC_Picked_Unit instantly to TdC_Carry_Point
                              • Custom script: call RemoveLocation(udg_TdC_Picked_Point)
                              • Custom script: call RemoveLocation(udg_TdC_Carry_Point)
                            • Else - Actions
                    • Else - Actions
                      • Set TdC_Stage[TdC_Current_Index] = 2
                      • Unit - Create 1 TdC_Dummy_Type for TdC_Owner[TdC_Current_Index] at TdC_Caster_Point facing Default building facing degrees
                      • Set TdC_Dummy[TdC_Current_Index] = (Last created unit)
                      • Animation - Change TdC_Dummy[TdC_Current_Index]'s vertex coloring to (TdC_Dummy_ColourSet[1]%, TdC_Dummy_ColourSet[2]%, TdC_Dummy_ColourSet[3]%) with TdC_Dummy_Transparency% transparency
                      • Animation - Change TdC_Dummy[TdC_Current_Index]'s size to (TdC_Dummy_Size[TdC_Level[TdC_Current_Index]]%, 0.00%, 0.00%) of its original size
                      • Special Effect - Create a special effect attached to the TdC_Attachment[3] of TdC_Dummy[TdC_Current_Index] using TdC_Effect_Model[3]
                      • Set TdC_SE_1[TdC_Current_Index] = (Last created special effect)
                      • Unit - Add a TdC_Dummy_Life_Time second Generic expiration timer to TdC_Dummy[TdC_Current_Index]
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • TdC_Stage[TdC_Current_Index] Equal to 2
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • TdC_Timer[TdC_Current_Index] Greater than 0.00
                        • Then - Actions
                          • Set TdC_Timer[TdC_Current_Index] = (TdC_Timer[TdC_Current_Index] - TdC_Interval)
                          • Unit - Move TdC_Dummy[TdC_Current_Index] instantly to TdC_Caster_Point
                          • Set TdC_Group[TdC_Current_Index] = (Units within TdC_Push_Max_Distance[TdC_Level[TdC_Current_Index]] of TdC_Caster_Point)
                          • Unit Group - Pick every unit in TdC_Group[TdC_Current_Index] and do (Actions)
                            • Loop - Actions
                              • Set TdC_Picked_Unit = (Picked unit)
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (TdC_Picked_Unit is alive) Equal to TdC_Condition_Config[1]
                                  • (TdC_Picked_Unit belongs to an enemy of TdC_Owner[TdC_Current_Index]) Equal to TdC_Condition_Config[2]
                                  • (TdC_Picked_Unit is A structure) Equal to TdC_Condition_Config[3]
                                  • (TdC_Picked_Unit is Magic Immune) Equal to TdC_Condition_Config[4]
                                • Then - Actions
                                  • Set TdC_Picked_Point = (Position of TdC_Picked_Unit)
                                  • Set TdC_Angle[TdC_Current_Index] = (Angle from TdC_Caster_Point to TdC_Picked_Point)
                                  • Custom script: call SetUnitX(udg_TdC_Picked_Unit,GetUnitX(udg_TdC_Picked_Unit) + udg_TdC_Push_Speed[udg_TdC_Level[udg_TdC_Current_Index]] * Cos(udg_TdC_Angle[udg_TdC_Current_Index] * bj_DEGTORAD))
                                  • Custom script: call SetUnitY(udg_TdC_Picked_Unit,GetUnitY(udg_TdC_Picked_Unit) + udg_TdC_Push_Speed[udg_TdC_Level[udg_TdC_Current_Index]] * Sin(udg_TdC_Angle[udg_TdC_Current_Index] * bj_DEGTORAD))
                                  • Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_TdC_Effect_Model[2], udg_TdC_Picked_Unit,udg_TdC_Attachment[2]))
                                  • Unit - Cause TdC_Caster[TdC_Current_Index] to damage TdC_Picked_Unit, dealing TdC_Push_Damage[TdC_Level[TdC_Current_Index]] damage of attack type TdC_Damage_Type[TdC_Level[TdC_Current_Index]] and damage type Normal
                                  • Custom script: call RemoveLocation(udg_TdC_Picked_Point)
                                • Else - Actions
                        • Else - Actions
                          • Custom script: call DestroyEffect(udg_TdC_SE_1[udg_TdC_Current_Index])
                          • -------- ------------------------------INDEXING START------------------------------ --------
                          • Set TdC_Index_Listener = (TdC_Index_Listener - 1)
                          • Set TdC_Index_Container[TdC_Loop] = TdC_Index_Container[TdC_Index_Listener]
                          • Set TdC_Recycle_Container[TdC_Recycle_Size] = TdC_Current_Index
                          • Set TdC_Recycle_Size = (TdC_Recycle_Size + 1)
                          • Set TdC_Loop = (TdC_Loop - 1)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • TdC_Index_Listener Equal to 0
                            • Then - Actions
                              • Trigger - Turn off TdC Loop <gen>
                            • Else - Actions
                          • -------- ------------------------------INDEXING END------------------------------ --------
                    • Else - Actions
              • Custom script: call RemoveLocation(udg_TdC_Caster_Point)
            • Else - Actions


  • TdC Cleaner
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to TdC_Dummy_Type
    • Actions
      • Unit - Remove (Triggering unit) from the game

 

Attachments

  • B-UP's 1st Spell Pack v1.2.w3x
    76 KB · Views: 22
Status
Not open for further replies.
Top