- Joined
- Aug 20, 2009
- Messages
- 95
Okay, in my spell-pack I'm using Custom Value of units as a way to determine which dummy units belong to which unit. When I try to select a unit to move it (It's locusted) it does not select the unit. I do a random unit from the CirclingUnits[Custom value of (Triggering unit)] and I know it's not empty, it ALWAYS returns null. Heres the map.
The triggers are a lot longer.
The triggers are a lot longer.
-
SenseOfTheSouls
-
Events
-
Unit - A unit Dies
-
-
Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Caster_Value Greater than or equal to 5000
-
-
Then - Actions
-
Set Caster_Value = 0
-
-
Else - Actions
-
Set Caster_Value = (Caster_Value + 1)
-
-
-
Set Deadunit[Caster_Value] = (Triggering unit)
-
Set Deadunitloc = (Position of Deadunit[Caster_Value])
-
Set MaxRange = 2000.00
-
Set SoulCaster = (Units within MaxRange of Deadunitloc matching ((Level of Sense of the Souls for (Matching unit)) Greater than 0))
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Number of units in SoulCaster) Greater than 1
-
-
Then - Actions
-
Unit Group - Pick every unit in SoulCaster and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Number of units in SoulCaster) Equal to 0) or ((Number of units in Circling_Units[(Custom value of (Picked unit))]) Greater than or equal to (10 + ((Level of Sense of the Souls for (Picked unit)) x 5)))
-
-
Then - Actions
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Picked unit) is in SoS_Casters) Equal to False
-
-
Then - Actions
-
Unit Group - Add (Picked unit) to SoS_Casters
-
Unit - Set the custom value of (Picked unit) to CustomValue
-
Set CustomValue = (CustomValue + 1)
-
-
Else - Actions
-
-
Set SoulMaster[Caster_Value] = (Picked unit)
-
Set SoulMasterLoc = (Position of SoulMaster[Caster_Value])
-
-------- Angle to move from Deadunitloc to Soulmaster --------
-
Set Angle[Caster_Value] = (Angle from Deadunitloc to (Position of (Picked unit)))
-
-------- --------------------------------------------- --------
-
Unit - Create 1 DUMMY_UNIT for (Owner of (Picked unit)) at Deadunitloc facing Angle[Caster_Value] degrees
-
Set Dummyunit[Caster_Value] = (Last created unit)
-
Unit - Set the custom value of Dummyunit[Caster_Value] to (Custom value of (Picked unit))
-
Animation - Change Dummyunit[Caster_Value] flying height to (Random real number between 100.00 and 300.00) at 100.00
-
Unit Group - Add Dummyunit[Caster_Value] to Dummyunits
-
Custom script: call RemoveLocation(udg_SoulMasterLoc)
-
Set Caster_Value = (Caster_Value + 1)
-
-
-
-
-
-
Else - Actions
-
Unit Group - Pick every unit in SoulCaster and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Number of units in SoulCaster) Equal to 0) or ((Number of units in Circling_Units[(Custom value of (Picked unit))]) Greater than or equal to (10 + ((Level of Sense of the Souls for (Picked unit)) x 5)))
-
-
Then - Actions
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Picked unit) is in SoS_Casters) Equal to False
-
-
Then - Actions
-
Unit Group - Add (Picked unit) to SoS_Casters
-
Unit - Set the custom value of (Picked unit) to CustomValue
-
Set CustomValue = (CustomValue + 1)
-
-
Else - Actions
-
-
Set SoulMaster[Caster_Value] = (Picked unit)
-
Set SoulMasterLoc = (Position of (Picked unit))
-
-------- Angle to move from Deadunitloc to Soulmaster --------
-
Set Angle[Caster_Value] = (Angle from Deadunitloc to (Position of (Picked unit)))
-
-------- --------------------------------------------- --------
-
Unit - Create 1 DUMMY_UNIT for (Owner of (Picked unit)) at Deadunitloc facing Angle[Caster_Value] degrees
-
Set Dummyunit[Caster_Value] = (Last created unit)
-
Unit - Set the custom value of Dummyunit[Caster_Value] to (Custom value of (Picked unit))
-
Animation - Change Dummyunit[Caster_Value] flying height to (Random real number between 100.00 and 300.00) at 100.00
-
Unit Group - Add Dummyunit[Caster_Value] to Dummyunits
-
Custom script: call RemoveLocation(udg_SoulMasterLoc)
-
-
-
-
-
-
-
Custom script: call RemoveLocation(udg_Deadunitloc)
-
Custom script: call DestroyGroup(udg_SoulCaster)
-
Trigger - Turn on SoS Loop <gen>
-
-
-
SoS Loop
-
Events
-
Time - Every 0.03 seconds of game time
-
-
Conditions
-
Actions
-
For each (Integer A) from 0 to Caster_Value, do (Actions)
-
Loop - Actions
-
Set SoulMasterLoc = (Position of SoulMaster[(Integer A)])
-
Set Dummyloc = (Position of Dummyunit[(Integer A)])
-
Set Angle[(Integer A)] = (Angle from Dummyloc to SoulMasterLoc)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Distance between Dummyloc and SoulMasterLoc) Less than or equal to 200.00) and ((Dummyunit[(Integer A)] is in Circling_Units[(Custom value of SoulMaster[(Integer A)])]) Equal to False)
-
-
Then - Actions
-
Unit Group - Remove Dummyunit[(Integer A)] from Dummyunits
-
Unit Group - Add Dummyunit[(Integer A)] to Circling_Units[(Custom value of SoulMaster[(Integer A)])]
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Dummyunit[(Integer A)] is in Circling_Units[(Custom value of SoulMaster[(Integer A)])]) Equal to True
-
-
Then - Actions
-
Custom script: call RemoveLocation(udg_Offset)
-
Set CirclingAngle[(Integer A)] = (CirclingAngle[(Integer A)] + 3.50)
-
Set Offset = (SoulMasterLoc offset by 200.00 towards CirclingAngle[(Integer A)] degrees)
-
Unit - Move Dummyunit[(Integer A)] instantly to Offset
-
-
Else - Actions
-
Set Offset = (Dummyloc offset by 20.00 towards Angle[(Integer A)] degrees)
-
Unit - Move Dummyunit[(Integer A)] instantly to Offset
-
-
-
-
-
Custom script: call RemoveLocation(udg_SoulMasterLoc)
-
Custom script: call RemoveLocation(udg_Offset)
-
Custom script: call RemoveLocation(udg_Dummyloc)
-
-
-
-
-
SSLearn
-
Events
-
Unit - A unit Learns a skill
-
-
Conditions
-
(Learned Hero Skill) Equal to Sense of the Souls
-
-
Actions
-
Unit - Add Send Soul to (Triggering unit)
-
Unit - Set level of Send Soul for (Triggering unit) to (Level of Sense of the Souls for (Triggering unit))
-
-
-
SSCast
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Send Soul
-
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Circling_Units[(Custom value of (Triggering unit))] is empty) Equal to True
-
-
Then - Actions
-
Skip remaining actions
-
-
Else - Actions
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
SS_Integer Greater than or equal to 2999
-
-
Then - Actions
-
Set SS_Integer = 0
-
-
Else - Actions
-
Set SS_Integer = (SS_Integer + 1)
-
-
-
Set SS_Caster[SS_Integer] = (Triggering unit)
-
Set SS_Target[SS_Integer] = (Target unit of ability being cast)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(SS_Target[SS_Integer] is in SS_NO_DAMAGE) Equal to True
-
-
Then - Actions
-
Unit Group - Remove SS_Target[SS_Integer] from SS_NO_DAMAGE
-
-
Else - Actions
-
-
Set SS_Damage[SS_Integer] = (10.00 + (10.00 x (Real((Level of (Ability being cast) for (Triggering unit))))))
-
Set SoS_Casters = (Units owned by (Owner of (Triggering unit)) matching ((Custom value of (Matching unit)) Not equal to (Custom value of (Triggering unit))))
-
Set SS_Dummy[SS_Integer] = (Random unit from SoS_Casters)
-
Unit Group - Remove SS_Dummy[SS_Integer] from Circling_Units[(Custom value of (Triggering unit))]
-
Game - Display to (All players) the text: (String((Unit-type of SS_Dummy[SS_Integer])))
-
Trigger - Turn on SSLoop <gen>
-
-
-
SSLoop
-
Events
-
Time - Every 0.03 seconds of game time
-
-
Conditions
-
Actions
-
For each (Integer A) from 0 to SS_Integer, do (Actions)
-
Loop - Actions
-
Set SS_Dummyloc = (Position of SS_Dummy[(Integer A)])
-
Set SS_TargetLoc = (Position of SS_Target[(Integer A)])
-
Set SS_Angle[(Integer A)] = (Angle from SS_Dummyloc to SS_TargetLoc)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Distance between SS_Dummyloc and SS_TargetLoc) Less than or equal to 80.00) and ((SS_Target[(Integer A)] is in SS_NO_DAMAGE) Equal to False)
-
-
Then - Actions
-
Custom script: call RemoveLocation(udg_SS_Dummyloc)
-
Custom script: call RemoveLocation(udg_SS_TargetLoc)
-
Game - Display to (All players) the text: Damaging
-
Unit - Cause SS_Caster[(Integer A)] to damage SS_Target[(Integer A)], dealing SS_Damage[(Integer A)] damage of attack type Spells and damage type Normal
-
Unit - Remove SS_Dummy[(Integer A)] from the game
-
Unit Group - Add SS_Target[(Integer A)] to SS_NO_DAMAGE
-
-
Else - Actions
-
Set SS_Dummyloc = (Position of SS_Dummy[(Integer A)])
-
Set SS_TargetLoc = (Position of SS_Target[(Integer A)])
-
Set SS_Offset = (Dummyloc offset by 20.00 towards Angle[(Integer A)] degrees)
-
Unit - Move SS_Dummy[(Integer A)] instantly to SS_Offset, facing Angle[(Integer A)] degrees
-
Game - Display to (All players) the text: Moving
-
Custom script: call RemoveLocation(udg_SS_Dummyloc)
-
Custom script: call RemoveLocation(udg_SS_TargetLoc)
-
Custom script: call RemoveLocation(udg_SS_Offset)
-
-
-
-
-
-