and im thinking we can store location, group, and lot other thing, what they are for ?
Locations/unit groups/... in a hashtable are still used for the same purposes as in normal variables, or what did you actually ask?
how can u make this with a timer and Being MUI, thats why i use loop
Well, first you need to define a key: in your case "Target Unit of Ability Being Cast".
You store that unit in a unit group (not a hashtable), then you loop a trigger (ever 0.03 sec, as you have said before).
As action, use "Pick every unit in Unit Group - Multiple Actions" and then load all variables inside the hashtable with the key "Picked Unit".
Change the variables if needed (e.g.: change the distance or something) and then save the variables in the hashtable again.
Once a condition is fulfilled (e.g.: final area has been reached), clear the child hashtable with the key "Picked Unit".
You will now have a spell which is time-based.
Timers are tricky indeed, the old spells often used this (and that's why old spells in GUI are rarely MUI).
If you need an example of a spell where 2 child hashtables have been used in 1 hashtable, I have attached a map to this post.
You will notice that I have used
"Set GrenadeValues[1] = (Load 0 of (Key (Load 6 of (Key (Picked unit)) in GrenadeTable)) from GrenadeTable)"
The 2 keys here are: "Picked Unit" (the one you can see) and "Caster" (you cannot see this, it is the value "6 of (Key (Picked unit)" that refers to the casting unit).
I have used waits inside the init spell and it works perfectly fine...
Maybe I could've done it otherwise, but I can't see how.