And he said, BEHOLD, I have given unto thee the do queue, that thou mayst go forth and own in the comfort of the client of thine own choosing, even if it be HTML5.
The serverside queue is great. It significantly reduces the impact of lag and, if you use CONFIG USEQUEUEING ON, you can kinda sorta use it like a do queue.
A lot of people seem confused about how the serverside queue works. Every time you get balance and equilibrium, every
command in your EQBAL queue fires. If you use CONFIG USEQUEING ON, any commands that take balance after the first will run and fail
and automatically get added to the queue (just like when you try to do something off-balance). This gets you behaviour kinda sorta like a do queue.
But only kinda-sorta.
Try to queue up "jab rat" three times and it'll work just fine. Try to queue up "envenom rapier delphinium", "jab Tael", "envenom rapier voyria", "jab Tael", "envenom rapier curare", "jab Tael", and it'll jab me with delphinium, then immediately slap on a coat of voyria then a coat of curare, then jab me on the next balance (curare), then jab me on the third balance (voyria). This is probably not what you wanted to do! And heaven help you if you are, for instance, a jester trying to use the queue to envenom and throw a series of knives.
What you need is a do queue!Executive summary:
This script is a do/dofree/dorepeat queue. It works like the SVO do queue in pretty much every way. Every time you get balance and equilibrium back, everything in the dofree queue will go off, then the next thing in the do queue will go off. You can use dorepeat to toggle repeating something forever (usually used for bashing). It uses serverside queueing intelligently so lag shouldn't be an issue (unless your ping is longer than the balance times of the actions you have queued up).Installation:
Import by unzipping the .js file, clicking the gear in the lower right corner of the client, changing to the Reflex Packages tab, and dragging the .js file into the indicated space.Instructions:
Instructions, an alias reference, and an API can be found in a gigantic comment at the top of the onLoad function (go to the Reflexes tab, change the drop-down menu to Queue, and click "onLoad").Notes:
- I tested this a fair amount and everything seems to be working, but let me know if any bugs pop up.
- I prefer not to have echos for things like this (since none of the commands can "fail", if I press a bind or use an alias, I already know what happened), but they should be easy to add if you want them (just add them to the aliases).
- It does not expand client aliases like SVO. I might add this feature later, once I can figure out how, but don't count on it.
- It doesn't know about web/broken arms/etc. If you try to do something, but it fails and you don't end up using balance, you need to DONEXT to get it going again. I'll probably add a timer like in SVO at some point, but for now you need to DONEXT or do something else that will consume balance.