- Joined
- Sep 9, 2012
- Messages
- 172
My spell has been OK with Dynamic Indexing.
But I changed the Indexing method now, it appears not to be MUI.
Would you check which part am I making mistakes??
Here are the Triggers
The map is in the attachment.
Please help me!
But I changed the Indexing method now, it appears not to be MUI.
Would you check which part am I making mistakes??
Here are the Triggers
-
spr Config
-
Events
- Map initialization
- Conditions
-
Actions
- -------- Sets the ability to activate the trigger --------
- Set spr_ability = Spiritual Disrupt
- -------- The animation string for the caster[The "slam" animation is set bcuz it looks good on Tauren] --------
- Set spr_caster_animation = slam
- -------- Damage dealt to the enemies[Arrays are Levels e.g. Array 1 = Level 1] --------
- Set spr_damage[1] = 90.00
- Set spr_damage[2] = 120.00
- Set spr_damage[3] = 150.00
- Set spr_damage[4] = 180.00
- -------- Is the picked units a structure?? --------
- Set spr_condition[1] = False
- -------- Do the picked units belong to the enemy of the caster?? --------
- Set spr_condition[2] = True
- -------- Is the Picked Unit Alive?? --------
- Set spr_condition[3] = True
- -------- Is the Picked Unit belong in the spr_finished_group? --------
- Set spr_condition[4] = False
- -------- Is the Picked Unit in spr_finished_group in desirable range?? --------
- Set spr_condition[5] = True
- -------- The max distances that the wave will travel[Arrays are Levels e.g. Array 1 = Level 1] --------
- Set spr_max_distance[1] = 800.00
- Set spr_max_distance[2] = 1100.00
- Set spr_max_distance[3] = 1400.00
- Set spr_max_distance[4] = 1700.00
- -------- The size of the wave travelled.[Arrays are Levels e.g. Array 1 = Level 1] --------
- Set spr_dummy_size[1] = 140.00
- Set spr_dummy_size[2] = 140.00
- Set spr_dummy_size[3] = 140.00
- Set spr_dummy_size[4] = 140.00
- -------- The range around the wave that the enemies will be pushed out [Arrays are Levels e.g. Array 1 = Level 1] --------
- Set spr_range[1] = 280.00
- Set spr_range[2] = 280.00
- Set spr_range[3] = 280.00
- Set spr_range[4] = 280.00
- -------- The travelling speed of the wave --------
- Set spr_speed[1] = 20.00
- Set spr_speed[2] = 20.00
- Set spr_speed[3] = 20.00
- Set spr_speed[4] = 20.00
- -------- The repulsive force speed of the wave --------
- Set spr_recoil_speed[1] = 9.00
- Set spr_recoil_speed[2] = 12.00
- Set spr_recoil_speed[3] = 15.00
- Set spr_recoil_speed[4] = 18.00
- -------- The time interval that the wave effect ocuuring --------
- Set spr_Howl_Interval = 0.09
- -------- Damage cause type --------
- Set spr_attack_type = Chaos
- -------- The model file of the wave effect --------
- Set spr_effect_model[1] = Abilities\Spells\Other\HowlOfTerror\HowlCaster.mdl
- -------- The attachent & model file of the damage caused effect --------
- Set spr_attachment[2] = chest
- Set spr_effect_model[2] = Abilities\Spells\Undead\DeathandDecay\DeathandDecayTarget.mdl
- -------- The attachent & model file of the pushing effect --------
- Set spr_attachment[3] = overhead
- Set spr_effect_model[3] = Abilities\Weapons\DruidoftheTalonMissile\DruidoftheTalonMissile.mdl
- -------- FOR PROS --------
- Set spr_dummy_type = Universal Dummy
- Set global_interval = 0.03
- Trigger - Add to spr Loop <gen> the event (Time - Every global_interval seconds of game time)
-
Events
-
spr Cast
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to spr_ability
-
Actions
- Set spr_maxIndex = (spr_maxIndex + 1)
- Set spr_timer[spr_maxIndex] = spr_Howl_Interval
- Set spr_caster[spr_maxIndex] = (Triggering unit)
- Animation - Play spr_caster[spr_maxIndex]'s spr_caster_animation animation
- Set spr_player[spr_maxIndex] = (Owner of spr_caster[spr_maxIndex])
- Set spr_level[spr_maxIndex] = (Level of spr_ability for spr_caster[spr_maxIndex])
- Set spr_start_point[spr_maxIndex] = (Position of spr_caster[spr_maxIndex])
- Set spr_target_point[spr_maxIndex] = (Target point of ability being cast)
- Set spr_angle[spr_maxIndex] = (Angle from spr_start_point[spr_maxIndex] to spr_target_point[spr_maxIndex])
- Unit - Create 1 spr_dummy_type for spr_player[spr_maxIndex] at spr_start_point[spr_maxIndex] facing spr_angle[spr_maxIndex] degrees
- Set spr_dummy[spr_maxIndex] = (Last created unit)
- Animation - Change spr_dummy[spr_maxIndex]'s size to (spr_dummy_size[spr_level[spr_maxIndex]]%, 0.00%, 0.00%) of its original size
- Custom script: call RemoveLocation(udg_spr_target_point[udg_spr_maxIndex])
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- spr_maxIndex Equal to 1
-
Then - Actions
- Trigger - Turn on spr Loop <gen>
- Else - Actions
-
If - Conditions
-
Events
-
spr Loop
- Events
- Conditions
-
Actions
-
For each (Integer spr_loop) from 1 to spr_maxIndex, do (Actions)
-
Loop - Actions
- Set spr_dummy_point[spr_loop] = (Position of spr_dummy[spr_loop])
- Set spr_distance[spr_loop] = (Distance between spr_start_point[spr_loop] and spr_dummy_point[spr_loop])
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- spr_distance[spr_loop] Greater than spr_max_distance[spr_level[spr_loop]]
-
Then - Actions
- Special Effect - Create a special effect at spr_dummy_point[spr_loop] using spr_effect_model[1]
- Special Effect - Destroy (Last created special effect)
- Unit - Kill spr_dummy[spr_loop]
- Unit Group - Remove all units from spr_finished_group[spr_loop]
- Unit Group - Remove all units from spr_group[spr_loop]
- Set spr_caster[spr_loop] = spr_caster[spr_maxIndex]
- Set spr_caster[spr_maxIndex] = No unit
- Set spr_player[spr_loop] = spr_player[spr_maxIndex]
- Set spr_level[spr_loop] = spr_level[spr_maxIndex]
- Set spr_start_point[spr_loop] = spr_start_point[spr_maxIndex]
- Custom script: call RemoveLocation(udg_spr_start_point[udg_spr_maxIndex])
- Set spr_target_point[spr_loop] = spr_target_point[spr_maxIndex]
- Custom script: call RemoveLocation(udg_spr_target_point[udg_spr_maxIndex])
- Set spr_angle[spr_loop] = spr_angle[spr_maxIndex]
- Set spr_dummy[spr_loop] = spr_dummy[spr_maxIndex]
- Set spr_dummy[spr_maxIndex] = No unit
- Set spr_maxIndex = (spr_maxIndex - 1)
- Set spr_loop = (spr_loop - 1)
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- spr_timer[spr_loop] Greater than 0.00
-
Then - Actions
- Set spr_timer[spr_loop] = (spr_timer[spr_loop] - global_interval)
-
Else - Actions
- Set spr_timer[spr_loop] = spr_Howl_Interval
- Special Effect - Create a special effect at spr_dummy_point[spr_loop] using spr_effect_model[1]
- Special Effect - Destroy (Last created special effect)
-
If - Conditions
- Custom script: call SetUnitX(udg_spr_dummy[udg_spr_loop],GetUnitX(udg_spr_dummy[udg_spr_loop]) + udg_spr_speed[udg_spr_level[udg_spr_loop]] * Cos(udg_spr_angle[udg_spr_loop] * bj_DEGTORAD))
- Custom script: call SetUnitY(udg_spr_dummy[udg_spr_loop],GetUnitY(udg_spr_dummy[udg_spr_loop]) + udg_spr_speed[udg_spr_level[udg_spr_loop]] * Sin(udg_spr_angle[udg_spr_loop] * bj_DEGTORAD))
- Set spr_group[spr_loop] = (Units within spr_range[spr_level[spr_loop]] of spr_dummy_point[spr_loop])
-
Unit Group - Pick every unit in spr_group[spr_loop] and do (Actions)
-
Loop - Actions
- Set spr_picked = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (spr_picked is A structure) Equal to spr_condition[1]
- (spr_picked belongs to an enemy of spr_player[spr_loop]) Equal to spr_condition[2]
- (spr_picked is alive) Equal to spr_condition[3]
- (spr_picked is in spr_finished_group[spr_loop]) Equal to spr_condition[4]
-
Then - Actions
- Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_spr_effect_model[2], udg_spr_picked,udg_spr_attachment[2]))
- Set spr_TestReal[spr_loop] = spr_damage[spr_level[spr_loop]]
- Unit - Cause spr_caster[spr_loop] to damage spr_picked, dealing spr_TestReal[spr_loop] damage of attack type spr_attack_type and damage type Normal
- Game - Display to (All players) the text: (String(spr_TestReal[spr_loop]))
- Unit Group - Add spr_picked to spr_finished_group[spr_loop]
- Else - Actions
-
If - Conditions
-
Loop - Actions
- Custom script: call DestroyGroup(udg_spr_group[udg_spr_loop])
-
Unit Group - Pick every unit in spr_finished_group[spr_loop] and do (Actions)
-
Loop - Actions
- Set spr_picked2 = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (spr_picked2 is in (Units within spr_range[spr_level[spr_loop]] of spr_dummy_point[spr_loop])) Equal to spr_condition[5]
-
Then - Actions
- Set spr_picked2_point = (Position of spr_picked2)
- Set spr_angle_2[spr_loop] = (Angle from spr_dummy_point[spr_loop] to spr_picked2_point)
- Custom script: call RemoveLocation(udg_spr_picked2_point)
- Custom script: call SetUnitX(udg_spr_picked2,GetUnitX(udg_spr_picked2) + udg_spr_recoil_speed[udg_spr_level[udg_spr_loop]] * Cos(udg_spr_angle_2[udg_spr_loop] * bj_DEGTORAD))
- Custom script: call SetUnitY(udg_spr_picked2,GetUnitY(udg_spr_picked2) + udg_spr_recoil_speed[udg_spr_level[udg_spr_loop]] * Sin(udg_spr_angle_2[udg_spr_loop] * bj_DEGTORAD))
- Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_spr_effect_model[3], udg_spr_picked2,udg_spr_attachment[3]))
-
Else - Actions
- Unit Group - Remove spr_picked2 from spr_finished_group[spr_loop]
-
If - Conditions
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Custom script: call RemoveLocation(udg_spr_dummy_point[udg_spr_loop])
-
Loop - Actions
-
For each (Integer spr_loop) from 1 to spr_maxIndex, do (Actions)
The map is in the attachment.
Please help me!