Service bot v1

By xelent on Jul 16, 2008

This is help/service bot v1.

Instructions
: Copy/paste in remote (ALT+R).
: Load it, and you will be asked to set you que channel and cmds.


on *:load: {
  echo -g 3,1 Welcome and Thanks for Using My script : Service Bot v1.0
  echo -g Please report any bugs to xelent @ #xelent - Quakenet. 
  set %que.channel $?=\" Please enter the channel to be operated "
  set %cmds cmds topics open close next done mod status
  timerclosequerywindow 0 1800 /close -m
}
on *:start: {
  echo -g 3,1 Welcome and Thanks for Using My script : Service Bot v1.0
  echo -g Please report any bugs to xelent @ #xelent - Quakenet.
  timerclosequerywindow 0 1800 /close -m

}
on *:connect: {
  /join %que.channel
}
on *:join:%que.channel: {
  if ($read(queue.txt,w,$nick)) {
    queue.inform $nick
    halt
  }
  else {
    /timer 1 5 /checkuser $nick $chan
  }
}
on *:nick: {
  if ($read(queue.txt,w,$nick)) {
    write -dl [ $+ [ $readn ] ] queue.txt
    write -il [ $+ [ $readn ] ] queue.txt $newnick
  }
}
on *:part:%que.channel: {
  if ($read(queue.txt,w,$nick)) {
    que.del $nick
  }
}
on *:quit: {
  if ($read(queue.txt,w,$nick)) {
    que.del $nick
  }
}
on *:text:*:?: {
  if ($nick isop %que.channel) {
    if ($1 == ??) {
      if ($2 == help) {
        if (!$3) {
          .msg $nick you need to specify a command name! "?? help <commands>" Ex. "?? help topics"
        }
        elseif ($3) {
          if ($3 isin %cmds) {
            goto $3
            :cmds
            .msg $nick ?? cmds - Shows a list over the Bot Controllers
            halt
            :topics
            .msg $nick ?? topics - Shows a list over predefined topics to have in the channel topic.
            halt
            :open
            .msg $nick ?? open - Removes "invite only" on the channel so Users can join to be assisted.
            halt
            :close
            .msg $nick ?? close - Closes the channel, Allowing no users to join the channel.
            halt
            :next
            .msg $nick ?? next - Gives the next user in line voice and allowing him to speak. if he doesnt speak within 2 minuites you will be Noticed. 
            halt
            :done
            .msg $nick ?? done <nick> - Removes the user from the queue and devoices him. assuming he is done with getting help.
            halt
            :mod
            .msg $nick ?? mod - Switches the channel Moderation On and Off
            halt
            :status
            .msg $nick ?? status - Shows how many users left in the queue!
            halt
          }
        }
      }
    }
  }
}

on *:text:*:%que.channel: {
  if ($nick isop $chan) {
    if ($1 == ??) {
      if ($2 == commands) {
        .msg $nick Preset is "??": cmds, topics, open, close, next, done <nick>, mod, status.
        .msg $nick If you need any help. type "?? help <command>" in a private conversation.(PM)
      }
      if ($2 == open) {
        if (*i* iswm $chan(%que.channel).mode) {
          .mode $chan -i
          .msg $chan Channel is now open for Users to join.
        }
        else {
          .msg $chan Channel is allready open for users to join.
        }
      }
      if ($2 == close) {
        if (*i* iswm $chan(%que.channel).mode) {
          .msg $chan Channel is allready closed!
        }
        else {
          .mode $chan +i
          .msg $chan Channel is now Closed for Users to join.
        }
      }
      if ($2 == topics) {
        notice $nick rednblack-mix, rednblack-lines, Blue-shades, RednBlue, GreenNgray, NiceBlue! i.e "?? NiceBlue <topictext>".
      }
      if ($2 == rednblack-mix) {
        if ($3) {
          topic $chan 14,7æ7,4æ5,4æ4,5æ1,5æ5,1æ8,1 7¤(~ 0,1 $3- 7,1~)¤ 4,1 5,1æ1,5æ4,5æ5,4æ7,4æ4,7æ 
        }
      }
      if ($2 == rednblack-lines) {
        if ($3) {
          topic $chan 8|0,8|8,7|4,7|7,4|5,4|4,5|1,5|5,1|9,1 $3- 5,1|1,5|4,5|5,4|7,4|4,7|8,7|0,8|8,0|  9,12 
        }
      }
      if ($2 == blue-shades) {
        if ($3) {
          topic $chan 0,15%,11,15`%15,11%,12,11`%11,12%,2,12`%12,2%'1,2`%2,1% 1,2 .: 0,1 $3- 1,2:. 2,1`%1,2%12,2`%2,12%,11,12`%12,11%'15,11`%11,15%,0,15`% 
        }
      }
      if ($2 == rednblue) {
        if ($3) {
          topic $chan 4,15æ0æ4æ0æ4æ0æ4æ0æ4æ0æ4æ0æ4æ0æ4æ0æ4æ0 $3- 4æ0æ4æ0æ4æ0æ4æ0æ4æ0æ4æ0æ4æ0æ4æ0æ4æ0æ4æ0æ4æ0 
        }
      }
      if ($2 == Greenngray) {
        if ($3) {
          topic $chan 9`%0,9%, 3,9`%9,3%, 1,3`%3,1%,9 $3- 3,1`%1,3%, 9,3`%3,9%, 0,9`%9%,           
        }
      }
      if ($2 == Niceblue) {
        if ($3) {
          topic $chan 0,12æ¸2,12`æ12,2æ¸1,2`æ2,1æ¸0,1 -= $3- =- 2,1`æ1,2æ¸12,2`æ2,12æ¸0,12`æ12 
        }
      }
      if ($2 == mod) {
        if (*m* iswm $chan(%que.channel).mode) {
          mode $chan -m
        }
        else {
          mode $chan +m
        }
      }
      if ($2 == status) {
        .msg $chan there are $lines(queue.txt) users waiting for assistance
      }
      if ($2 == done) {
        if (!$3) {
          .notice $nick Invalid Format. ?? done <nick>
          halt
        }
        if ($3 !isvoice $chan) {
          .notice $nick No user with that nick is beeing supported!
          halt
        }
        if ($read(queue.txt,w,$3)) {
          write -ds [ $+ [ $3 ] ] queue.txt
          if ($3 ison $chan) {
            .mode $chan -v $3
            timerque. [ $+ [ $3 ] ] off
          }
        }
      }
      if ($2 == next) {
        var %x 1
        :first
        if (!$read(queue.txt,%x)) {
          .msg $chan No Users in Queue.
        }
        elseif ($read(queue.txt,%x)) {
          if ($read(queue.txt,%x) !ison $chan) {
            .msg $chan $read(queue.txt,%x) is not on the channel.
            write -dl1 queue.txt
            inc %x
            goto first
          }
          if ($read(queue.txt,%x) isvoice $chan) {
            inc %x
            goto first
          }
          if ($read(queue.txt,%x) !isvoice $chan) {
            .msg $chan $read(queue.txt,%x) Is the next user to be assisted.
            .mode $chan +v $read(queue.txt,%x)
            .notice $read(queue.txt,%x) Your up next. Ask your Question in $chan within 2 minuites
            .timerque. [ $+ [ $read(queue.txt,%x) ] ] 1 120 .notice $nick $read(queue.txt,%x) is taking more than 2 min to reply!
          }
        }
      }
    }
  }
  if ($read(queue.txt,w,$nick)) {
    timerque. [ $+ [ $nick ] ] off
  }
}
; ALIASES

alias checkuser {
  if (($1 ison $2) && ($1 !isop $2)) {
    add.queue $1
  }
}

alias add.queue {
  write queue.txt $1
  queue.inform $1
}

alias queue.inform {
  echo -g $read(queue.txt,w,$1)
  .notice $1 You are Number $readn in the queue. Please wait!
}

alias que.del {
  write -ds [ $+ [ $read(queue.txt,w,$1) ] ] queue.txt
}

Comments

Sign in to comment.
raulSTAR   -  Nov 08, 2009

Hi , thank for help ... but i don't know how to made because -probaMirc- You are Number 1 in the queue. Please wait! . And what command i need to type to voice the person?

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.