- 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
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)
-
Events
-
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 - Conditions
-
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)
-
If - Conditions
- 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)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Events
-
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
-
If - Conditions
-
Loop - 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]
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
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
-
If - Conditions
-
Loop - 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
-
If - Conditions
- -------- ------------------------------INDEXING END------------------------------ --------
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Custom script: call RemoveLocation(udg_TdC_Caster_Point)
- Else - Actions
-
If - Conditions
-
Loop - 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
-
Events