All pastes #965326 Raw Edit

Something

public text v1 · immutable
#965326 ·published 2008-03-31 22:29 UTC
rendered paste body
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

  nick GlobalBot
  server irc.gamesurge.net -j #GlobalBot
}
on *:connect:{ 
  if ($network == GameSurge) { mode $me +x | as auth name pass }
}
;$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   }
  elseif ($1 == 3) { return 7,1 $+ $2- $+  }
  else return $3-
}
on *!:join:#:{ if (%greeting) notice $nick $skin(%skin,Greeting,$($v1,2)) }
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 IP PORT $chan Pub1 }
  elseif ($1- == %trig $+ pub2) { hlserver IP PORT $chan Pub2 }
  elseif ($1- == %trig $+ pub3) { hlserver IP PORT $chan Pub3}
  elseif ($1- == %trig $+ pub4) { hlserver IP PORT $chan Pub4  }
  elseif ($1- == %trig $+ pub5) { hlserver IP PORT $chan Pub5 }
  elseif ($1- == %trig $+ pub6) { hlserver IP PORT $chan Pub6 }
  elseif ($1- == %trig $+ pub7) { hlserver IP PORT $chan Pub7 }
  elseif ($1- == %trig $+ pub8) { hlserver IP PORT $chan Pub8 }
  elseif ($1- == %trig $+ pub9) { hlserver IP PORT $chan Pub9 }
    
  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 $+ commands) || ($1- == %trig $+ help) {
    var %static-cmds @servers %servers
    var %text = Feel free to play in our pubs by #GlobalFrag 
    if ($binds) { 
      msg $chan $skin(%skin,Commands,$iif($v1,$v1 - %static-cmds,%static-cmds))
    }
    else { 
      msg $chan $skin(%skin,Commands,%static-cmds)
    }
    msg $chan $skin(3,%text)
  }
  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 = NAME: %hlserver.name $chr(124) IP: $+(%hlserver.ip,:,%hlserver.port) $chr(124) MAP: %hlserver.map $chr(124) PLAYERS: $calc(%hlserver.numplayers - %hlserver.bots) $+ $iif(%hlserver.bots != 0,( $+ %hlserver.numplayers $+ )) $+ / $+ %hlserver.maxplayers $iif(%hlserver.vac == 1,$chr(124) SECURE: VAC))
  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
}