/op /mode # +ooo $$1 $2 $3 /dop /mode # -ooo $$1 $2 $3 /j /join #$$1 $2- /p /part # /n /names #$$1 /w /whois $$1 /k /kick # $$1 $2- /q /query $$1 /send /dcc send $1 $2 /chat /dcc chat $1 /ping /ctcp $$1 ping se { return $readini(Settings.ini,$1,$2) } custcol { if ($readini(CustomColors.ini,$address($1,3),$2)) { return $ifmatch } else { return $se(Settings.ini,color,$2) } } rsn { if ($2) { return $2 } if ($readini(RSN.ini,n,$address($1,3),rsn)) { return $ifmatch } else { return $1 } } saka { return $iif($readini(Skills/TS.ini,$1,aka),$ifmatch,$1) } skill { if ($prop == lvl) { var %get = 2 } if ($prop == exp) { var %get = 3 } if ($prop == rank) { var %get = 1 } if (!$1 || !$2) { return Error } if (!$hget($1,$2)) { return - } return $remove($gettok($hget($1,$2),%get,32),$chr(44)) } nohtml { var %x,%i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x) %x = $replace(%x, ,$null) return %x } order { .tokenize 32 $1 var %a = 1,%ordrd while (%a <= $0) { if ($($+($,%a),2) >= $gettok(%ordrd,1,32)) { %ordrd = $($+($,%a),2) %ordrd } else { %ordrd = %ordrd $($+($,%a),2) } inc %a } return %ordrd } exp { var %x = 1, %level = $calc($1 - 1), %xp = 0 while (%x <= %level) { var %TempXp = $calc($floor($calc(%x + 300 * 2 ^ (%x / 7))) / 4) inc %xp %TempXp inc %x } return $int(%xp) } combat.base { var %def = $1,%hp = $2,%pray = $3 var %A = $calc(%def * 100) var %B = $calc(%hp * 100) var %C = $iif(*.* iswm $calc(%pray / 2),$calc((%pray -1) * 50),$calc(%pray * 50)) return $calc((%a + %B + %C) / 400) } combat.class { var %att = $1,%str = $2,%range = $3,%mage = $4 var %A = $calc(%att * 130) var %B = $calc(%str * 130) var %C = $iif(*.* iswm $calc(%range / 2),$calc(((%range - 1) + (%range * 2)) * 65),$calc(%range * 195)) var %D = $iif(*.* iswm $calc(%mage / 2),$calc(((%mage - 1) + (%mage * 2)) * 65),$calc(%mage * 195)) var %melee = $calc((%A + %B) / 400) var %range = $calc(%C / 400) var %mage = $calc(%D / 400) return $order(%melee %range %mage) } combat.final { var %base = $combat.base($iif(!$2,1,$2),$iif(!$4,10,$4),$iif(!$5,1,$5)) var %class = $combat.class($iif(!$1,1,$1),$iif(!$3,1,$3),$iif(!$6,1,$6),$iif(!$7,1,$7)) var %combat = $calc(%base + $gettok(%class,1,32)) return %combat } f2u { if ($regex($1,$+(/^,$chr(40),$se(regEx,compare),$chr(41),$,/Si))) { return Compare } if ($regex($1,$+(/^,$chr(40),$se(regEx,pc),$chr(41),$,/Si))) { return PestControl } if ($regex($1,$+(/^,$chr(40),$se(regEx,cmb),$chr(41),$,/Si))) { return Combat } if ($regex($1,$+(/^,$chr(40),$se(regEx,stats),$chr(41),$,/Si))) { return Stats } if ($regex($1,$+(/^,$chr(40),$se(regEx,overall),$chr(41),$,/Si))) { return Overall } if ($regex($1,$+(/^,$chr(40),$se(regEx,att),$chr(41),$,/Si))) { return Attack } if ($regex($1,$+(/^,$chr(40),$se(regEx,def),$chr(41),$,/Si))) { return Defence } if ($regex($1,$+(/^,$chr(40),$se(regEx,str),$chr(41),$,/Si))) { return Strength } if ($regex($1,$+(/^,$chr(40),$se(regEx,hp),$chr(41),$,/Si))) { return HitPoints } if ($regex($1,$+(/^,$chr(40),$se(regEx,range),$chr(41),$,/Si))) { return Ranged } if ($regex($1,$+(/^,$chr(40),$se(regEx,pray),$chr(41),$,/Si))) { return Prayer } if ($regex($1,$+(/^,$chr(40),$se(regEx,magic),$chr(41),$,/Si))) { return Magic } if ($regex($1,$+(/^,$chr(40),$se(regEx,cook),$chr(41),$,/Si))) { return Cooking } if ($regex($1,$+(/^,$chr(40),$se(regEx,wc),$chr(41),$,/Si))) { return WoodCutting } if ($regex($1,$+(/^,$chr(40),$se(regEx,fletch),$chr(41),$,/Si))) { return Fletching } if ($regex($1,$+(/^,$chr(40),$se(regEx,fish),$chr(41),$,/Si))) { return Fishing } if ($regex($1,$+(/^,$chr(40),$se(regEx,fm),$chr(41),$,/Si))) { return FireMaking } if ($regex($1,$+(/^,$chr(40),$se(regEx,craft),$chr(41),$,/Si))) { return Crafting } if ($regex($1,$+(/^,$chr(40),$se(regEx,smith),$chr(41),$,/Si))) { return Smithing } if ($regex($1,$+(/^,$chr(40),$se(regEx,mine),$chr(41),$,/Si))) { return Mining } if ($regex($1,$+(/^,$chr(40),$se(regEx,herb),$chr(41),$,/Si))) { return Herblore } if ($regex($1,$+(/^,$chr(40),$se(regEx,agil),$chr(41),$,/Si))) { return Agility } if ($regex($1,$+(/^,$chr(40),$se(regEx,thief),$chr(41),$,/Si))) { return Thieving } if ($regex($1,$+(/^,$chr(40),$se(regEx,slay),$chr(41),$,/Si))) { return Slayer } if ($regex($1,$+(/^,$chr(40),$se(regEx,farm),$chr(41),$,/Si))) { return Farming } if ($regex($1,$+(/^,$chr(40),$se(regEx,rc),$chr(41),$,/Si))) { return RuneCraft } if ($regex($1,$+(/^,$chr(40),$se(regEx,hunt),$chr(41),$,/Si))) { return Hunter } if ($regex($1,$+(/^,$chr(40),$se(regEx,const),$chr(41),$,/Si))) { return Construction } else { return $false } } cntn { return $readini(clist.ini,colors,$1) } Server .Lusers:/lusers .Motd:/motd .Time:/time Names .#mIRC:/names #mirc .#irchelp: /names #irchelp .names ?:/names #$$?="Enter a channel name:" Join .#mIRC:/join #mirc .#irchelp:/join #irchelp .join ?:/join #$$?="Enter a channel to join:" Channel .Try double-clicking in a channel window!: Other .Whois ?:/whois $$?="Enter a nickname:" .Query:/query $$?="Enter a nickname:" .Nickname:/nick $$?="Enter your new nickname:" .Away ..Set Away...:/away $$?="Enter your away message:" ..Set Back:/away .List Channels:/list - Edit Notes:/run notepad.exe notes.txt Quit IRC:/quit Leaving on *:SOCKOPEN:udc: { if ($sockerr) { if (!$window(@errors)) { .window @errors } echo -t @errors SockOpen Error when checking for updates: $sock(udc).wsmsg return } .sockwrite -n udc GET /update.txt HTTP/1.1 .sockwrite -n udc Host: thefreebot.com $+ $crlf $+ $crlf } on *:SOCKREAD:udc: { if ($sockerr) { if (!$window(@errors)) { .window @errrors } echo -t @errors SockRead Error when checking for updates: $sock(udc).wsmsg return } .sockread %udc if ($+(*.*,$chr(124),*) !iswm %udc) { halt } if (($readini(Settings.ini,versions,$gettok(%udc,1,124)) < $gettok(%udc,2,124)) || (!$readini(Settings.ini,versions,$gettok(%udc,1,124)))) { .sockclose udc | .updatefile %udc } } on *:SOCKCLOSE:udc: { echo -ts [FreeBot Updater] Updates Compelted, all files up to date! } alias updatefile { .tokenize 124 $1- .set %udf $1 .set %udv $2 .set %udn $3 .set %uds $4 .set %udi $5 .set %udl $6 if ($script($1) || $alias($1)) { if ($readini(Settings.ini,update,inform) && $server) { $($readini(Settings.ini,update,it),2) [FreeBot Updater] Updating $3 from $+([,$readini(Settings.ini,versions,$1),]) to $+([,$2,]) - Update: $5 - Feature disabled during update. } echo -ts [FreeBot Updater] Updating $3 from $+([,$readini(Settings.ini,versions,$1),]) to $+([,$2,]) - Update: $5 .unload $iif(%uds == remote,-rs,-a) $1 } else { if ($readini(Settings.ini,update,inform) && $server) { $($readini(Settings.ini,update,it),2) [FreeBot Updater] Adding $3 to FreeBot - Addition: $5 } echo -ts [FreeBot Updater] Adding $3 to FreeBot - Addition: $5 } if ($exists($shortfn($+($mircdir,$6)))) { .remove $+(",$mircdir,$6,") } .sockopen fbud thefreebot.com 80 } on *:SOCKOPEN:fbud: { if ($sockerr) { if (!$window(@errors)) { .window @errors } echo -t @errors SockOpen Error when checking for updates: $sock(fbud).wsmsg return } .set %fbud_read $false .sockwrite -n fbud GET /files/ $+ %udf HTTP/1.1 .sockwrite -n fbud Host: thefreebot.com $+ $crlf $+ $crlf } on *:SOCKREAD:fbud: { if ($sockerr) { if (!$window(@errors)) { .window @errors } echo -t @errors SockOpen Error when checking for updates: $sock(fbud).wsmsg return } .sockread %fbud if (!%fbud) { halt } if (!%fbud_read) { noop } else { .write $+(",$mircdir,%udl,") %fbud } if (%fbud == Content-Type: text/plain) { .set %fbud_read $true } } on *:SOCKCLOSE:fbud: { if (%uds != ext) { .load $iif(%uds == remote,-rs,-a) %udf } .writeini -n Settings.ini versions %udf %udv if ($readini(Settigns.ini,update,inform) && $server) { $($readini(Settings.ini,update,it),2) [FreeBot Updater] Update of %udn completed, commands re-enabled. } echo -ts [FreeBot Updater] Update of %udn  to $+([,%udv,]) completed! .sockopen udc thefreebot.com 80 } on *:START: { echo -ts [FreeBot Updater] Running Updater on Startup... .sockopen udc thefreebot.com 80 1000:*!admin@FreeBot.Creator %udc config.mrc|1.105|Bot Configuration|remote|Added access level management|config.mrc %udf config.mrc %udv 1.105 %udn Bot Configuration %uds remote %udi Added access level management %udl config.mrc %fbud_read $true %fbud } %sr %RSStats %RSSsread.458186 3 %RSSsskill.458186 Overall %RSSsrank.458186 %RSSsread.655747 3 %RSSsskill.655747 Overall %RSSsrank.655747 %RSSsread.588240 3 %RSSsskill.588240 Overall %RSSsrank.588240 %RSSsread.115680 3 %RSSsskill.115680 Overall %RSSsrank.115680 %bl