menu channel { Runescape Toolkit:/RunescapeToolkit } alias RunescapeToolkit { $iif(!$dialog(RunescapeToolkit).title,dialog -m RunescapeToolkit RunescapeToolkit) } dialog RunescapeToolkit { title "Runescape Toolkit" size -1 -1 258 181 option dbu tab "Stats/Combat Lookup", 500, -2 1 294 239 list 1, 6 32 242 129, tab 500 size edit "", 2, 116 19 59 9, tab 500 center button "Lookup", 3, 178 19 31 9, tab 500 text "Runescape Stats Lookup", 4, 6 19 62 8, tab 500 text "User to look up:", 5, 74 19 39 8, tab 500 tab "Price Lookup", 600 list 6, 6 32 242 129, tab 600 size edit "", 7, 116 19 59 9, tab 600 center button "Lookup", 8, 178 19 31 9, tab 600 text "Runescape Price Lookup", 9, 6 19 62 8, tab 600 text "Item to look up:", 10, 74 19 39 8, tab 600 tab "Quest Lookup", 700 list 11, 6 32 242 129, tab 700 size button "Lookup Quest", 12, 125 18 38 12, tab 700 button "Update Quests", 13, 205 18 42 12, tab 700 button "List Quests", 14, 165 18 38 12, tab 700 text "Runescape Quest Lookup", 15, 6 19 62 8, tab 700 tab "News", 800 list 16, 6 32 242 129, tab 800 size button "Read Selected", 17, 161 18 42 12, tab 800 button "Retrieve latest", 18, 207 18 40 12, tab 800 text "Runescape News Lookup", 19, 7 19 62 8, tab 800 tab "Credits", 900 list 20, 6 32 242 129, tab 900 button "Exit", 21, 211 163 37 12, ok } alias -l setup.dll { dll $shortfn($scriptdirmdx.dll) SetMircVersion $version dll $shortfn($scriptdirmdx.dll) MarkDialog RunescapeToolkit dll $shortfn($scriptdirmdx.dll) SetControlMDX RunescapeToolkit $1 ListView report single grid > $shortfn($scriptdirviews.mdx) did -i $dname $1 1 headerdims $2- } alias -l dialog.cleanup { hfree RSToolkit .hmake RSToolkit 60 $iif($dialog(RunescapeToolkit).title,hadd RSToolkit Start 1) } on *:dialog:RunescapeToolkit:init:*: { if ($hget(RSToolkit,Start)) { hfree RSToolkit } .hmake RSToolkit 60 hadd RSToolkit Start 1 setup.dll 1 75 55 120 110 120 did -i $dname 1 1 headertext Skill $chr(9) Level $chr(9) Experience $chr(9) Rank $chr(9) EXP for Next Lvl } on *:dialog:RunescapeToolkit:close:*: { sockclose RSToolkit.stats sockclose RSToolkit.price sockclose RSToolkit.newsget sockclose RSToolkit.news sockclose RSToolkit.questupdate sockclose RSToolkit.quest hfree RSToolkit } alias a { return $asc($1) } on *:dialog:RunescapeToolkit:sclick:*: { if ($did = 600) { setup.dll 6 120 190 110 60 did -i $dname 6 1 headertext Item $chr(9) Price $chr(9) Category $chr(9) F2P/P2P } if ($did = 700) { if (!$did(11)) { did -b $dname 11 did -a $dname 11 Listing Quests: if ($read(Quest.txt)) { var %s = 1 while ($read(Quest.txt,%s)) { did -a $dname 11 $gettok($read(Quest.txt,%s),1,64) inc %s } } else { did -a $dname 11 Please press the Update Quest button to retrieve the latest quests. } did -e $dname 11 } } if ($did = 900) { did -a $dname 20 Runescape Toolkit did -a $dname 20 $+($chr(77),$chr(97),$chr(100),$chr(101),$chr(32),$chr(98),$chr(121),$chr(58),$chr(32),$chr(74),$chr(121),$chr(97),$chr(110),$chr(103)) did -a $dname 20 Questions or Comments find me on SwiftIRC in #Jyang. did -a $dname 20 $lf did -a $dname 20 Credits: did -a $dname 20 www.Zybez.net - Price and Quest parser did -a $dname 20 www.Runescape.com - Stats and News parser } if ($did = 3) { if ($did(2)) && ($did(2) != Enter a username) { if ($len($did(2)) <= 12) { did -r $dname 1 hadd RSToolkit RSN $did(2) if ($sock(RSToolkit.stats)) sockclose RSToolkit.stats sockopen RSToolkit.stats hiscore.runescape.com 80 } } else { did -ra $dname 10 Enter a username } } if ($did = 8) { if ($did(7)) && ($did(7) != No Item Specified) { hadd RSToolkit Item $did(7) did -r $dname 6 if ($sock(RSToolkit.price)) sockclose RSToolkit.price sockopen RSToolkit.price www.zybez.net 80 } else { did -a $dname 7 No Item Specified } } if ($did = 18) { did -r $dname 16 if ($sock(RSToolkit.newsget)) sockclose RSToolkit.newsget sockopen RSToolkit.newsget news.runescape.com 80 } if ($did = 17) { if ($did(16).seltext) { if ($hget(RSToolkit,$right($gettok($replace($did(16).seltext,$chr(32),$chr(95)),2,164),-1))) { hadd RSToolkit ID $ifmatch hdel RSToolkit NewsRead 1 var %s = $did(16).seltext did -r $dname 16 did -a $dname 16 Reading $+(%s,:) if ($sock(RSToolkit.news)) sockclose RSToolkit.news sockopen RSToolkit.news news.runescape.com 80 } } } if ($did = 14) { did -r $dname 11 did -a $dname 11 Listing Quests: if ($read(Quest.txt)) { var %s = 1 while ($read(Quest.txt,%s)) { did -a $dname 11 $gettok($read(Quest.txt,%s),1,64) inc %s } } } if ($did = 13) { did -ra $dname 11 Updating quests from Zybez Quest Database. did -b $dname 11 if ($sock(RSToolkit.questupdate)) sockclose RSToolkit.questupdate sockopen RSToolkit.questupdate www.zybez.net 80 } if ($did = 12) { if ($did(11).seltext) && ($did(11).seltext != $did(11,1)) { if ($read(Quest.txt,w,$+($did(11).seltext,*)),2,64) { hadd RSToolkit Quest $did(11).seltext did -ra $dname 11 Looking up: $chr(91) $+ $did(11).seltext $+ $chr(93) quest in the Zybez Database. if ($sock(RSToolkit.quest)) sockclose RSToolkit.quest sockopen RSToolkit.quest www.zybez.net 80 } else { did -a $dname 11 Unable to find: $chr(91) $+ $did(11).seltext $+ $chr(93) $+ . Please update your Quests. } } } } on *:sockopen:RSToolkit.stats: { sockwrite -n $sockname GET $+(/lang/en/aff/runescape/hiscorepersonal.ws?user1=,$hget(RSToolkit,RSN)) HTTP/1.1 sockwrite -n $sockname Host: $+(hiscore.runescape.com,$crlf,$crlf) } on *:sockread:RSToolkit.stats: { if ($sockerr) || (!$sockname) did -a RunescapeToolkit 1 $chr(9) $chr(9) An error occured. else { var %sock sockread %sock if (*does not feature in the hiscores* iswm %sock) { did -a RunescapeToolkit 1 $hget(RSToolkit,RSN) $chr(9) does $chr(9) not $chr(9) appear on the $chr(9) highscores. sockclose $sockname dialog.cleanup } if (*td align="left* iswm %sock) { hadd RSToolkit StatsCount 1 } if ($htmlstrip(%sock)) { if ($hget(RSToolkit,StatsCount)) { if ($ifmatch = 1) { hadd RSToolkit StatsSkills $hget(RSToolkit,StatsSkills) $htmlstrip(%sock) hadd RSToolkit StatsTemp $htmlstrip(%sock) hinc RSToolkit StatsCount } else { hadd RSToolkit $hget(RSToolkit,StatsTemp) $hget(RSToolkit,$hget(RSToolkit,StatsTemp)) $htmlstrip(%sock) if ($hget(RSToolkit,StatsCount) = 4) hdel RSToolkit StatsCount } } } if (*form action="hiscorepersonal.ws" method="POST" style="margin:0px;"* iswm %sock) { sockclose $sockname var %s = 1 while (%s <= $numtok($hget(RSToolkit,StatsSkills),32)) { var %x = $gettok($hget(RSToolkit,StatsSkills),%s,32) if ($gettok($hget(RSToolkit,%x),2,32) = Ranked) hadd RSToolkit %x $str(N/A $chr(32),3) if (%x != Overall) && ($gettok($hget(RSToolkit,%x),2,32) != 99) { var %z = 1, %y = 0 while (%z < $calc($gettok($hget(RSToolkit,%x),2,32) + 1)) { inc %y $calc(%z + 300 * (2 ^ (%z / 7)) / 4) inc %z } var %next = $bytes($calc($floor(%y) - $remove($gettok($hget(RSToolkit,%x),3,32),$chr(44))),b) } did -a RunescapeToolkit 1 %x $chr(9) $gettok($hget(RSToolkit,%x),2,32) $chr(9) $gettok($hget(RSToolkit,%x),3,32) $chr(9) $gettok($hget(RSToolkit,%x),1,32) $chr(9) $iif(%next,$v1,N/A) inc %s } var %a = $iif($gettok($hget(RSToolkit,Attack),2,32),$v1,1), %d = $iif($gettok($hget(RSToolkit,Defence),2,32),$v1,1), $& %s = $iif($gettok($hget(RSToolkit,Strength),2,32),$v1,1), %h = $iif($gettok($hget(RSToolkit,Hitpoints),2,32),$v1,10), $& %r = $iif($gettok($hget(RSToolkit,Ranged),2,32),$v1,1), %p = $iif($gettok($hget(RSToolkit,Prayer),2,32),$v1,1) , $& %m = $iif($gettok($hget(RSToolkit,Magic),2,32),$v1,1) var %base = $calc(((%d * 100) + (%h * 100) + ($iif($and(1,%p),$calc(%p - 1),%p) * 50)) / 400) var %melee = $calc(((%a * 130) + (%s * 130)) / 400) var %ranged = $calc($iif($and(1,%r),$calc(%r * 195 - 65),$calc(%r * 195)) / 400) var %magic = $calc($iif($and(1,%m),$calc(%m * 195 - 65),$calc(%m * 195)) / 400) if (%melee > %ranger) && (%melee > %mage) var %combat = $calc(%melee + %base) if (%ranger > %melee) && (%ranger > %mage) var %combat = $calc(%ranger + %base) if (%mage > %melee) && (%mage > %ranger) var %combat = $calc(%mage + %base) else var %combat = $calc(%melee + %base) var %combat = $floor(%combat) did -i RunescapeToolkit 1 2 Combat $chr(9) %combat dialog.cleanup } } } on *:sockopen:RSToolkit.price: { sockwrite -nt $sockname GET /priceguide.php?search_terms= $+ $replace($hget(RSToolkit,Item),$chr(32),$chr(43)) $+ &search_area=1&price_low=&price_high=&member=1&all_prices=1&sortby=name&sort=ASC&ppage=0 HTTP/1.1 sockwrite -nt $sockname Host: www.zybez.net $+ $crlf $+ $crlf } on *:sockread:RSToolkit.price: { if ($sockerr) { did -a RunescapeToolkit 6 An error occured. } else { var %sock sockread %sock if ($hget(RSToolkit,PriceCount) = 1) { hadd RSToolkit Item $htmlstrip(%sock) hinc RSToolkit PriceCount } elseif ($hget(RSToolkit,PriceCount) = 2) { hadd RSToolkit Price $htmlstrip(%sock) hinc RSToolkit PriceCount } elseif ($hget(RSToolkit,PriceCount) = 3) hinc RSToolkit PriceCount elseif ($hget(RSToolkit,PriceCount) = 4) { did -a RunescapeToolkit 6 $hget(RSToolkit,Item) $chr(9) $hget(RSToolkit,Price) $chr(9) $htmlstrip(%sock) $chr(9) $iif($hget(RSToolkit,PriceMembers),$v1,F2P) hinc RSToolkit PriceCount hdel RSToolkit PriceMembers } if (*img src="/img/member.gif" alt="[M]"/* iswm %sock) hadd RSToolkit PriceMembers P2P if (*td class="tablebottom">http://www.zybez.net* iswm %sock) { sockclose $sockname dialog.cleanup } if (*Your search did not return any results* iswm %sock) did -a RunescapeToolkit 6 $hget(RSToolkit,Item) not found. } } on *:sockopen:RSToolkit.news: { sockwrite -n $sockname GET $+(/newsitem.ws?id=,$hget(RSToolkit,ID)) HTTP/1.1 sockwrite -n $sockname Host: $+(news.runescape.com,$crlf,$crlf) } on *:sockread:RSToolkit.news: { if ($sockerr) || (!$sockname) did -a RunescapeToolkit 16 An error occured while reading the Runescape news. Please try again later. else { var %sock sockread %sock if (*