;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Support script version 1.0 ;; ;; - By skauert © 2007 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; SETUP - Change variables ; ------------------------ alias hqsetup { ; Enable script set %hqon 1 ; Channel set %hqchannel #support ; Command char set %hqcommand . ; Remove from queue if kicked set %hqkick 0 ; Notice when moved up in queue set %hqnotice 1 } ; REMOTE COMMANDS ; --------------- on *:notice:$(%hqcommand $+ help):?: { if (%hqon == 1) { if ($hqcheck($nick) == 0) { hqueue $nick } } } on *:text:$(%hqcommand $+ *):%hqchannel: { if (%hqon == 1) { var %cmd = $mid($$1, 2) if (%cmd == next) { if ($nick isop %hqchannel) { hqnext } } } } on *:nick: { if (%hqon == 1) { if ($hqcheck($nick) == 1) { hqchange $nick $newnick } } } on *:quit: { if (%hqon == 1) { if ($hqcheck($nick) == 1) { hqdel $nick } } } on *:part:%hqchannel: { if (%hqon == 1) { if ($hqcheck($nick) == 1) { hqdel $nick } } } on *:kick:%hqchannel: { if (%hqon == 1) { if ($hqcheck($knick) == 1 && %hqkick == 1) { hqdel $knick } } } ; ALIASES ; ------- alias hqueue { var %nick = $$1 if ($hqcheck(%nick) == 0) { if (%hqnum == $null) { %hqnum = 0 } inc %hqnum set %hq- [ $+ [ %hqnum ] ] %nick .notice %nick You are now number %hqnum in the queue. msg %hqchannel %nick has requested help and is number %hqnum in the queue. } } alias hqnext { if (%hqnum == 0) { if (%hqcur isvoice %hqchannel) { mode %hqchannel -v %hqcur } unset %hqcur msg %hqchannel Queue is empty. } else { set %hqcur %hq-1 hqdel %hq-1 if (%hqcur !ison %hqchannel) { msg %hqchannel %hqcur is up next but is not present in the channel. } else { mode %hqchannel +v %hqcur msg %hqchannel Next up is %hqcur $+ . .notice %hqcur You are now free to state your question. } } } alias hqcheck { var %nick = $$1 var %i = 1 while (%i <= %hqnum) { if ($eval($+(%,hq-,%i),2) == %nick) { return 1 } inc %i } return 0 } alias hqdel { var %nick = $$1 var %i = 1 while (%i <= %hqnum) { if ($eval($+(%,hq-,%i),2) == %nick) { var %j = %i while (%j <= %hqnum) { set %hq- [ $+ [ %j ] ] $eval($+(%,hq-,$calc(%j + 1)),2) if (%hqnotice == 1) { if (%j != %hqnum) { .notice $eval($+(%,hq-,%j),2) You have moved up to number %j in the queue. } } inc %j } unset %hq- [ $+ [ %hqnum ] ] dec %hqnum break } inc %i } } alias hqchange { var %nick = $$1 var %newnick = $$2 var %i = 1 while (%i <= %hqnum) { if ($eval($+(%,hq-,%i),2) == %nick) { %hq- [ $+ [ %i ] ] = %newnick } inc %i } }