• 🏆 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!

Mute (v1.3)

Presentation


The idea of this spell is not mine. Actually, it is treated of a request of squelch of Hive WorkShop.
But, I hope it likes and make a good advantage and thank me and the squelch for the spell.
Features


  • MUI
  • LeakLess
  • Hashtable
  • Easy to set/setup
  • Easy to import/use
Changelog


Current version (1.3)

  • Version - More efficient (i believe).
  • Descriptions - Updated descriptions, corrected and removed certain information for the current version.
  • Triggers - Updated, corrected and removed certain command lines, and added auxiliary comments for each function.

Old version (1.2)

  • Version - More efficient (i believe).
  • Descriptions - Updated descriptions, corrected and removed certain information for the current version.
  • Triggers - Updated, corrected and removed certain command lines, and added auxiliary comments for each function.

Spell's function


Caster Silences the opponents instantly in the selected area, preventing that the same ones use any spell.
So that the effect ends is necessary that the silenced unit is affected by a certain amount of spells. In case it doesn't reach the certain amount, the silence's effect returns in the opponent.

  • Area of effect: 350/400/450/500.
  • Cast Range: 900.
  • Hits max (to remove effect): 1/2/3/4.
  • Duration: 8/10/12/14 seconds.
  • CoolDown: 20 seconds.
  • Mana Cost: 100/115/130/145.
Spell's Triggers


Besides seeing the triggers, I ask that you makes the dowload of the spell for kindness and it can test him.
Thank you for the understanding good people!



[trigger=Trigger]
Mute Setup
Events
Map initialization
Conditions
Actions
-------- --------------------------------------------- --------
-------- Create a Hashtable: --------
Custom script: set udg_Mute_Hash = InitHashtable()
-------- --------------------------------------------- --------
-------- Necessary ability to work the functions of the spell (for hero): --------
Set Mute_Ability_Hero = Mute (Hero)
-------- Ability that Dummy (you will see ahead) for the effect of silence: --------
Set Mute_Ability_Silence = Mute (Silence)
-------- --------------------------------------------- --------
-------- Spell's AoE (Area of Effect): --------
Set Mute_AoE[1] = 300.00
Set Mute_AoE[2] = 350.00
Set Mute_AoE[3] = 450.00
Set Mute_AoE[4] = 500.00
-------- The indexes indicate the levels of the spell. --------
-------- --------------------------------------------- --------
-------- Necessary Buff for the functions: --------
Set Mute_Buff = Mute
-------- In the current version (1.1) and in the next versions, the buff will stay based on the buff Soul Burn. --------
-------- --------------------------------------------- --------
-------- Natural and maximum duration of the effect: --------
Set Mute_Duration_Max[1] = 8.00
Set Mute_Duration_Max[2] = 10.00
Set Mute_Duration_Max[3] = 12.00
Set Mute_Duration_Max[4] = 14.00
-------- The indexes indicate the levels of the spell. --------
-------- --------------------------------------------- --------
-------- Amount of used spells so that the unit can leave the effect: --------
Set Mute_Hit_Max[1] = 1
Set Mute_Hit_Max[2] = 2
Set Mute_Hit_Max[3] = 3
Set Mute_Hit_Max[4] = 4
-------- The indexes indicate the levels of the spell. --------
-------- --------------------------------------------- --------
-------- Color (purple) used for the messages of Starts and restarted: --------
Set Mute_Text_Color[1] = |cffC082FF
-------- Color (light green) used for the messages of Fades and Removed: --------
Set Mute_Text_Color[2] = |cff80FF80
-------- Don't forget that the values (as duration, hits and effect area for example) they are optional. Be free to edit. --------
-------- --------------------------------------------- --------
-------- List of messages that appeared when of the flotation texts they be created: --------
Set Mute_Text_Display[1] = (Mute_Text_Color[1] + <Mute Starts>)
Set Mute_Text_Display[2] = (Mute_Text_Color[2] + <Mute Fades>)
Set Mute_Text_Display[3] = (Mute_Text_Color[2] + <Removed>)
Set Mute_Text_Display[4] = (Mute_Text_Color[1] + <Restarted>)
-------- --------------------------------------------- --------
-------- TRUE to see flotation texts and FALSE for not seeing: --------
Set Mute_Text_On = True
-------- Floating text's size: --------
Set Mute_Text_Size = 11.00
-------- Angle for guide: --------
Set Mute_Text_Angle = 90.00
-------- Maximum life that the flotation text possesses: --------
Set Mute_Text_LifeSpan = 2.00
-------- Maximum life that the flotation text has for you to see him: --------
Set Mute_Text_FadinAge = 1.00
-------- I still don't know so that it serves Toward, but when i knows... I inform you good people. = D --------
Set Mute_Text_Toward = 100.00
-------- However, the variable above is important. --------
-------- --------------------------------------------- --------
-------- Dummy Type: --------
Set Mute_Type_Dummy = Dummy
-------- --------------------------------------------- --------
-------- Dummy that will be created soon is fast is necessary why she uses the spell to silence the target. --------
-------- It is her (Dummy) the really responsible for silencing the units. --------
-------- Caster is just responsible for selecting the units to be silenced. --------
-------- --------------------------------------------- --------
Set Mute_Point = (Center of (Playable map area))
Unit - Create 1 Mute_Type_Dummy for Neutral Passive at Mute_Point facing Default building facing degrees
Custom script: call RemoveLocation (udg_Mute_Point)
-------- --------------------------------------------- --------
Unit - Add Mute_Ability_Silence to (Last created unit)
Set Mute_Dummy = (Last created unit)
-------- --------------------------------------------- --------
-------- Destroy this Trigger to improve the performance of the spell: --------
Custom script: call DestroyTrigger (GetTriggeringTrigger())
-------- --------------------------------------------- --------
-------- ALL the variables and basic and necessary properties for the spell were loaded with SUCCESS. --------
-------- The remaining is with the triggers Mute Loop and Mute Cast. --------
-------- --------------------------------------------- --------
[/trigger]


[trigger=Trigger]
Mute Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
Actions
-------- --------------------------------------------- --------
-------- Caster: --------
Set Mute_Caster = (Triggering unit)
-------- Target: --------
Set Mute_Target = (Target unit of ability being cast)
-------- Level of the last spell used in Target --------
Set Mute_Level = (Load 3 of (Key Mute_Handle) from Mute_Hash)
-------- --------------------------------------------- --------
-------- In the next stage, the used spell will be verified: --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Ability being cast) Equal to Mute_Ability_Hero
Then - Actions
-------- In this part, the used spell is Mute: --------
-------- --------------------------------------------- --------
-------- Position of the area selected by Caster: --------
Set Mute_Point = (Target point of ability being cast)
-------- Level of the spell that Caster used: --------
Set Mute_Level = (Level of Mute_Ability_Hero for Mute_Caster)
-------- Unit group to be catches for the periodic effect of the spell: --------
Set Mute_Group_AoE = (Units within Mute_AoE[Mute_Level] of Mute_Point matching (((Matching unit) is alive) Equal to True))
-------- --------------------------------------------- --------
-------- Destroy/Remove any leak(s): --------
Custom script: call RemoveLocation (udg_Mute_Point)
Custom script: set bj_wantDestroyGroup = true
-------- --------------------------------------------- --------
-------- Pick all units in group: --------
Unit Group - Pick every unit in Mute_Group_AoE and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) belongs to an enemy of (Owner of Mute_Caster)) Equal to True
((Picked unit) is Magic Immune) Equal to False
((Picked unit) is an illusion) Equal to False
((Picked unit) is paused) Equal to False
((Picked unit) is hidden) Equal to False
Then - Actions
-------- Target (or the affected opponent for Mute (Hero): --------
Set Mute_Target = (Picked unit)
-------- Load Target's Key: --------
Custom script: set udg_Mute_Handle = udg_Mute_Target
-------- Restart/Set the necessary duration to finish the effect: --------
Hashtable - Save Mute_Duration_Max[Mute_Level] as 1 of (Key Mute_Handle) in Mute_Hash
-------- Level of the last spell used in Target --------
Hashtable - Save Mute_Level as 3 of (Key Mute_Handle) in Mute_Hash
-------- Save last unit that used the spell in Target (for flotation texts): --------
Hashtable - Save Handle OfMute_Caster as 4 of (Key Mute_Handle) in Mute_Hash
-------- Stage of addition of the unit Target for the periodic effects: --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) is in Mute_Group_Loop) Equal to True
Then - Actions
-------- In case Target is in the group: --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Mute_Text_On Equal to True
Then - Actions
-------- --------------------------------------------- --------
Set Mute_Text_Player = (Player group((Owner of Mute_Caster)))
-------- --------------------------------------------- --------
Floating Text - Create floating text that reads Mute_Text_Display[4] above Mute_Target with Z offset 0.00, using font size Mute_Text_Size, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
Floating Text - Hide (Last created floating text) for (All players)
Floating Text - Show (Last created floating text) for Mute_Text_Player
Floating Text - Change (Last created floating text): Disable permanence
Floating Text - Change the lifespan of (Last created floating text) to Mute_Text_LifeSpan seconds
Floating Text - Change the fading age of (Last created floating text) to Mute_Text_FadinAge seconds
Floating Text - Set the velocity of (Last created floating text) to Mute_Text_Toward towards Mute_Text_Angle degrees
-------- --------------------------------------------- --------
-------- Destroy/Remove any leaks: --------
Custom script: call DestroyForce (udg_Mute_Text_Player)
Custom script: set udg_Mute_Text_Player = null
-------- --------------------------------------------- --------
Else - Actions
Else - Actions
-------- In case Target is not in the group: --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Mute_Text_On Equal to True
Then - Actions
-------- --------------------------------------------- --------
Set Mute_Text_Player = (Player group((Owner of Mute_Caster)))
-------- --------------------------------------------- --------
Floating Text - Create floating text that reads Mute_Text_Display[1] above Mute_Target with Z offset 0.00, using font size Mute_Text_Size, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
Floating Text - Hide (Last created floating text) for (All players)
Floating Text - Show (Last created floating text) for Mute_Text_Player
Floating Text - Change (Last created floating text): Disable permanence
Floating Text - Change the lifespan of (Last created floating text) to Mute_Text_LifeSpan seconds
Floating Text - Change the fading age of (Last created floating text) to Mute_Text_FadinAge seconds
Floating Text - Set the velocity of (Last created floating text) to Mute_Text_Toward towards Mute_Text_Angle degrees
-------- --------------------------------------------- --------
-------- Destroy/Remove any leaks: --------
Custom script: call DestroyForce (udg_Mute_Text_Player)
Custom script: set udg_Mute_Text_Player = null
-------- --------------------------------------------- --------
Else - Actions
-------- --------------------------------------------- --------
-------- Add Target to Unit's Group: --------
Unit Group - Add Mute_Target to Mute_Group_Loop
-------- --------------------------------------------- --------
-------- Increase the value of the variable below, that means that there is an unit more the for the group: --------
Set Mute_Group_Count = (Mute_Group_Count + 1)
-------- --------------------------------------------- --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Mute Loop <gen> is on) Equal to True
Then - Actions
-------- If Trigger is on, it is not necessary to call her again. --------
Else - Actions
-------- If Trigger is turned off, call the same. --------
Trigger - Turn on Mute Loop <gen>
Else - Actions
-------- --------------------------------------------- --------
Else - Actions
-------- --------------------------------------------- --------
-------- In this section, the used spell is not Mute (Silence's effect) and it is not Mute (Hero): --------
-------- Besides, it is responsible for the spells stack used in the target. --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Ability being cast) Not equal to Mute_Ability_Silence
Or - Any (Conditions) are true
Conditions
(Mute_Target is in Mute_Group_Loop) Equal to True
(Mute_Target has buff Mute_Buff) Equal to True
Then - Actions
-------- Load Target's Key: --------
Custom script: set udg_Mute_Handle = udg_Mute_Target
-------- Current Hits: --------
Set Mute_Hit_X = (Load 2 of (Key Mute_Handle) from Mute_Hash)
-------- Increase the stack for Target: --------
Hashtable - Save (Mute_Hit_X + 1) as 2 of (Key Mute_Handle) in Mute_Hash
-------- Increasing the stack means that the target was gotten right by any spell originated of an unit neutral, opponent or allied. --------
Else - Actions
-------- --------------------------------------------- --------
-------- The rest of the functions is of responsibility of Trigger Mute Loop. --------
-------- --------------------------------------------- --------
[/trigger]


[trigger=Trigger]
Mute Loop
Events
Time - Every 0.05 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in Mute_Group_Loop and do (Actions)
Loop - Actions
-------- Begin selecting the affected units for the spell: --------
-------- --------------------------------------------- --------
-------- Target: --------
Set Mute_Target = (Picked unit)
-------- Load Target's key: --------
Custom script: set udg_Mute_Handle = udg_Mute_Target
-------- Remaining duration for the effect to finish: --------
Set Mute_Duration_X = (Load 1 of (Key Mute_Handle) from Mute_Hash)
-------- Amount of times that Target was affected by any spell: --------
Set Mute_Hit_X = (Load 2 of (Key Mute_Handle) from Mute_Hash)
-------- Level of the last spell used in Target: --------
Set Mute_Level = (Load 3 of (Key Mute_Handle) from Mute_Hash)
-------- Last Caster that used the spell in Target: --------
Set Mute_Caster = (Load 4 of (Key Mute_Handle) in Mute_Hash)
-------- --------------------------------------------- --------
-------- In the next condition the unit is verified can or not to leave the effect: --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
Mute_Hit_X Greater than or equal to Mute_Hit_Max[Mute_Level]
(Mute_Target is Magic Immune) Equal to True
Mute_Duration_X Less than or equal to 0.00
(Mute_Target is paused) Equal to True
(Mute_Target is hidden) Equal to True
(Mute_Target is alive) Equal to False
Then - Actions
-------- If one of the conditions above is TRUE, the unit will leave the effect of silence. --------
-------- --------------------------------------------- --------
-------- Floating Texts: --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Mute_Text_On Equal to True
Then - Actions
-------- --------------------------------------------- --------
Set Mute_Text_Player = (Player group((Owner of Mute_Caster)))
-------- --------------------------------------------- --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Mute_Hit_X Greater than or equal to Mute_Hit_Max[Mute_Level]
Then - Actions
-------- <Removed> --------
Floating Text - Create floating text that reads Mute_Text_Display[3] above Mute_Target with Z offset 0.00, using font size Mute_Text_Size, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
Else - Actions
-------- <Mute Fades> --------
Floating Text - Create floating text that reads Mute_Text_Display[2] above Mute_Target with Z offset 0.00, using font size Mute_Text_Size, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
-------- --------------------------------------------- --------
Floating Text - Hide (Last created floating text) for (All players)
Floating Text - Show (Last created floating text) for Mute_Text_Player
Floating Text - Change (Last created floating text): Disable permanence
Floating Text - Change the lifespan of (Last created floating text) to Mute_Text_LifeSpan seconds
Floating Text - Change the fading age of (Last created floating text) to Mute_Text_FadinAge seconds
Floating Text - Set the velocity of (Last created floating text) to Mute_Text_Toward towards Mute_Text_Angle degrees
-------- --------------------------------------------- --------
-------- Destroy/Remove any leak(s): --------
Custom script: call DestroyForce (udg_Mute_Text_Player)
Custom script: set udg_Mute_Text_Player = null
-------- --------------------------------------------- --------
Else - Actions
-------- --------------------------------------------- --------
-------- Remove Target of the group so that Trigger can be turned off (if the group is EMPTY): --------
Unit Group - Remove Mute_Target from Mute_Group_Loop
-------- Remove the buff (Mute_Buff) from Target: --------
Unit - Remove Mute_Buff buff from Mute_Target
-------- --------------------------------------------- --------
-------- Reduce the integer below, that means that the unit was removed of the group: --------
Set Mute_Group_Count = (Mute_Group_Count - 1)
-------- When the integer is equal to 0 or a negative number, the trigger will be turned off. --------
-------- --------------------------------------------- --------
-------- Clean the information saved in Target: --------
Hashtable - Clear all child hashtables of child (Key Mute_Handle) in Mute_Hash
-------- --------------------------------------------- --------
-------- The functions below are verified the group of units is empty: --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Mute_Group_Count Less than or equal to 0
Then - Actions
-------- Restart the value of the variable below to avoid mistakes: --------
Set Mute_Group_Count = 0
-------- With the null value for the variable above, this spell won't cause mistakes to add new units to the group. --------
-------- As it doesn't exist more any unit on the effect of this spell, turn off Trigger: --------
Trigger - Turn off (This trigger)
Else - Actions
-------- In case the opposite, this Trigger will stay on. --------
-------- --------------------------------------------- --------
Else - Actions
-------- --------------------------------------------- --------
-------- The condition below verifies the attempt of removal of the effect of silence: --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Mute_Target has buff Mute_Buff) Equal to False
Then - Actions
-------- Set the level of the spell for Dummy: --------
Unit - Set level of Mute_Ability_Silence for Mute_Dummy to Mute_Level
-------- Order that Dummy uses the spell (the order of the spell should be compatible with the order of spell of Mute [Silence's effect]): --------
Unit - Order Mute_Dummy to Neutral Fire Lord - Soul Burn Mute_Target
Else - Actions
-------- The silence effect can only be removed by the natural duration or if the hit limit be reached. --------
-------- --------------------------------------------- --------
-------- Reduce the duration of the effect of silence in the target: --------
Hashtable - Save (Mute_Duration_X - 0.05) as 1 of (Key Mute_Handle) in Mute_Hash
-------- --------------------------------------------- --------
-------- These are all of the necessary functions (I believe) for the working of this spell. --------
-------- --------------------------------------------- --------
[/trigger]


How to Import


To import this spell in any map it is necessary to copy some items in the list below:

  • Trigger - Folder "Mute".
  • Buff - Don't forget about the buff "Mute".
  • Unit - "Dummy" in Object Editor and Dummy's model "Dummy.mdx" in Import Manager.
  • Ability - the ability "Mute (Hero) " and "Mute (Silence's effect) " in Object Editor.

Tip - Enable the option: Automatically create unknown variables while pasting trigger dates (Go to: File>Preferences>General in your Warcraft III World Editor). This way, it won't be necessary to copy all the variables one for one.
Credits


  • I thank Hive WorkShop.
  • deathismyfriend for tips.
  • Moderator of this resource.
  • squelch for spell's request.
  • I thank you for the kindness, dowload and for everything! Thank you for participating in my work.
Contact


  • Doubts?
  • Critical?
  • Subjects?
  • Suggestions?
  • Find a bug/error?
  • Difficulties in the import?

For any subject, i recommend that you sends her for me, in this page, in my profile or for a pm (private message). I insist on helping.
Request


If it uses my spell in your map (project, work...) doesn't forget to do the kindness of thanking to me for the developed work.
If it can, i ask that it rewards with reputation, in that way I can reward the favor.
Please, don't stop visiting my page for more resources and contacts.
Keywords:
Hive WorkShop , Spell , Target Ground , Magic , Losam
Contents

Mute (v1.3) (Map)

Reviews
14:18, 19th Aug 2013 PurgeandFire: Overall, the spell looks good. The only problem is in the periodic trigger. You check if the group is empty. It is not advisable to do that with periodic triggers since it'll enumerate the group all over just to...

Moderator

M

Moderator

14:18, 19th Aug 2013
PurgeandFire: Overall, the spell looks good. The only problem is in the periodic trigger. You check if the group is empty. It is not advisable to do that with periodic triggers since it'll enumerate the group all over just to check if it is empty. A better way is to have an integer to keep track of the number of units in your group. Every time you add a unit to the group, increase the counter by one. Every time you remove a unit from the group, decrease the counter by one. When the counter is 0 (no units in the group), then turn off the trigger.

Fix that, and it will be approvable!
 
Level 29
Joined
Oct 24, 2012
Messages
6,543
change this.
  • Set Mute_Target = (Picked unit)
  • Set Mute_Handle = (Picked unit)
to this
  • Set Mute_Target = (Picked unit)
  • Set Mute_Handle = Mute_Target
anything u use twice or more store into a variable and use the variable. this is for speed and efficiency. example store this (Last created floating text) into a variable

store this (Key Mute_Handle) into a variable also.

for this do what i said above for the other one.
  • -------- Target (or the affected opponent for Mute (Hero): --------
  • Set Mute_Target = (Picked unit)
  • -------- Load Target's Key: --------
  • Set Mute_Handle = (Picked unit)
since the action happens no matter what in this trigger put it b4 or after the ITE
  • Then - Actions
  • -------- In case the trigger (Mute Loop) it is linked is not necessary call her again. --------
  • Unit Group - Add Mute_Target to Mute_Unit_Group[1]
  • Else - Actions
  • Unit Group - Add Mute_Target to Mute_Unit_Group[1]
  • Trigger - Turn on Mute Loop <gen>
u set this in the top of ur trigger.
  • Set Mute_Handle = (Target unit of ability being cast)
u dont need to set it again at the bottom of the trigger.

change this to a non-arrayed variable. Mute_Unit_Group[1]
if u need a few groups for spells dont use arrays. dont use arrays unless needed.
 
Level 29
Joined
Oct 24, 2012
Messages
6,543
sry i forgot u needed custom script for this. to do this u need custom script.
  • Custom script: set udg_Mute_Handle = udg_Mute_Target
u can also use temp variables rather than creating more variables for the trigger.
like tempUnit / tempKey / tempHandle

store picked unit b4 the condition checking so u can use the variable in the condition block.
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
  • If - Conditions
  • ((Picked unit) belongs to an enemy of (Owner of Mute_Caster)) Equal to True
  • ((Picked unit) is Magic Immune) Equal to False
  • ((Picked unit) is an illusion) Equal to False
  • ((Picked unit) is paused) Equal to False
  • ((Picked unit) is hidden) Equal to False
  • Then - Actions
  • -------- --------------------------------------------- --------
  • -------- Target (or the affected opponent for Mute (Hero): --------
  • Set Mute_Target = (Picked unit)
  • -------- Load Target's Key: --------
  • Set Mute_Handle = (Picked unit)
 
Last edited:
Level 29
Joined
Oct 24, 2012
Messages
6,543
not sure what u mean ?

use the custom script i said above to set the handle to the unit variable.

u can then use an integer to store the key of the handle like this.
  • Set tempInt = ( key tempHandle)
u can skip both steps with another custom script.

just set the unit to the unit variable then set a temp integer to its key value like this.

  • Set tempUnit = (Picked unit)
  • Custom script: set udg_tempInt = GetHandleId( udg_tempUnit)
the tempInt is now the units key value so just use tempInt instead of using key of handle
 
Level 11
Joined
Mar 27, 2011
Messages
293
not sure what u mean ?

use the custom script i said above to set the handle to the unit variable.

u can then use an integer to store the key of the handle like this.
  • Set tempInt = ( key tempHandle)
u can skip both steps with another custom script.

just set the unit to the unit variable then set a temp integer to its key value like this.

  • Set tempUnit = (Picked unit)
  • Custom script: set udg_tempInt = GetHandleId( udg_tempUnit)
the tempInt is now the units key value so just use tempInt instead of using key of handle

Again, thanks for the tips, and no problem, we sometimes forget.
 
Top