Queue ids
In my last post, I mentioned working on queue process ids, and ways to manipulate individual queue entries. It's now checked into svn and being tested on M*U*S*H.
Credit first: Rhost did this a long time ago, and I'm basing what I'm doing on their help files.
Everything that goes into one of the queues (Player, object, wait, and semaphore. Things in the first two won't last long enough for you to see it, 99% of the time.) gets a numeric id, listed in @ps. @halt/pid PID can be used to cancel a single entry (Compared to before, when you had to use @halt to remove all of an object's entries. No problem if it had just one, but a pain if it had multiple @waits going.) @wait/pid PID=SECONDS will change the timeout of a wait or timed semaphore. (The /until switch is also handled). An enhancement I made compared to Rhost is that a leading + or - in the time will add or subtract that many seconds from the current timeout instead of completely changing it. (This is being added to Rhost after I mentioned it to Ashen-Shugar.)
Rhost does a few more things I haven't added yet: @freeze and @thaw for suspending and restarting entries, and @wait/recpid for storing the pid in a q-register where later commands in an action list can see it. I think that'll be going in sometime; dunno about the first. Maybe if someone requests it.
What I also want to do, along with /recpid, is to have some functions for returning information about a queue entry.
I'm also not sure about permissions for these commands: I'm currently doing control or having the halt @power. Might add queue too (So that you can halt all of an object's queued action lists if you have the halt power, or specific ones if you also have the queue power). And if you can completely remove an entry, you can also modify its timeout.
All that should be worked out with some testing time.
- raevnos's blog
- Login or register to post comments

Click 
