Here's one that will do that as well. If someone leaves the channel (part/quit), they lose their spot. Only ops can use !next/!done and the script will do what you asked for those commands.
** Replace all occurences of #chan with your channel name.
on *:join:#chan: {
write joinlist.txt $nick
}
on *:part:#chan: {
if ($read(joinlist.txt,w,$nick)) { write -dl $readn joinlist.txt }
}
on *:quit: {
if ($read(joinlist.txt,w,$nick)) { write -dl $readn joinlist.txt }
}
on *:text:!next:#chan: {
if ($nick isop $chan) {
if ($lines(joinlist.txt) == 0) { msg $chan No users waiting for help. | return }
set %help.next $read(joinlist.txt,1)
while (%help.next !ison $chan) {
write -dl1 joinlist.txt
if ($lines(joinlist.txt) == 0) { msg $chan No users waiting for help. | return }
set %help.next $read(joinlist.txt,1)
}
mode $chan +v %help.next
msg $chan %help.next $+ , how may we help you?
}
}
on *:text:!done:#chan: {
if ($nick isop $chan) {
if (%help.next ison $chan) { ban -ku10 $chan %help.next }
}
}
It works but if someone already have op
[16:30:58] [Join-#help] Tombraider
[16:30:58] [Mode-#help] ChanServ +o Tombraider
[16:44:13] [Join-#help] gast
[16:46:03] @BigSmoke : !next
[16:46:03] <@VoiceBot> Tombraider, how may we help you?
[16:46:03] [Mode-#help] VoiceBot +v Tombraider
[16:46:08] @BigSmoke : !next
[16:46:08] <@VoiceBot> Tombraider, how may we help you?
[16:46:09] @BigSmoke : !next
[16:46:09] <@VoiceBot> Tombraider, how may we help you?
but he leaves gast (and Tombraider is op) zo why he give him voice