Difference between revisions of "How to make a VIP script"

From Scriptwiki
Jump to: navigation, search
m (typo fix)
m (typo)
Line 27: Line 27:
 
       if ($istok($3-,$+(@,%c),32)) {  
 
       if ($istok($3-,$+(@,%c),32)) {  
 
   
 
   
         ; @#somevipchannel was found, so the user is opped on this channel, we tell the user that he's a vip, and set mode +o for him on another chan
+
         ; @#somevipchannel was found, so the user is opped on this channel, we tell the user that he's a vip, and set mode +o for him on another chan (note that $2 is the users nick here)
         msg $nick you are opped on %c $+ , and that makes you a VIP.
+
         msg $2 you are opped on %c $+ , and that makes you a VIP.
 
         mode #YOURCHAN +o $2
 
         mode #YOURCHAN +o $2
 
         break  
 
         break  

Revision as of 10:47, 31 May 2007

How to check if a user is opped on some channel where you/you'r bot isn't. We'll be using vipchannels.txt to store the VIP channels we want to check, each channel on they're own line, ie:

#myvipchannel
#somechannel
#help.script

On to the script:

on !*:join:#YOURCHAN:{
  ; We'll set a temporary global variable to indicate, that we're checking the VIP, so we can halt the default /whois text from showing up
  ; Then we'll do whois on the nick, note the ! in the join event, it prevents the script from triggering, if it is you, who joined
  set %vipcheck 1
  whois $nick
}

raw 319:*:{
  ; Channels list
  ; In this raw we loop through the txt-file vipchannels.txt and see if the user is opped on any of these channels
  ; This will only be done when the %vipcheck is set
  if (%vipcheck) { 
    var %x = 1 
    while ($read(vipchannels.txt,%x)) { 
      ; put the channel name into a variable %c
      var %c = $v1

      ; see if $+(@,%c) (equals: @ $+ #somevipchannel) is found from the users channels
      if ($istok($3-,$+(@,%c),32)) { 

        ; @#somevipchannel was found, so the user is opped on this channel, we tell the user that he's a vip, and set mode +o for him on another chan (note that $2 is the users nick here)
        msg $2 you are opped on %c $+ , and that makes you a VIP.
        mode #YOURCHAN +o $2
        break 
      } 
      inc %x 
    }

    ; haltdef so that you cannot see the channels everytime someone joins
    haltdef 
  } 
}

raw 318:*:{ 
  ; end of /whois
  ; here we just unset the temporary variable %vipcheck, so we can use normal /whois again
  if (%vipcheck) { unset %vipcheck | haltdef } 
}

;;; Halting other /whois information from showing up
raw 301:*:{ 
  ; away
  if (%vipcheck) { haltdef } 
}
raw 311:*:{ 
  ; users ident, host and realname
  if (%vipcheck) { haltdef } 
}
raw 312:*:{ 
  ; server information
  if (%vipcheck) { haltdef } 
}
raw 313:*:{ 
  ; if the user is IRCop
  if (%vipcheck) { haltdef } 
}
raw 317:*:{ 
  ; signon and idle time
  if (%vipcheck) { haltdef } 
}
raw 330:*:{ 
  ; users auth
  if (%vipcheck) { haltdef } 
}