I can't test it right now, but I don't see anywhere where you are removing the nicks from the list once they are done. From my experience with help channel scripts, !next should do the following:

* Devoice the user who was voiced.
* Remove that user from the wait queue.
* Voice the next user in the wait queue if there is one.
* Usually there is also an automatic message to the channel stating something along the lines of "Nick, what is your question?"

Just from a quick scan of your script, it appears that you are voicing the next user, but leaving the nicks in the list and not devoicing the previous user. The biggest issue with leaving the nick in the list is that the list will get too large for a variable to handle as you continue to add more and more nicks to the wait queue.

Rather than changing the token you start at, you can just deltok the first nick when !next is used and then always voice the first nick. If you have any questions about that, feel free to ask. But I think you will understand what I mean and how to do that.

As an additional note, I think I'd check $ulevel to see if the user is an admin in the on join event. If so, don't add them to the wait queue at all. Then, I might leave it so that !next will "help" the next person regardless of their current channel mode. You're skipping anyone !isreg, which may be okay or may not depending on how the channel is run. That part is optional and depends entirely on what the OP wants to happen. It may be that they want to "help" the next person even if they are voiced or opped by someone for some other reason. Just a thought. Either way, I would skip adding the nick to the list if they are in the admin list.


Oh, and one more thing if you want to add in an extra feature that some help channels make use of. This one handles one user at a time (assuming you add the devoice in the !next part of the script). Some channels allow for multiple admins/staff to handle multiple questions at the same time. For example, I type !next and it voices nick1. I then start working on helping that nick. You type !next and it voices nick2, who you start helping. You are able to help nick2 before I finish helping nick1. You type !next -- nick2 is devoiced and nick3 is voiced. I then finish and type !next -- nick1 is devoiced and nick4 is voiced. Basically, it tracks which nick is being helped by which admin and devoices the correct nick depending which admin uses the !next command. It's not a big change to the script, but will need a little work to set up. You may want to wait and see if the OP needs that kind of functionality or not. Or you might just want to do it for the "challenge" it offers (not much of one, but hey... anything builds on experience).

Last edited by Riamus2; 18/04/11 07:12 PM.