Ok, I fixed the hopping problem. I don't know why I thought I would have to write it from scratch since it's in the originally posted script. But, here you go.
on mods:TEXT:!dvoice*:#:{
/mode # -v $$2
/write dvupkeep.txt $address($2, 1) - 1
if ($3 isnum) {
/msg # 4,1 $$2 's voice has been taken away for $$3 seconds.
.timerdv $+ $$2 1 $3 /mode # +v $$2
.timerdv2 $+ $$2 1 $3 /write -ds $+ $address($2, 1) dvupkeep.txt
}
else {
/msg # 4,1 $$2 's voice has been taken away.
}
}
on mods:TEXT:!voice*:#:{
/mode # +v $$2
/write -ds $+ $address($$2, 1) dvupkeep.txt
}
Hope this works since I can't test it. =/ I'll check back here, tonight. Later.
on mods:TEXT:!dvoice* part devoices them. The 2nd part voices them back if you change your mind. =p
To devoice for 2 minutes type: !dvoice Username 120
The "Reason:" bit was me messing around with ideas. That part can be deleted:
/msg # 12,1 Reason: $4-
!voice will just override the timer like if you !dvoice someone for an hour and change your mind like 10 minutes into the wait. And yes hopping will mess this up. I'll write you a bit to stop that tonight. =p
You'll need to make a user level for "mods". I would go more in depth but I have to leave REALLY soon. But here's the code... =/ I forgot how to make part of this a "Code:" -- my horrible memory.
on mods:TEXT:!dvoice:#:{
/mode # -v $$2
/msg # 4,1 $$2 's voice has been taken away for $$3 seconds.
/msg # 12,1 Reason: $4-
/timer 1 $$3 /mode # +v $$2
}
on mods:TEXT:!voice:#:/mode # +v $$2
With the "mods" level, it'll only allow whoever has that user level to use it, not just everyone in the room. I also have a way to keeping people muted when they exit and come back but I'm pressed for time. If no one else posts a way of doing this, I will tonight. Sadly this only works for seconds, again if no one posts a minutes version, I'll do so tonight. I quickly grabbed this off of my old bot needs some re-working. But this should get you going.
Fixed the QUIT, and I have to admit that I'm not advanced enough yet to even comprehend your code. The method shown above is pretty much the only way I can work it out in my head. Thanks anyways, Jethro_. Will the "I'm back" check at the end of your script interfere with events added after the code, like in my version?
This away system is meant to be put into a bot and used by users in the same channel. Will read brb with or without a following message. "brb going out". Has !amsg to see another's away message, and users are registered as back from saying anything besides !amsg. The bottom block of coding (noted in snippet) should be the last segment of your bot.
I made this by request from a forum. User friendly Popup menus in: nicklist, channel, and custom window. No commands required. Will autovoice anyone who enters unless their host is in the 'Devoice List'. Also allows person to execute timed mutes, timers are preset and customizable in minutes and hours. Also won't execute in rooms you're not operator. Channel must be moderated to even have 'muting'..