rendered paste bodyon *: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
}