Here are the basic ways:
-Use a seperate index in an array for each unit
-Have no waits in your spell, or pass variables using something like custom values, or ability levels
Well firstly, if you don't use timed actions, none of the Event variables (Which in general are globals) that you use will be overwritten, so it will always be mui.
For example:
Unit casts Blah
Make dummy
Add generic expiration timer to last created
Order dummy to cast "Blah"
That is mui, because there are no waits, it all happens instantly with the correct details at the time.
You can also use unit custom data to pass on information like levels of abilities etc, rather than using a global integer.
Another way to make something MUI is to use unit groups.
Unit casts ability
Add unit to ability Unit Group
Every 3.00 seconds of gametime
Pick every unit in Ability Unit group
Do something.
Finally there are arrays. Normally they are used to make spells etc MPI, meaning multi-player rather than multi-unit, which means you can only have one unit per play cast the ability at any one time.
What that does is go set array[Player Number(Owner of triggering unit)] = blah
and works from that basis.
Using Unit Groups can be good too, for durational spells with buff.
You can check the units with that buff every sometime and do something with them, then remove them from the unit group if they don't have the buff anymore.
Here's an MUI spell I made in GUI - Black Arrow. I used an increasing integer variable (which increases everytime the ability is cast), and assigned the variable to a dummy unit's custom value and added the dummy to a unit group only used for dummy units. Casting unit, target points, angles etc (anything with a variable array basically) had the array value set to the current integer variable's value.
Then in my movement trigger, I picked all units in the dummy unit group, and moved them towards <Angle variable>[Array index - Custom value of picked unit]. Each unit's current distance, angle, and additional stuff (damage counters etc) was stored in variable arrays.
I took a long way around when making that spell (I created another dummy which was placed at a random point on the map, set its custom value to the picked unit's (the used dummy) custom value. That allowed me to use a different unit group loop (for AoE damage), but still refer back to the original picked unit's (the used dummy) custom value to access the variables. If you understood all of this, I hope it helps (and Black Arrow is the less-cluttered spell to work with ^^, my Frozen Orb ability is much larger imo)
Reddit, Slack, Google, Facebook, Instagram — these companies use our data — directly or indirectly — to train the next generation of AI language models. Yet, I don’t remember anyone asking our permission, and in doing so, these companies have proven the adage that customers’ data is their main...
Our new website went up early yesterday. Health Empowers You. 200 smoothie recipe guide and soon we will have detox, cognitive enhancement, weightloss teas and some coffee blends. https://healthempowersyou.net/products/smoothie-recipe-guide
It never fails that as soon as I say something about the bots they come back - this time they are under a whole new IP range - one thing in common though, Chinese!