- Joined
- Mar 24, 2013
- Messages
- 1,105
Well I'm trying to detect an illusion so I can add it to a unit group, the trouble is the event I'm using seems to "not be fast enough" or maybe its another issue I have not thought of.
The cooldown of the wand of illusion ability is 0.
A unit enters playable map area did not work at all.
Primary concern is DR Cast 2 and its interaction with DR Cast
The cooldown of the wand of illusion ability is 0.
A unit enters playable map area did not work at all.
Primary concern is DR Cast 2 and its interaction with DR Cast
-
DR Cast
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to Draenei Realm
-
Actions
- Set DR_MaxIndex = (DR_MaxIndex + 1)
- Set DR_Caster[DR_MaxIndex] = (Triggering unit)
- Set TempInteger = 0
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Level of Reality for DR_Caster[DR_MaxIndex]) Equal to 0
-
Then - Actions
- Unit - Add Reality to DR_Caster[DR_MaxIndex]
- Else - Actions
-
If - Conditions
- Custom script: set udg_DR_IllusionGroup[udg_DR_MaxIndex] = CreateGroup()
- Set DR_Duration[DR_MaxIndex] = DR_SetDuration[(Level of Draenei Realm for DR_Caster[DR_MaxIndex])]
- Set TempPoint = (Position of DR_Caster[DR_MaxIndex])
- Unit - Create 1 Dummy for (Owner of DR_Caster[DR_MaxIndex]) at TempPoint facing Default building facing degrees
- Set TempUnit = (Last created unit)
- Unit - Add Illusions to TempUnit
- Unit - Add a 1.00 second Generic expiration timer to TempUnit
- Set DR_EnemyHeroGroup[DR_MaxIndex] = (Units in (Playable map area) matching (((((Matching unit) is A Hero) Equal to True) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of (Owner of DR_Caster[DR_MaxIndex])) Equal to True)))
- Trigger - Turn on DR Cast2 <gen> // Having it permanently on does nothing, and I only want it to be adding specific units to a specific group.
-
Unit Group - Pick every unit in DR_EnemyHeroGroup[DR_MaxIndex] and do (Actions)
-
Loop - Actions
- Set TempUnit2 = (Picked unit)
- Custom script: call IssueTargetOrderById(udg_TempUnit, 852274, udg_DR_Caster[udg_DR_MaxIndex])
- Set TempInteger = (TempInteger + 1)
- Game - Display to (All players) the text: (String(TempInteger)) Shows 1-6
-
Unit Group - Pick every unit in DR_IllusionGroup[DR_MaxIndex] and do (Actions)
-
Loop - Actions
- Set TempUnit3 = (Picked unit)
- Game - Display to (All players) the text: (Proper name of TempUnit3) //Nothing Displayed
- Custom script: call SetUnitX(udg_TempUnit3, GetUnitX(udg_TempUnit2))
- Custom script: call SetUnitY(udg_TempUnit3, GetUnitY(udg_TempUnit2))
-
Loop - Actions
-
Loop - Actions
- Game - Display to (All players) the text: (String((Number of units in DR_IllusionGroup[DR_MaxIndex]))) // Shows 1 unit in group but TempInteger = 6, because I have 6 preplaced units.
- Trigger - Turn off DR Cast2 <gen>
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- DR_MaxIndex Equal to 1
-
Then - Actions
- Trigger - Turn on DR Loop <gen>
- Else - Actions
-
If - Conditions
- Custom script: call RemoveLocation(udg_TempPoint)
-
Events
-
DR Cast2
-
Events
- Unit - A unit Spawns a summoned unit
- Conditions
-
Actions
- Game - Display to (All players) the text: fire
- Set TempUnit = (Triggering unit)
- Custom script: if IsUnitIllusion(udg_TempUnit) == true then
- Unit Group - Add TempUnit to DR_IllusionGroup[DR_MaxIndex]
- Unit - Add Illusion Distinguish to TempUnit
- Game - Display to (All players) the text: fire 2
- Custom script: endif
- Cinematic - Ping minimap for (All players) at (Position of (Triggering unit)) for 2 seconds
-
Events
-
DR Loop
-
Events
- Time - Every 0.05 seconds of game time
- Conditions
-
Actions
-
For each (Integer DR_CurrentIndex) from 1 to DR_MaxIndex, do (Actions)
-
Loop - Actions
- Set DR_Duration[DR_CurrentIndex] = (DR_Duration[DR_CurrentIndex] - 0.05)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- DR_Duration[DR_MaxIndex] Less than or equal to 0.00
-
Then - Actions
-
Unit Group - Pick every unit in DR_IllusionGroup[DR_CurrentIndex] and do (Actions)
-
Loop - Actions
- Set TempUnit2 = (Picked unit)
- Unit - Remove TempUnit2 from the game
-
Loop - Actions
- Custom script: call DestroyGroup(udg_DR_IllusionGroup[udg_DR_CurrentIndex])
- Custom script: call DestroyGroup(udg_DR_EnemyHeroGroup[udg_DR_CurrentIndex])
- Set DR_Caster[DR_CurrentIndex] = DR_Caster[DR_MaxIndex]
- Set DR_Duration[DR_CurrentIndex] = DR_Duration[DR_MaxIndex]
- Set DR_EnemyHeroGroup[DR_CurrentIndex] = DR_EnemyHeroGroup[DR_MaxIndex]
- Set DR_IllusionGroup[DR_CurrentIndex] = DR_IllusionGroup[DR_MaxIndex]
- Set DR_CurrentIndex = (DR_CurrentIndex - 1)
- Set DR_MaxIndex = (DR_MaxIndex - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- DR_MaxIndex Equal to 0
-
Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
-
If - Conditions
-
Unit Group - Pick every unit in DR_IllusionGroup[DR_CurrentIndex] and do (Actions)
-
Else - Actions
-
Unit Group - Pick every unit in DR_EnemyHeroGroup[DR_CurrentIndex] and do (Actions)
-
Loop - Actions
- Set TempUnit = (Picked unit)
- Set TempPoint = (Position of TempUnit)
- Set TempReal = 1000000000.00
-
Unit Group - Pick every unit in DR_IllusionGroup[DR_CurrentIndex] and do (Actions)
-
Loop - Actions
- Set TempUnit2 = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (TempUnit2 is alive) Equal to True
-
Then - Actions
- Set TempPoint2 = (Position of TempUnit2)
- Set TempReal2 = (Distance between TempPoint and TempPoint2)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- TempReal2 Less than TempReal
-
Then - Actions
- Set TempReal = TempReal2
- Set TempUnit3 = (Picked unit)
- Unit - Order TempUnit3 to Attack TempUnit
- Else - Actions
-
If - Conditions
-
Else - Actions
- Unit - Remove TempUnit2 from the game
- Unit Group - Remove TempUnit2 from DR_IllusionGroup[DR_CurrentIndex]
-
If - Conditions
- Custom script: call RemoveLocation(udg_TempPoint2)
-
Loop - Actions
- Custom script: call RemoveLocation(udg_TempPoint)
-
Loop - Actions
-
Unit Group - Pick every unit in DR_EnemyHeroGroup[DR_CurrentIndex] and do (Actions)
-
If - Conditions
-
Loop - Actions
-
For each (Integer DR_CurrentIndex) from 1 to DR_MaxIndex, do (Actions)
-
Events