- Joined
- Jun 1, 2008
- Messages
- 485
ok, I'm just want to start 'survey' about your MUI method in GUI.
I've see some MUI GUI spell in Spell section and I want to ask which MUI method is the best for making a MUI GUI spell.
I find some method that i will describe below:
1. Local Variable
Insert a custom script to make a global variable local.
Can't be put on separated trigger and only one of type variable can localized.
2. Indexing system
Add array then index it, so on for each trigger triggered on same time, it have different array.
Edit: This just an example of Indexing system, they're other indexing system, but i made this to example because this easier to understand and added.
The best method i think. but need a loop on separate trigger to know which array belongs to it.
3. Custom Value
Give 'different' custom value to learner, then refer that number when using array.
Some old method, simple and nice, but add custom value to learner that can inherit other spell that using custom value too, but in different way.
4. Dynamic Trigger (Using No waits)
The worst methods i think. the idea is make the action to run with no delay. usually using by one trigger only. can be upgraded to "Object Editor Manipulation Methods". Trigger that run immediately is MUI, because other unit can't cast it at same time (because its immediately run).
in fact, example spell not needed of localizing system and variable.
Worst methods, most used to dynamic spell. can't be used to complex spell without upgrading it to "Object Editor Manipulation" system.
5. Object Editor Manipulation
"New" methods i find that used by Squiggy. With the manipulation and delayed use spell, it can make a "simple" but nice spell. If you're tricky enough, you can even make a complex spell.
I quote post by Squiggy
Nice and simple methods, but hard to import because you need other object editor ability.
That all method i see used on MUI GUI spell.
I want to ask for you opinion which is the best method to use on spell?
and if there's another way to make GUI MUI Spell, post here and describe it.
I've see some MUI GUI spell in Spell section and I want to ask which MUI method is the best for making a MUI GUI spell.
I find some method that i will describe below:
1. Local Variable
Insert a custom script to make a global variable local.
-
Local Variable
- Events
- Conditions
-
Actions
- Custom script: local effect udg_SFX
- Special Effect - Create a special effect at Point[1] using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
- Set SFX = (Last created special effect)
- Wait 2.00 seconds
- Special Effect - Destroy SFX
2. Indexing system
Add array then index it, so on for each trigger triggered on same time, it have different array.
-
Paladon Indexing System
- Events
- Conditions
-
Actions
-
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- MS_Integer[1] Equal to (==) 0
-
Then - Actions
- Trigger - Turn on Paladon Indexing System Periodic <gen>
- Else - Actions
-
If - Conditions
- Set MS_Integer[1] = (MS_Integer[1] + 1)
- Set MS_Integer[2] = (MS_Integer[2] + 1)
- Set Unit[MS_Integer[2]] = No unit
- Set Integer[MS_Integer[2]] = 0
-
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Paladon Indexing System Periodic
-
Events
- Time - Every 0.03 seconds of game time
- Conditions
-
Actions
-
Do Multiple ActionsFor each (Integer MS_Integer[3]) from 1 to MS_Integer[2], do (Actions)
-
Loop - Actions
-
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Unit[MS_Integer[3]] Not equal to (!=) No unit
-
Then - Actions
- Trigger - Insert some Action
-
If - Conditions
-
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
Do Multiple ActionsFor each (Integer MS_Integer[3]) from 1 to MS_Integer[2], do (Actions)
-
Events
The best method i think. but need a loop on separate trigger to know which array belongs to it.
3. Custom Value
Give 'different' custom value to learner, then refer that number when using array.
-
Custom Value Add
-
Events
- Unit - A unit Learns a skill
- Conditions
-
Actions
-
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Custom value of (Triggering unit)) Less than or equal to (<=) 0
-
Then - Actions
- Set MUI_Integer = (MUI_Integer + 1)
- Unit - Set the custom value of (Triggering unit) to MUI_Integer
- Else - Actions
-
If - Conditions
-
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Events
-
Custom Value Example Start
- Events
- Conditions
-
Actions
- Set Unit[(Custom value of (Triggering unit))] = (Triggering unit)
- Set Integer[(Custom value of (Triggering unit))] = 0
4. Dynamic Trigger (Using No waits)
The worst methods i think. the idea is make the action to run with no delay. usually using by one trigger only. can be upgraded to "Object Editor Manipulation Methods". Trigger that run immediately is MUI, because other unit can't cast it at same time (because its immediately run).
- FlashCut by Kisame
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to |cff0000FFFlash Cut|r
- Actions
- Custom script: local unit udg_FUnit1
- Custom script: local unit udg_FUnit2
- Custom script: local location udg_FPoint1
- Custom script: local location udg_FPoint2
- Custom script: local integer udg_FLevel
- Set FUnit1 = (Casting unit)
- Set FUnit2 = (Target unit of ability being cast)
- Set FPoint1 = (Position of FUnit2)
- Set FPoint2 = (FPoint1 offset by 90.00 towards ((Facing of FUnit2) + 180.00) degrees)
- Set FLevel = (Level of |cff0000FFFlash Cut|r for FUnit1)
- Unit - Move FUnit1 instantly to FPoint2
- Animation - Play FUnit1's Spell Slam animation
- Special Effect - Create a special effect at FPoint1 using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
- Special Effect - Destroy (Last created special effect)
- Unit - Cause FUnit1 to damage FUnit2, dealing ((Real(FLevel)) x 50.00) damage of attack type Hero and damage type Normal
- Custom script: call RemoveLocation(udg_FPoint1)
- Custom script: call RemoveLocation(udg_FPoint2)
Worst methods, most used to dynamic spell. can't be used to complex spell without upgrading it to "Object Editor Manipulation" system.
5. Object Editor Manipulation
"New" methods i find that used by Squiggy. With the manipulation and delayed use spell, it can make a "simple" but nice spell. If you're tricky enough, you can even make a complex spell.
-
Flashlight by Squiggy
-
Events
- Unit - A unit stars the effect of an ability
-
Conditions
- (Ability being cast) Equal to Flashlight
-
Actions
- Set dummy_pt = (Position of (Triggering unit))
- Set tar_u = (Target unit of ability being cast)
- Set tar_pt = (Position of tar_u)
- Set dist = 522.00
- Set exp_r = 0.20
- Set lvl = (Level of Flashlight for (Triggering unit))
- Unit - Create 1 dummy1 for (Owner of (Triggering unit)) at dummy_pt facing tar_pt
- Set dum_u = (Last created unit)
- Unit - Order dum_u to Orc-Farseer - 'chain lightning' tar_u
- Unit - Add a exp_r seconds Generic expiration timer to dum_u
- Unit - Create 1 dummy1 for (Owner of (Triggering unit)) at tar_pt facing tar_pt
- Unit - Add a exp_r second Generic expiration timer to dum_u
- Set dum_u = (Last created unit)
- Unit - Order dum_u to Human-Mountain King - 'Stormbolt' tar_u
-
For each (Integer A) from 1 to 10, do (Actions)
-
Loop - Asctions
- Set tar_pt2 = (tar_pt offset by dist towards ang degrees)
- Unit - Create 1 dummy2 for (Owner of (Triggering unit)) at tar_pt facing tar_pt2
- Set dum_u = (Last created unit)
- Unit - Add a (exp_r + 1.30) second Standard expiration timer to dum_u
- Unit - Order dum_u to Move to tar_pt2
- Unit - Create 1 dummy3 for (Owner of (Triggering unit)) at tar_pt2 facing tar_pt
- Set dum_u = (Last created unit)
- Unit - Set level of CL for dum_u to lvl
- Unit - Add a (exp_r + 1.30) seconds Generic expiration timer to dum_u
- Unit - Order dum_u to Orc-Farseer - 'chain lightning' tar_u
- Set ang = (ang + 36.00)
- Custom script: call RemoveLocation(udg_tar_pt2)
-
Loop - Asctions
- Set ang = 0.00
- Custom script: call RemoveLocation(udg_dummy_pt)
- Custom script: call RemoveLocation(udg_tar_pt)
-
Events
Here, I avoid a wait of 1 second (which should stop the spell process while the dummies move outwards) by preplacing the dummies and setting a delay of 1s to cast chain lightning
Nice and simple methods, but hard to import because you need other object editor ability.
That all method i see used on MUI GUI spell.
I want to ask for you opinion which is the best method to use on spell?
and if there's another way to make GUI MUI Spell, post here and describe it.
Last edited: