All pastes #973400 Raw Edit

Mybot

public text v1 · immutable
·published 2008-04-06 02:18 UTC
rendered paste body
on *:connect:{ 
  if ($network == GameSurge) { mode $me +x | as auth OnlineSecurity 2NI0UhAW }
  if ($network == GameSurge) { /join #vendretta | /join #globalgaming | /join #ggstaff ggs }
}
on *:join:#vendretta:{ notice $nick %greet1 | notice $nick %greet2 }
on *:TEXT:$cmd*:#: {
  if ($nick isop #vendretta) {
    if ($2 == nick)  {
      nick $3-  | var %text = notice $nick You Have Set $2 To $3-
    }     
    if ($2 == join)  {
      join $3-  | notice $nick You Have joined $+ , $3-
    }
    if ($2 == part)  {
      part $3-  | notice $nick You Have parted $+ , $3-
    }
    if ($2 == topic)  {
      /cs $chan topic $3-  | notice $nick You Have changed the topic to $3-
    }    
  }
}
on *:TEXT:$set*:#: {
  if ($nick isop #vendretta) {
    if ($2 == greeting)  {
      set %greet1 $3-  | notice $nick You've Have Set $2 To $3-
    }    
    if ($2 == greeting2)  {
      set %greet2 $3-  | notice $nick You've Have Set $2 To $3-
    }
    if ($2 == greeting3)  {
      set %greet3 $3-  | notice $nick You've Have Set $2 To $3-
    }
  }
}
on *:open:?:{
  if ($nick !isop #globalgaming) {
    if ($query(0) == 1) var %queryword = query
    else var %queryword = queries
    msg $nick Hello $nick $+ , Im a bot; I dont accpect querys.
  }
}
on *:TEXT:*:#: {
  if ($nick isreg $chan) {
    if (*www* iswm $1- || *http://* iswm $1- || *#* iswm $1-) { notice $nick Please Dont advertise Channels or Websites in here. Thank You. }
    inc %ad. [ $+ [ $nick ] ]
  }
}
on *:start:{
  set %binds $+(%botnick,_binds)
  set %botfile %binds $+ .db
  set %trig $
  set %skin 2

  if (!$hget(%binds)) .hmake %binds
  if ($exists(%botfile)) .hload -m %binds %botfile
}
;$skin(<SkinNumber>,<name>,<text>)
alias skin {
  if ($1 == 1) { 
    return 15,1[14,1«0,1»15,1 9 $+ $2 0,1«14,1»15,1]: 4,1 $+ $3- $+  
  }
  elseif ($1 == 2) { return 3,0[ 14«  3[1 $2 3]14 $3-  14» 3] }
  elseif ($1 == 3) { return 7,1 $+ $2- $+  }
  else return $3-
}
on *:text:*:#:{
  var %servers = @pub1 @pub2 @pub3 @pub4 @pub5 @pub6 @pub7 @pub8 @pub9
  if ($1- == %trig $+ servers) { 
    var %text = $skin(%skin,Servers,%servers)
    msg $chan %text
  }
  elseif ($1- == %trig $+ pub1) { hlserver 63.210.145.246 27015 $chan PUG1 }


  elseif ($1 == %trig $+ bind) {
    if ($nick !isop $chan) { notice $nick $skin(%skin,Error,You lack access to that command.) | halt }
    elseif (!$3) || ($4) { 
      var %text = Invalid syntax, use like this $+(%trigger,bind) <Name> <Value>
      var %text = $skin(%skin,Bind,%text)
      notice $nick %text
    }
    elseif ($hget(%binds,$2)) { 
      var %text = $skin(%skin,Bind,Sorry that bind already exists.)
      notice $nick %text
    }
    elseif ($regex($2,W)) {
      var %text = $skin(%skin,Bind,Please use valid characters for bind name.)
      notice $nick %text
    }
    else {
      if ($regex($2,^pub\d)) { 
        var %text = $skin(%skin,Bind,You cannot bind to that.)
        notice $nick %text
        halt 
      }
      hadd -m %binds $2 $3-
      var %text = $skin(%skin,Bind,Successfully bound $qt($2) to $qt($3-))
      notice $nick %text
      .hsave %binds %botfile
    }
  }
  elseif ($1 == %trig $+ unbind) {
    if ($nick !isop $chan) { notice $nick $skin(%skin,Error,You lack access to that command.) | halt }
    elseif (!$2) || ($3) { 
      var %text = Invalid syntax, use like this $+(%trigger,unbind) <Name> 
      var %text = $skin(%skin,Unbind,%text)
      notice $nick %text
    }
    elseif (!$hget(%binds,$2)) {
      notice $nick $skin(%skin,Unbind,Sorry no bind by that name exists.)
    }
    else {
      if ($regex($2,^pub\d)) { notice $nick $skin(%skin,Unbind,You cannot unbind to that.) | halt }
      .hdel -sw %binds $2
      notice $nick $skin(%skin,Unbind,Successfully unbound $qt($2))
      .hsave %binds %botfile
      if ($lines(%botfile < 1)) { .remove %botfile }
    }
  }
  elseif ($1 == %trig $+ set) {
    if ($nick !isop $chan) { notice $nick $skin(%skin,Error,You lack access to that command.) | halt }
    elseif (!$3) {
      var %text = Invalid syntax, use like this $+(%trigger,set) <CommandName> <value>
      var %text = $skin(%skin,Set,%text)
      notice $nick %text
    }
    else { 
      hadd -m %binds $2 $3- 
      .hsave %binds %botfile 

      if ($2 == Greeting) {
        if ($3 == *) unset greeting
        else set %greeting $1- 
        notice $nick $skin(%skin,Set,Greeting has been set.) 
      }

    }
  }

  ;Check if persons command is a bind.
  elseif $hget(%binds,$remove($1,%trig)) && (!$2) { 
    var %text = $skin(%skin,$remove($1,@),$hget(%binds,$remove($1,%trig)))
    msg $chan %text
    return 
  }
}

alias hlserver {
  set %hlserver.ip $$1
  set %hlserver.port $$2
  set %hlserver.signal $$2
  set %hlserver.chan $$3
  set %hlserver.cmd $$4

  set %hlserver.spitchan $iif($3,$3,$active)     
  if ($numtok($$1,58) == 1) {
    tokenize 32 %hlserver.ip $+ :27015 %hlserver.spitchan
  }
  sockudp -k hlchanserver $gettok($$1,1,58) $gettok($$1,2,58) ÿÿÿÿTSource Engine Query
  set %hlserver.ping $ticks  
  .timertimeout 1 3 timeout
}
on *:udpread:hlchanserver:{
  .timertimeout off
  var %hlserver.ping = $calc($ticks - %hlserver.ping)
  sockread &temp
  sockclose hlchanserver
  if ($bvar(&temp,5) == 73) {
    var %hlserver.source 1
    var %i = 7
  }
  elseif ($bvar(&temp,5) == 109) {
    var %i = $calc($bfind(&temp,1,0) + 1)
  }
  var %hlserver.port = %hlserver.port
  var %hlserver.name = $bvar(&temp,%i,100).text
  inc %i $len(%hlserver.name) 
  inc %i
  var %hlserver.map = $bvar(&temp,%i,100).text
  inc %i $len(%hlserver.map) 
  inc %i
  var %hlserver.shortmod = $bvar(&temp,%i,100).text
  inc %i $len(%hlserver.shortmod) 
  inc %i
  var %hlserver.mod = $bvar(&temp,%i,100).text
  inc %i $len(%hlserver.mod) 
  inc %i $iif(%hlserver.source == 1,3,1)
  var %hlserver.numplayers = $bvar(&temp,%i,1)
  inc %i
  var %hlserver.maxplayers = $bvar(&temp,%i,1)
  if (%hlserver.source == 1) {
    var %hlserver.bots = $bvar(&temp,$calc(%i + 1),1)
  }
  inc %i 4
  var %hlserver.password = $bvar(&temp,%i,1)
  inc %i $len(%hlserver.password)
  if (%hlserver.source == 1) {
    inc %i
  }
  else {
    inc %i 2
    var %i = $calc($bfind(&temp,%i,0) + 1)
    var %i = $calc($bfind(&temp,%i,0) + 1)
    var %i = $calc($bfind(&temp,%i,0) + 11)
  }
  var %hlserver.vac = $bvar(&temp,%i,1)
  if (%hlserver.source != 1) {
    var %hlserver.bots = $bvar(&temp,$calc(%i + 1),1)
  }
  var %text = 3IP14:1 $+(%hlserver.ip,:,%hlserver.port) $chr(124) 3MAP14:1 %hlserver.map $chr(124) 3PLAYERS14:1 $calc(%hlserver.numplayers - %hlserver.bots) $+ $iif(%hlserver.bots != 0,( $+ %hlserver.numplayers $+ )) $+ / $+ %hlserver.maxplayers
  msg %hlserver.chan $skin(%skin,%hlserver.cmd,%text)
  if (%hlserver.signal) {
    .signal hlserver %hlserver.signal  
  }
  unset %hlserver.*    
}
alias timeout {
  sockclose hlchanserver
  msg %hlserver.chan $skin(%skin,%hlserver.cmd,Not Responding)
  .signal hlserver %hlserver.signal  
  unset %hlserver.*  
}
alias binds {
  var %x 1
  while $hfind(%binds,*,%x,w) {
    var %mybinds = %mybinds %trig $+ $v1
    inc %x
  }
  return %mybinds
}