been a really long time since my last post so here it is :)
its a RuneScape Dialog helper, i got the idea from [-srankie-]
but since the code doesnt work anymore i decided to make my own
u need to have MDX, save the code below into ur $mircdirRuneScapeDialog\RuneScapedialog.ini and load it and it should start downloading some extra files
after the download is finished the Download dialog will close and the main dialog will open
Features
a pic of the dialog:
http://img3.imageshack.us/img3/6153/rsddx.jpg
dialog RSD {
title "RuneScape Dialog Helper - by SunSlayer"
size -1 -1 253 147
option dbu
tab "News", 15, 0 -3 253 156
tab "Player Stats", 1
tab "Monsters", 2
tab "Prices", 3
tab "Items", 17
tab "Combat Calc", 23
tab "Misc I", 48
tab "Misc II", 105
box "Alch Loss", 66, 1 54 248 52, tab 48
combo 68, 3 73 51 26, tab 48 drop
list 4, -1 11 251 121, tab 1 size
list 5, -1 11 250 121, tab 2 size
list 6, -1 11 250 121, tab 3 size
list 19, -1 11 250 121, tab 17 size
button "Look Up!", 7, 60 134 37 12, tab 1
button "Look Up!", 8, 60 134 37 12, tab 2
button "Look Up!", 9, 60 134 37 12, tab 3
button "Look Up!", 20, 60 134 37 12, tab 17
button "&Close", 10, 209 134 37 12, cancel
button "Compare", 14, 116 134 32 12, tab 1
edit "", 11, 5 136 50 10, tab 1 autohs
edit "", 12, 5 136 50 10, tab 2 autohs
edit "", 13, 5 136 50 10, tab 3 autohs
edit "", 21, 5 136 50 10, tab 17 autohs
icon 16, 0 96 252 38, $rsdir(head_image_mob.jpg), 0 tab 15
text "Loading...", 22, 0 137 207 8, tab 15 center
icon 24, 37 19 15 12, $rsdir(skill_icon_Attack1.gif), 0 tab 23
icon 25, 37 38 15 12, $rsdir(skill_icon_Strength1.gif), 0 tab 23
icon 26, 37 55 15 12, $rsdir(skill_icon_Defence1.gif), 0 tab 23
icon 27, 37 74 15 11, $rsdir(skill_icon_Hitpoints1.gif), 0 tab 23
icon 28, 126 18 15 11, $rsdir(skill_icon_Ranged1.gif), 0 tab 23
icon 29, 126 38 15 11, $rsdir(skill_icon_Magic1.gif), 0 tab 23
icon 30, 126 55 15 11, $rsdir(skill_icon_Prayer1.gif), 0 tab 23
icon 31, 126 74 15 11, $rsdir(skill_icon_Summoning1.gif), 0 tab 23
edit "1", 32, 55 20 40 10, tab 23
edit "1", 33, 55 38 40 10, tab 23
edit "1", 34, 55 55 40 10, tab 23
edit "10", 35, 55 73 40 10, tab 23
edit "1", 36, 146 18 40 10, tab 23
edit "1", 37, 146 38 40 10, tab 23
edit "1", 38, 146 56 40 10, tab 23
edit "1", 39, 146 74 40 10, tab 23
text "3.4", 40, 74 92 20 8, tab 23
button "Calc", 41, 98 104 32 10, tab 23
button "Get Data", 42, 67 134 40 10, tab 23
edit "", 43, 122 134 40 10, tab 23 autohs
text "", 44, 102 136 95 8, tab 2
text "", 45, 102 136 95 8, tab 3
text "", 46, 102 136 95 8, tab 17
text "RuneScape News", 18, 0 12 251 8, tab 15 center
edit "Loading...", 47, 1 20 250 65, tab 15 read multi vsbar
link "www.RuneScape.com", 49, 2 137 53 8, tab 48
link "www.Zybez.net", 50, 57 137 40 8, tab 48
link "www.tip.it", 51, 98 137 27 8, tab 48
link "www.RuneHQ.com", 52, 125 137 46 8, tab 48
link "www.mirc.com", 53, 173 137 36 8, tab 48
box "Calculator", 54, 1 13 97 41, tab 48
edit "", 55, 1 21 95 10, tab 48
edit "", 56, 1 44 95 10, tab 48 read autohs
button "Clear", 57, 1 32 30 10, tab 48
button "Calculate", 58, 33 32 30 10, tab 48
button "Clipboard", 59, 65 32 30 10, tab 48
box "Clan Info", 60, 99 13 149 41, tab 48
edit "", 61, 133 21 65 10, tab 48
text "Clan Name:", 62, 102 21 28 8, tab 48
combo 63, 133 36 64 33, tab 48 drop
text "Type:", 64, 102 37 29 8, tab 48
button "Search", 65, 206 27 32 12, tab 48
edit "", 67, 3 62 96 10, tab 48
text "Gain/Loss:", 69, 3 86 26 8, tab 48
edit "", 70, 34 86 64 10, tab 48 read
button "Search", 71, 57 72 40 12, tab 48
text "Current Nature Rune Price:", 72, 108 62 68 8, tab 48
edit "", 73, 185 61 50 10, tab 48 read
text "Item Alch Price:", 74, 108 86 41 8, tab 48
edit "", 75, 185 84 50 10, tab 48 read autohs
text "", 76, 2 96 240 8, tab 48 center
text "Current Item Price:", 77, 108 74 46 8, tab 48
edit "", 78, 185 73 50 10, tab 48 read
box "Other", 87, 1 104 249 29, tab 48
radio "Always on Top Desktop", 88, 5 112 65 8, tab 48 group
radio "Always on Top of mIRC", 89, 5 122 65 8, tab 48
button "Refresh News", 90, 115 110 45 10, tab 48
button "Refresh Players", 91, 115 121 45 10, tab 48
button "Refresh Dialog", 92, 180 110 45 10, tab 48
text "P2P Level:", 93, 37 92 27 8, tab 23 center
text "F2P Level:", 94, 126 92 27 8, tab 23 center
text "3.4", 95, 161 92 24 8, tab 23
button "Clear Dialog", 99, 180 121 45 10, tab 48
radio "Default", 102, 75 117 31 8, tab 48
combo 104, 7 85 236 35, tab 15 drop
box "Grand Exhange Update", 106, 2 13 163 33, tab 105
text "The Grand Exchange was last updated:", 107, 6 23 149 8, tab 105 center
button "Update!", 108, 65 33 32 11, tab 105
box "Default Nickname", 109, 166 13 84 33, tab 105
edit "", 110, 172 22 74 10, tab 105 limit 0
button "Set Defname", 111, 191 32 37 12, tab 105
box "Coin Share", 112, 2 48 163 42, tab 105
edit "", 113, 55 58 54 10, tab 105 autohs
text "Item name:", 114, 5 58 29 8, tab 105
text "Number of people:", 115, 5 68 46 8, tab 105
edit "", 116, 55 68 29 10, tab 105
button "Search", 117, 110 62 39 12, tab 105
text "Approximately:", 118, 26 79 39 8, tab 105
edit "", 119, 73 79 60 10, tab 105 read autohs
box "Username Availability Checker", 120, 166 48 84 42, tab 105
edit "", 121, 172 58 68 10, tab 105 limit 0
button "Check", 122, 188 68 32 11, tab 105
text "", 123, 172 80 68 8, tab 105 center
box "NPC Drops", 124, 2 90 248 42, tab 105
link "www.Hawkee.com", 125, 2 137 45 8, tab 105
link "www.mirc.net", 126, 51 137 36 8, tab 105
link "www.Rscript.org", 127, 91 137 42 8, tab 105
link "www.SwiftIRC.net", 128, 139 137 46 8, tab 105
text "NPC name:", 129, 5 98 28 8, tab 105
edit "", 130, 36 98 50 10, tab 105 autohs
edit "", 131, 88 96 157 33, tab 105 read multi vsbar
button "Search", 132, 25 109 32 12, tab 105
text "", 133, 5 122 79 8, tab 105 center
menu "&File", 79
item "&Save Settings", 96, 79
item "break", 97, 79
item "&Close", 80, 79
menu "View", 81
item "Always on &top", 82, 81
item "Always on top of &mIRC", 83, 81
item "&Default", 103, 81
menu "&Refresh", 84
item "Refresh News", 85, 84
item "Refresh Players", 86, 84
item "Refresh Dialog", 100, 84
item "break", 98, 84
item "Clear Dialog", 101, 84
}
on *:dialog:rsd:*:*: {
if ($devent == init) {
didtok $dname 63 32 Non-Clan Both Clan
didtok $dname 68 32 High-Alch Low-Alch
did -c $dname 63 3
did -c $dname 68 1
did -c $dname $iif($hget(rsd,dialog_type),$v1,102)
did -ra $dname 11 $hget(RSD,Defname)
rsd.sopen players geniebots.net
rsd.sopen getnews news.runescape.com
if (!$rsd.mdxs) {
rsd.mdx SetMircVersion $version
rsd.mdx MarkDialog $dname
}
rsd.mdx SetControlMDX $dname 4,5,6,19 ListView report showsel rowselect > $rsd.mdxf(views)
did -i $dname 4 1 headerdims 125:1 115:2 119:3 118:4
did -i $dname 4 1 headertext +c Skill $chr(9) $+ +c Level $chr(9) $+ +c Experience $chr(9) $+ +c Rank
did -i $dname 5 1 headerdims 120:1 80:2 50:3 75:4 85:5 60:6
did -i $dname 5 1 headertext +c Monster's Name $chr(9) $+ +c Combat Level $chr(9) $+ +c HP $chr(9) $+ +c Race $chr(9) $+ +c Members Only? $chr(9) $+ +c Quest?
did -i $dname 6 1 headerdims 125:1 123:2 110:3 105:4
did -i $dname 6 1 headertext +c Item $chr(9) $+ +c Price $chr(9) $+ +c Price Change $chr(9) $+ +c Members Item?
did -i $dname 19 1 headerdims 160:1 110:2 100:3 100:4 0:5
did -i $dname 19 1 headertext +c Item $chr(9) $+ +c Category $chr(9) $+ +c Members Item? $chr(9) $+ +c Quest Item?
did -ra $dname 47 $str($chr(9),4) Loading...
}
elseif ($devent == sclick) {
if ($did == 7) rsd.sopen stats hiscore.runescape.com $did(11) $chr(9) 4
elseif ($did == 8) rsd.sopen monsters tip.it $did(12) $chr(9) 5
elseif ($did == 9) rsd.sopen prices itemdb-rs.runescape.com $did(13) $chr(9) 6
elseif ($did == 14) rsd.dopen rsd.compare
elseif ($did == 20) rsd.sopen items tip.it $did(21) $+ $chr(9) 19
elseif ($did == 41) { rsd.p2pc | rsd.f2pc }
elseif ($did == 42) { did -ra $dname 32-34,36-39 1 | did -ra $dname 35 10 | rsd.sopen cmbstats rscript.org $did(43) }
elseif ($istok(49 50 51 52 53 125 126 127 128,$did,32)) url $did($did)
elseif ($did == 57) did -r $dname 55,56
elseif ($did == 58) did -ra $dname 56 $did(55) = $calc($did(55))
elseif ($did == 59) clipboard $did(55)
elseif ($did == 65) {
if ($did(61)) {
rsd.dopen rsd.Clanres
rsd.sopen Clanres runehead.com $+($did(61),|,$did(63).sel)
}
else rsd.err You Did not Enter a Clan name/Initials to be searched!
}
elseif ($did == 71) { rsd.sopen getnat itemdb-rs.runescape.com $chr(9) 70,73,75,76,78 | did -ra rsd 76 Looking up Nature Rune Price. }
elseif ($did == 80) { dialog -x $dname | hadd -m RSD dialog_type $did }
elseif ($did == 88) { dialog -o $dname | hadd -m RSD dialog_type $did }
elseif ($did == 89) { dialog -na $dname | hadd -m RSD dialog_type $did }
elseif ($did == 90) noop $rsd.refresh($dname).news
elseif ($did == 91) noop $rsd.refresh($dname).players
elseif ($did == 92) noop $rsd.refresh($dname).refreshall
elseif ($did == 99) { dialog -nao $dname | hadd -m RSD dialog_type $did }
elseif ($did == 101) noop $rsd.refresh($dname).clear
elseif ($did == 104) {
if (!$sock(rsd.getnews) && !$sock(rsd.news)) {
did -ra $dname 47 $str($chr(9),$iif($len($gettok($did(104).seltext,1,45)) >= 25,3,4)) $gettok($did(104).seltext,1,45) $+ $str($crlf,3)
rsd.sopen news news.runescape.com $gettok($did(104).seltext,2,45)
}
else rsd.err ERROR: News Socket already open!
}
elseif ($did == 108) rsd.sopen geupdate rscript.org $chr(9)
elseif ($did == 111) hadd -m RSD Defname $did(110)
elseif ($did == 117) rsd.sopen cshare itemdb-rs.runescape.com $did(113) $chr(9) 119
elseif ($did == 122) rsd.sopen rsna parsers.stirk.org $did(121) $chr(9) 123
elseif ($did == 132) { rsd.sopen gmid www.tip.it $did(130) $chr(9) 131 | did -ra $dname 133 Looking up NPC id }
}
elseif ($devent == dclick) {
if ($did == 5) {
var %a = $replace($deltok($gettok($gettok($did(5).seltext,2,43),$+(-,$calc($numtok($gettok($did(5).seltext,2,43),32) - 4),-),32),-1,32),$chr(32),_) ,%b = $iif($mid($deltok(%a,-1,45),-1,1) == _,$deltok(%a,-1,45),%a) ,%c = $iif($right(%b,1) == _,$mid(%b,1,$calc($len(%b) -1)),%b)
rsd.dopen rsd.monsters
rsd.sopen minfo rscript.org %c
mpicdl %c
}
elseif ($did == 19) {
var %a = $gettok($did(19).seltext,-1,32) ,%b = $gettok($gettok($did(rsd,19).seltext,1,9),6-,32)
rsd.dopen rsd.iinfo
rsd.sopen iinfo tip.it $+(%a,|,%b)
ipicdl %b
}
}
elseif ($devent == menu) {
if ($did == 80) dialog -x $dname
elseif ($did == 82) dialog -o $dname
elseif ($did == 83) dialog -na $dname
elseif ($did == 85) noop $rsd.refresh($dname).news
elseif ($did == 86) noop $rsd.refresh($dname).players
elseif ($did == 100) noop $rsd.refresh($dname).refreshall
elseif ($did == 96) rsd.save
elseif ($did == 103) noop $rsd.refresh($dname).clear
elseif ($did == 103) dialog -nd $dname
}
elseif ($devent == close) sockclose rsd.*
}
on $*:sockopen:/rsd\.((cmb)?stats|prices|m(onsters|info|drops)|(get)?news|players|items|iinfo|images|SCalc|Compare|clan(info|res)|get(nat|id)|(alch|item)price|geupdate|cshare|rsna|gmid)/i: {
if ($regml(1) == stats) {
sockwrite -nt $sockname GET $+(/hiscorepersonal.ws?user1=,$rsd.sm($sockname)) HTTP/1.1
sockwrite -nt $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf
}
elseif ($regml(1) == prices) {
sockwrite -nt $sockname GET $+(/results.ws?query=,$sock($sockname).mark,&price=all&members=) HTTP/1.1
sockwrite -nt $sockname HOST: itemdb-rs.runescape.com $+ $crlf $+ $crlf
}
elseif ($regml(1) == monsters) {
sockwrite -n $sockname GET $+(/runescape/index.php?rs2monster=&orderby=0&keywords=,$rsd.sm($sockname),&levels=All&race=0) HTTP/1.1
sockwrite -n $sockname HOST: tip.it $+ $crlf $+ $crlf
}
elseif ($regml(1) == getnews) {
sockwrite -n $sockname GET /list.ws HTTP/1.1
sockwrite -n $sockname HOST: news.runescape.com $+ $crlf $+ $crlf
}
elseif ($regml(1) == players) {
sockwrite -n $sockname GET /parsers/servers2.php?type=total HTTP/1.1
sockwrite -n $sockname HOST: geniebots.net $+ $crlf $+ $crlf
}
elseif ($regml(1) == news) {
sockwrite -n $sockname GET $+(/newsitem.ws?id=,$rsd.sm($sockname)) HTTP/1.1
sockwrite -n $sockname HOST: news.runescape.com $+ $crlf $+ $crlf
did -ra RSD 47 $str($chr(9),$iif($len($gettok($did(RSD,104).seltext,1,45)) >= 25,3,4)) $gettok($did(RSD,104).seltext,1,45) $str($crlf,3)
}
elseif ($regml(1) == items) {
sockwrite -n $sockname GET /runescape/index.php?rs2item=&orderby=0&keywords= $+ $rsd.sm($sockname) $+ &Players=all&category=0&subcategory=0&cmd=8&action=Manage_Items&search=1&submit=Simple+Search
sockwrite -n $sockname HOST: www.tip.it $+ $crlf $+ $crlf
}
elseif ($regml(1) == iinfo) {
sockwrite -nt $sockname GET $+(/runescape/index.php?rs2item_id=,$gettok($rsd.sm($sockname),1,124)) HTTP/1.1
sockwrite -nt $sockname host: www.tip.it $+ $crlf $+ $crlf
}
elseif ($regml(1) == images) {
sockwrite -n $sockname GET /runescape/mon2/ $+ $rsd.sm($sockname) HTTP/1.0
sockwrite -n $sockname Accept: */* | sockwrite -n $sockname Host: tip.it $+ $crlf $+ $crlf
}
elseif ($regml(1) == minfo) {
sockwrite -n $sockname GET $+(/lookup.php?type=zmdb&search=,$rsd.sm($sockname)) HTTP/1.1
sockwrite -n $sockname HOST: rscript.org $+ $crlf $+ $crlf
}
elseif ($regml(1) == cmbstats) {
sockwrite -n $sockname GET $+(/lookup.php?type=stats&user=,$rsd.sm($sockname)) HTTP/1.1
sockwrite -n $sockname HOST: rscript.org $+ $crlf $+ $crlf
}
elseif ($regml(1) == Compare) {
sockwrite -n $sockname GET $+(/compare.ws?user1=,$gettok($rsd.sm($sockname),2,124),&user2=,$gettok($rsd.sm($sockname),1,124)) HTTP/1.1
sockwrite -n $sockname HOST: hiscore.runescape.com $+ $crlf $+ $crlf
}
elseif ($regml(1) == getnat) {
sockwrite -n $sockname GET /results.ws?query="nature+rune"&price=all&members= HTTP/1.1
sockwrite -n $sockname HOST: itemdb-rs.runescape.com $+ $crlf $+ $crlf
}
elseif ($regml(1) == getid) {
sockwrite -n $sockname GET $+(/runescape/index.php?rs2item=&orderby=0&keywords=,$gettok($rsd.sm($sockname),1,124),&Players=all&category=0&subcategory=0&cmd=8&action=Manage_Items&search=1&submit=Simple+Search) HTTP/1.1
sockwrite -n $sockname HOST: tip.it $+ $crlf $+ $crlf
}
elseif ($regml(1) == clanres) {
sockwrite -n $sockname GET $+(/feeds/lowtech/searchclan.php?search=,$gettok($sock($sockname).mark,1,124),&type=,$gettok($sock($sockname).mark,2,124)) HTTP/1.1
sockwrite -n $sockname HOST: runehead.com $+ $crlf $+ $crlf
}
elseif ($regml(1) == claninfo) {
sockwrite -n $sockname GET $+(/clans/ml.php?clan=,$rsd.sm($sockname)) HTTP/1.1
sockwrite -n $sockname HOST: www.runehead.com $+ $crlf $+ $crlf
}
elseif ($regml(1) == alchprice) {
sockwrite -n $sockname GET $+(/runescape/index.php?rs2item_id=,$gettok($rsd.sm($sockname),1,124)) HTTP/1.1
sockwrite -n $sockname HOST: tip.it $+ $crlf $+ $crlf
}
elseif ($regml(1) == itemprice) {
sockwrite -n $sockname GET $+(/results.ws?query=,$rsd.sm($sockname),&price=all&members=) HTTP/1.1
sockwrite -n $sockname HOST: itemdb-rs.runescape.com $+ $crlf $+ $crlf
}
elseif ($regml(1) == geupdate) {
sockwrite -n $sockname GET /lookup.php?type=geupdate HTTP/1.1
sockwrite -n $sockname HOST: www.rscript.org $+ $crlf $+ $crlf
}
elseif ($regml(1) == cshare) {
sockwrite -n $sockname GET $+(/results.ws?query=,$rsd.sm($sockname),&price=all&members=) HTTP/1.1
sockwrite -n $sockname HOST: itemdb-rs.runescape.com $+ $crlf $+ $crlf
}
elseif ($regml(1) == rsna) {
sockwrite -n $sockname GET $+(/usercheck.php?user=,$rsd.sm($sockname)) HTTP/1.1
sockwrite -n $sockname HOST: parsers.stirk.org $+ $crlf $+ $crlf
}
elseif ($regml(1) == gmid) {
sockwrite -n $sockname GET $+(/runescape/index.php?rs2monster=&orderby=0&keywords=,$rsd.sm($sockname),&levels=All&race=0) HTTP/1.1
sockwrite -n $sockname HOST: www.tip.it $+ $crlf $+ $crlf
}
elseif ($regml(1) == mdrops) {
sockwrite -n $sockname GET $+(/runescape/index.php?rs2monster_id=,$rsd.sm($sockname)) HTTP/1.1
sockwrite -n $sockname HOST: www.tip.it $+ $crlf $+ $crlf
}
}
on *:sockread:rsd.stats: {
var %stats | sockread %stats
hadd -m Stats AllStats Overall.Attack.Defence.Strength.Hitpoints.Prayer.Ranged.Magic.Cooking.Woodcutting.Fletching.Fishing.Firemaking.Crafting.Mining.Smithing.Herblore.Agility.Thieving.Slayer.Farming.Runecrafting.Hunter.Construction.Summoning.Fist of Guthix.Bounty Hunter.Bounty Hunter Rogues.Mobilising Armies
if ($rsd.stats(%stats) || $regex(%stats,/<td class="alL" colspan="2">(.*)) && !$hget(Stats,Curstat)) { hadd -m Stats curstat $replace($iif($htmlfree(%stats),$v1,$gettok(%stats,2,62)),$chr(32),_) | set -u2 %num 3 }
if (*class="not_ranked">Not*Ranked</td> iswm %stats && $hget(Stats,Curstat)) { hadd Stats $hget(Stats,Curstat) $htmlfree(%stats) | hdel Stats Curstat }
elseif (<td*class="alL">* iswm %stats && $hget(Stats,Curstat)) { hadd Stats $hget(Stats,Curstat) $addtok($hget(Stats,$hget(Stats,Curstat)),$htmlfree(%stats),124) | dec %num | if (%num <= 0) hdel Stats Curstat }
elseif ($regex(%stats,/You have to be in the top 2 million in a category and reach a)) rsd.err $replace($sock($sockname).mark,+,$chr(32)) Was not found in the Runescape Hiscores Database! $chr(9) $sockname
elseif (</body> == %stats) {
var %a 1
while (%a <= $numtok($hget(Stats,AllStats),46)) {
if ($hget(Stats,$gettok($hget(Stats,AllStats),%a,46))) did -a rsd 4 0 +c 0 0 0 $gettok($hget(Stats,Allstats),%a,46) $chr(9) $+ +c 0 0 0 $gettok($v1,2,124) $chr(9) $+ +c 0 0 0 $gettok($v1,3,124) $chr(9) $+ +c 0 0 0 $gettok($v1,1,124)
inc %a
}
hfree Stats
}
}
on *:sockread:rsd.monsters: {
var %monsters | sockread %monsters
if (%monlvl == 1) { set -u2 %rsd.curmonlvl $htmlfree(%monsters) | unset %monlvl }
if (*</tr><tr>* iswm %monsters) set -u2 %monlvl 1
if (*<td><a href="?rs2monster_id=* iswm %monsters && %rsd.curmonlvl) {
hadd -m Monsters CurMon $replace($htmlfree(%monsters),$chr(32),_)
hadd Monsters $hget(Monsters,curmon) %rsd.curmonlvl
unset %rsd.curmonlvl
set -u2 %num 5
}
elseif ($regex(%monsters,/<td align="center">(\w*)</td>) && $hget(Monsters,Curmon)) {
hadd Monsters $hget(monsters,Curmon) $addtok($hget(monsters,$hget(Monsters,Curmon)),$regml(1),124)
dec %num
if (%num <= 1) hdel Monsters Curmon
}
elseif (</body> == %monsters) {
if ($hget(Monsters)) {
var %a 1
while (%a <= $hget(Monsters,0).item) {
var %mon = $hget(Monsters,%a).data
did -a RSD 5 0 +c 0 0 $rsd.cap($replace($hget(Monsters,%a).item,_,$chr(32))) $chr(9) $+ +c 0 0 0 $gettok(%mon,1,124) $chr(9) $+ +c 0 0 0 $gettok(%mon,-1,124) $chr(9) $+ +c 0 0 0 $gettok(%mon,2,124) $chr(9) $+ +c 0 0 0 $gettok(%mon,3,124) $chr(9) $+ +c 0 0 0 $gettok(%mon,-2,124)
inc %a
}
did -ra RSD 44 $hget(Monsters,0).item Results Found.
hfree monsters
}
else rsd.err No Monsters Found! $chr(9) $sockname
}
}
on *:sockread:rsd.prices: {
var %price | sockread %price
if ($regex(%price,/(\d+) items matched the search term: '<i>(.*)</i>'/.<br>)) set -u2 %b $regml(1)
elseif ($regex(%price,/<td>(.*)</a></td>)) set -u2 %c $addtok(%c,$htmlfree(%price),9)
elseif ($regex(%price,/<td>(.*)</td>) || $regex(%price,/<td>(\d*)</td>$) && <table> !isin %price && <img !isin %price) {
if (*span*class* !iswm %price) set -u2 %ge.price %ge.price $iif($right($htmlfree(%price),1) isnum,$+($htmlfree(%price),gp),$htmlfree(%price)) $chr(9)
elseif (*span*class* iswm %price) set -u2 %price.change %price.change $iif($right($htmlfree(%price),1) isnum,$+($htmlfree(%price),gp),$htmlfree(%price)) $chr(9)
}
elseif ($regex(%price,/(.*)title="(Members' item|Free game item)/i)) set -u2 %price.mem %price.mem $iif($gettok($noqt($gettok(%price,-1,61)),1,32) == Members',Yes,No) $chr(9)
elseif (</body> == %price) {
var %num 1
while (%num <= $numtok(%c,9)) {
did -a RSD 6 0 +c 0 0 0 $gettok(%c,%num,9) $chr(9) $+ +c 0 0 0 $gettok(%ge.price,%num,9) $chr(9) $+ +c 0 0 0 $gettok(%price.change,%num,9) $chr(9) $+ +c 0 0 0 $gettok(%price.mem,%num,9)
inc %num
}
did -ra RSD 45 %b Results Found.
sockclose $sockname
}
}
on *:sockread:rsd.items: {
var %items | sockread %items
if ($regex(%items,/<p><strong>(\d+)</strong> items matched your search.</p>$)) set -u2 %items.results $regml(1)
if ($regex(%items,/<td><a href="index\.php\?rs2item_id=(\d*)">(.*)</a></td>/i)) {
hadd -m Items CurItem $replace($htmlfree(%items),$chr(32),_)
set %items.id $remove($gettok($regml(2),-1,61),",>) $chr(124) %items
set %rsd.num 3
}
elseif ($regex(%items,/<td>((\w*)|Raw Material|Discontinued Items)</td>/i) && %rsd.num) {
hadd Items $hget(Items,CurItem) $instok($hget(Items,$hget(Items,CurItem)),$regml(1),$calc($numtok($hget(Items,$hget(Items,CurItem)),124) +1),124)
dec %rsd.num
if (%rsd.num <= 0) {
hadd Items $hget(Items,CurItem) $addtok($hget(Items,$hget(Items,CurItem)),%items.id,124)
unset %items.id
hdel Items CurItem
}
}
elseif (</body> == %items) {
var %a 1
while (%a <= $hget(Items,0).item) {
var %item = $hget(Items,%a).data
did -a RSD 19 0 +c 0 0 $remove($replace($hget(Items,%a).item,_,$chr(32)),$chr(9)) $chr(9) $+ +c 0 0 0 $gettok(%item,1,124) $chr(9) $+ +c 0 0 0 $gettok(%item,2,124) $chr(9) $+ +c 0 0 0 $gettok(%item,3,124) $chr(9) $+ +c 0 0 0 $gettok(%item,4,124)
inc %a
}
did -ra RSD 46 %items.results Matches found.
hfree Items
unset %rsd.items %rsd.num
}
elseif (*No*items*matched*your*search* iswm %items) {
rsd.err No Items Found $sockname
hfree Items
unset %rsd.items %rsd.num
}
}
on *:sockread:rsd.minfo: {
var %minfo | sockread %minfo
if (*name:* iswm %minfo) did -ra rsd.monsters 3 $gettok(%minfo,2,58)
elseif (*Hitpoints:* iswm %minfo) did -ra rsd.monsters 5 $gettok(%minfo,2,58)
elseif (*maxhit:* iswm %minfo) did -ra rsd.monsters 7 $gettok(%minfo,2,58)
elseif (*race:* iswm %minfo) did -ra rsd.monsters 9 $gettok(%minfo,2,58)
elseif (*members:* iswm %minfo) did -ra rsd.monsters 20 $gettok(%minfo,2,58)
elseif (*quest:* iswm %minfo) did -ra rsd.monsters 21 $gettok(%minfo,2,58)
elseif (*nature:* iswm %minfo) did -ra rsd.monsters 22 $gettok(%minfo,2,58)
elseif (*attackstyle:* iswm %minfo) did -ra rsd.monsters 23 $gettok(%minfo,2,58)
elseif (*examine:* iswm %minfo) did -ra rsd.monsters 15 $gettok(%minfo,2,58)
elseif (*topdrops:* iswm %minfo) did -ra rsd.monsters 17 $gettok(%minfo,2,58)
elseif (*wherefound:* iswm %minfo) did -ra rsd.monsters 19 $gettok(%minfo,2,58)
elseif (END == %minfo) {
dialog -t rsd.monsters Monsters Info - $replace($sock($sockname).mark,_,$chr(32))
var %a 23
while (%a > 0) {
if (!$did(rsd.monsters,%a) && !$istok(0 1,%a,32)) { did -a rsd.monsters %a N/A }
dec %a
}
}
}
on *:sockread:rsd.cmbstats: {
var %cmbstats | sockread %cmbstats
tokenize 32 %cmbstats
if ($regex(%cmbstats,/STAT:(Attack|Strength|Defence|Hitpoints|Ranged|Magic|Prayer|Summoning)/i)) did -ra RSD $rsd.getdid($regml(1)) $3
elseif (STAT:*not*found iswm %cmbstats) rsd.err No Stats Found! $sockname
}
on *:sockclose:rsd.cmbstats:{ rsd.F2Pc | rsd.P2Pc }
on *:sockread:rsd.iinfo: {
var %iinfo | sockread %iinfo
if ($regex(%iinfo,/<b>(Members|Quest|Tradeable)\?</b> (Yes|No)(.*)</td>/i)) {
did -ra rsd.iinfo $iif($regml(1) == Members,14,$iif($regml(1) == Quest,27,$iif($regml(1) == Tradeable,15))) $regml(2)
}
elseif ($regex(%iinfo,/<b>Stackable\?</b>/i)) {
sockread %iinfo
did -ra rsd.iinfo 16 $htmlfree(%iinfo)
}
elseif ($regex(%iinfo,/<td colspan="3"> <b>Examine:</b>/i)) {
sockread %iinfo
did -ra rsd.iinfo 17 $nochr($htmlfree(%iinfo),9)
sockread %iinfo | sockread %iinfo
did -ra rsd.iinfo 18 $nochr($htmlfree(%iinfo),9)
}
elseif ($regex(%iinfo,/((sub-)?Category)/i)) {
sockread %iinfo | sockread %iinfo
sockread %iinfo
did -ra rsd.iinfo $iif($regml(2) == sub-,20,19) $nochr($htmlfree(%iinfo),9)
}
elseif ($regex(%iinfo,/<td class="header" width="25%">High Alchemy</td>/i)) {
sockread %iinfo | sockread %iinfo
var %a = $nochr($nochr($htmlfree(%iinfo),32),9)
sockread %iinfo | sockread %iinfo | sockread %iinfo | sockread %iinfo
did -ra rsd.iinfo 21 $addtok($nochr(%a,32),$nochr($htmlfree(%iinfo),9),45)
}
elseif ($regex(%iinfo,/<td class="header"( width="139")?> (Location|Uses|Notes)</td>/i)) {
var %a = $iif(location isin $htmlfree(%iinfo),22,$iif(uses isin $htmlfree(%iinfo),23,$iif(Notes isin $htmlfree(%iinfo),24)))
sockread %iinfo | sockread %iinfo
did -ra rsd.iinfo %a $nochr($htmlfree(%iinfo),9)
}
}
on *:sockclose:rsd.iinfo: {
did -ra rsd.iinfo 13 $replace($gettok($sock($sockname).mark,2,124),+,$chr(32))
var %a 14
while (%a <= 27) {
if (%a !isnum 13-24,27 && !$did(rsd.iinfo,%a)) { did -ra rsd.iinfo %a N/A }
inc %a
}
}
on *:sockread:rsd.compare: {
var %compare | sockread %compare
if ($rsd.stats(%compare)) { set %skill %compare | set %user $calc(%user +1) }
elseif ($regex(%compare,/<td ?(colspan="2")? class="al(C|L)">(.+)</td>/i) && %skill) {
var %a $iif($iseven(%user),STATS.1,STATS.2)
hadd -m %a %skill $addtok($hget(%a,%skill),$htmlfree(%compare),124)
}
elseif ($regex(%compare,/<td colspan="4" class="not_ranked">Not Ranked</td>) && %skill) {
hadd -m $iif($iseven(%user),STATS.1,STATS.2) %skill $htmlfree(%compare)
unset %skill
}
elseif (</body> isin %compare) {
var %a 1
while (%a <= $numtok($hget(RSD,Stats),46)) {
if ($hget(Stats.1,$gettok($hget(RSD,Stats),%a,46))) did -a rsd.compare 1 0 +c 0 0 $gettok($hget(RSD,Stats),%a,46) $chr(9) $+ +c 0 0 0 $gettok($v1,2,124) $chr(9) $+ +c 0 0 0 $gettok($v1,3,124) $chr(9) $+ +c 0 0 0 $gettok($v1,1,124)
inc %a
}
var %a = 1
while (%a <= $numtok($hget(RSD,Stats),46)) {
if ($hget(Stats.2,$gettok($hget(RSD,Stats),%a,46))) did -a rsd.compare 2 0 +c 0 0 $gettok($hget(RSD,Stats),%a,46) $chr(9) $+ +c 0 0 0 $gettok($v1,2,124) $chr(9) $+ +c 0 0 0 $gettok($v1,3,124) $chr(9) $+ +c 0 0 0 $gettok($v1,1,124)
inc %a
}
var %a = 2,%b = 5
while (%a <= 26) {
var %c = $remove($gettok($gettok($gettok($didtok(rsd.compare,1,2),%a,2),-2,43),-2,32),Ranked,$chr(44)) ,%d = $remove($gettok($gettok($gettok($didtok(rsd.compare,2,2),%a,2),-2,43),-2,32),Ranked,$chr(44))
did -g rsd.compare %b $rsdir($iif(%c > %d,arrowup.gif,$iif(%c == %d,arrowequal.gif,$iif(%c < %d,arrowdown.gif))))
inc %a
inc %b
}
hfree -w STATS.*
unset %skill %user
sockclose $sockname
}
}
on *:sockread:rsd.news: {
var %news | sockread %news
if ($regex(%news,/<div class="newsJustify">)) set -u2 %newsready $true
elseif ($regex(%news,/<(p|li)>(.*)</(pli)>) && %newsready) { did -a RSD 47 $iif($mid($htmlfree(%news),1,3) == Mod,$chr(9) $+ -,$iif($regml(1) == li,$str($chr(9),2) $+ $chr(7))) $htmlfree(%news) $+ $str($crlf,$iif($regml(1) == li,2,1)) }
elseif ($regex(%news,/<div class="clear"></div>)) unset %newsready
}
on *:sockread:rsd.getnews: {
var %getnews | sockread %getnews
if ($regex(%getnews,/<td valign="middle"><a href="newsitem.ws\?id=(\d*)">(.+)</a></td>)) {
if (!%gotnew) {
rsd.sopen news news.runescape.com $regml(1)
hadd -m RSD Recent_News $regml(2)
did -ra RSD 104 $replace($regml(2),&,&) - $regml(1)
did -c RSD 104 1
set -u2 %gotnew $true
}
else did -a RSD 104 $replace($regml(2),&,&) - $regml(1)
}
}
on *:sockread:rsd.players: {
var %players | sockread %players
if (*TOTAL* iswm %players) { did -ra rsd 22 There are currently $rsd.rep($gettok(%players,2,124)) people playing runescape! | sockclose $sockname }
}
on *:sockread:rsd.getnat: {
var %natprice | sockread %natprice
if ($regex(%natprice,/<td><a href="http://itemdb-rs\.runescape\.com/Nature_rune/viewitem\.ws\?obj=561"> Nature rune</a></td>)) {
sockread %natprice
rsd.sopen getid tip.it $+($did(rsd,67),|,$did(rsd,68).sel)
did -a rsd 73 $htmlfree(%natprice)
did -ra rsd 76 Getting Item ID | sockclose $sockname
}
}
on *:sockread:rsd.getid: {
var %id | sockread %id
if ($regex(%id,/<p><strong>0</strong> items matched your search.</p>)) {
rsd.err Item Not Found! $chr(9) $sockname
did -r rsd 73,75,76,78
did -ra rsd 69 Gain/Loss:
}
if ($regex(%id,/<td><a href="index.php\?rs2item_id=(\d*)">.*</a></td>)) { rsd.sopen alchprice tip.it $+($regml(1),|,$rsd.sm($sockname)) | did -ra rsd 76 Found item ID | sockclose $sockname }
}
on *:sockread:rsd.alchprice: {
var %alch,%type = $gettok($sock($sockname).mark,-1,124),%type = $iif(%type = 1,High,Low) | sockread %alch
if ($regex(%alch,<td class="header" width="25%">High Alchemy</td>)) {
sockread %alch | sockread %alch
var %highalch = $remove(%alch,$chr(9))
sockread %alch | sockread %alch | sockread %alch | sockread %alch
var %lowalch = $remove(%alch,$chr(9)),%type = $iif(%type = High,%highalch,%lowalch)
did -r rsd 76
did -ra rsd 75 %type
}
elseif ($regex(%alch,/<td>Market Price</td>)) {
sockread %alch | sockread %alch | sockread %alch | sockread %alch | sockread %alch
did -ra rsd 78 $gettok($remove($htmlfree(%alch),$chr(9)),1,32) $+ gp
did -ra rsd 70 $rsd.rep($calc($calc($remcom($did(rsd,73)) + $remcom($did(rsd,78))) - $remcom($did(rsd,75)))) $+ gp
var %a = $left($did(rsd,70),1)
if (%a = -) {
did -ra rsd 70 $remove($did(rsd,70),-)
did -ra rsd 69 Gain:
}
elseif (%a != -) did -ra rsd 69 Loss:
sockclose $sockname
}
}
on *:sockread:rsd.Clanres: {
var %clanres | sockread %clanres
if ($chr(124) isin %clanres) did -a rsd.clanres 2 0 +c 0 0 $gettok(%clanres,1,124) $chr(9) $+ +c 0 0 0 $gettok(%clanres,5,124) $chr(9) $+ +c 0 0 0 $gettok(%clanres,3,124)
elseif (@@Not*Found iswm %clanres) rsd.err No Clans Found!
}
on *:sockread:rsd.claninfo: {
var %claninfo,%dialog = rsd.claninfo | sockread %claninfo
if ($regex(%claninfo,/<title>(.*) Memberlist</title>)) did -ra %dialog 1 $regml(1)
if ($regex(%claninfo,/<li><b>Total Members:</b> (\d*)</li>)) did -ra %dialog 18 $regml(1)
elseif ($regex(%claninfo,/<li><b>Average P2P Combat:</b> (.*)</li>)) did -ra %dialog 19 $regml(1)
elseif ($regex(%claninfo,/<li><b>Average F2P Combat:</b> (.*)</li>)) did -ra %dialog 20 $regml(1)
elseif ($regex(%claninfo,/<li><b>Average Hitpoints:</b> (.*)</li>)) did -ra %dialog 21 $regml(1)
elseif ($regex(%claninfo,/<li><b>Average Overall:</b> (.*)</li>)) did -ra %dialog 22 $regml(1)
elseif ($regex(%claninfo,/<li class='gap'><b>Total XP:</b> (.*)</li>)) did -ra %dialog 23 $regml(1)
elseif ($regex(%claninfo,/<li><b>Category:</b> (.*)</li>)) did -ra %dialog 24 $regml(1)
elseif ($regex(%claninfo,/<li><b>Stats Last Updated:</b> (.*)</li>)) did -ra %dialog 26 $regml(1)
elseif ($Regex(%claninfo,/<p><b>F2P or P2P: </b>(.*)</p>)) did -ra %dialog 25 $regml(1)
elseif ($regex(%claninfo,/<p><b>Cape Colour: </b>(.*)</p>)) did -ra %dialog 27 $regml(1)
elseif ($regex(%claninfo,/<p><b>Clan Initials: </b>(.*)</p>)) did -ra %dialog 28 $regml(1)
elseif ($regex(%claninfo,/<p><b>Website: </b><a href='(.*)' title='.*'>.*</a></p>)) did -ra %dialog 3 $regml(1)
elseif ($regex(%claninfo,/<p><b>Time Base: </b>(.*)</p>)) did -ra %dialog 29 $replace($regml(1),&,And)
elseif ($regex(%claninfo,/<p><b>Home World: </b>(.*) <img src='images/flags/.*' alt='' title='.*' style='vertical-align: middle; padding-bottom: 1px;' /></p>)) did -ra %dialog 30 $regml(1)
elseif ($regex(%claninfo,/<p><b>Clan Signature: <a href='(.*)' title='Clan Signatures'>Click here</a></b></p>)) did -ra %dialog 31 $regml(1)
elseif ($regex(%claninfo,/<p><b>IRC Channel: </b><a href='http://.*' title='http://.*'>(.*)</a></p>)) did -ra %dialog 32 $regml(1)
}
on *:sockread:rsd.geupdate: {
var %geupdate | sockread %geupdate
if ($gettok(%geupdate,1,32) == UPDATETIME:) did -ra RSD 107 The Grand Exchange was last updated: $duration($calc($ctime - $gettok(%geupdate,2,32)),1)
}
on *:sockread:rsd.cshare: {
var %cshare | sockread %cshare
if ($regex(%cshare,/(\d*) items matched the search term: '<i>.*</i>'.<br>)) { if ($regml(1) = 0) rsd.err No Items found! $chr(9) $sockname }
if ($regex(%cshare,/<td><a href="http://itemdb-rs.runescape.com/.*/viewitem.ws\?obj=\d*">.*</a></td>)) {
sockread %cshare
var %a = $htmlfree(%cshare)
did -ra RSD 119 $round($calc($left(%a,-1)/$did(rsd,116))) $+ $right(%a,1)
sockclose $sockname
}
}
on *:sockread:rsd.rsna: {
var %rsn | sockread %rsn
if ($regex(%rsn,/.*\W-\W(un)?available.*/i)) did -ra RSD 123 $did(rsd,121) is $iif($regml(1),not) available
}
on *:sockread:rsd.gmid: {
var %mid | sockread %mid
if ($regex(%mid,/<td><a href="\?rs2monster_id=(\d*)">(.*)</a></td>) && $regml(2)) {
sockclose $sockname
rsd.sopen mdrops tip.it $regml(1)
did -ra RSD 133 getting drop info...
}
}
on *:sockread:rsd.mdrops: {
var %drops | sockread %drops
if (drops: isin %drops) {
sockread %drops
while (%drops) {
if (</td> isin %drops) break
did -a RSD 131 $replace($nochr($htmlfree(%drops),9),$chr(44),$crlf)
sockread %drops
did -a RSD 131 $crlf
}
}
elseif ($regex(%drops,/<td colspan="2" rowspan="4" align="center" valign="middle" bgcolor="#CCCCCC"><img border="0" src="mon2/.*.gif" alt="(.*)" /></td>)) did -ra RSD 133 $regml(1)
}
;;;;;; Err Dialog
dialog rsd.err {
title "Error!"
size -1 -1 106 35
option dbu
button "&Ok", 1, 35 21 38 12, ok
text "", 2, 1 1 103 18, center multi
}
on *:dialog:rsd.err:init:*:did -ra $dname 2 $gettok($hget(rsd,err),1,9)
;;;;;; Monster Info Dialog
dialog rsd.Monsters {
title "Monsters Info"
size -1 -1 278 169
option dbu
icon 1, 120 0 155 100
text "Name:", 2, 5 2 16 8
text "", 3, 32 2 81 8
text "Hitpoints:", 4, 4 12 24 9
text "", 5, 33 12 15 9
text "Max Hit:", 6, 4 24 23 8
text "", 7, 33 24 23 8
text "Race:", 8, 4 35 18 9
text "", 9, 33 35 50 9
text "Members?", 10, 4 48 27 9
text "Quest?", 11, 4 60 20 9
text "Nature:", 12, 4 73 21 8
text "Attack Style:", 13, 4 86 31 8
text "Examine Info:", 14, 4 104 35 8
text "", 15, 45 103 230 9
text "Top Drops:", 16, 4 118 30 9
text "", 17, 45 116 231 19
text "Location:", 18, 4 141 25 7
text "", 19, 45 141 231 19
text "", 20, 35 48 50 8
text "", 21, 35 60 50 8
text "", 22, 35 73 50 8
text "", 23, 39 86 50 8
}
on *:dialog:rsd.monsters:close:*:if ($sock(rsd.minfo)) sockclose $v1
;;;;;; Item Info Dialog
dialog rsd.iinfo {
title "Item Info"
size -1 -1 297 168
option dbu
text "Name:", 1, 5 5 17 8
text "Members?", 2, 5 15 25 8
text "Quest?", 26, 5 25 25 8
text "Tradeable?", 3, 5 35 27 8
text "Stackable?", 4, 5 45 25 8
text "Examine:", 5, 5 55 23 8
text "Weight:", 6, 5 65 20 8
text "Category:", 7, 5 75 25 8
text "Sub-Category:", 8, 5 85 37 8
text "High/Low Alchemy:", 9, 5 95 46 8
text "Location:", 10, 5 105 23 8
text "Uses:", 11, 5 126 15 8
text "Notes:", 12, 5 146 18 8
text "", 13, 35 5 75 8, nowrap
text "", 14, 35 15 11 8
text "", 27, 35 25 11 8
text "", 15, 35 35 11 8
text "", 16, 35 45 11 8
edit "", 17, 35 55 75 10, read autohs
text "", 18, 35 65 75 8
text "", 19, 35 75 75 8
text "", 20, 45 85 65 8
text "", 21, 55 95 55 8
edit "", 22, 35 105 260 20, read vsbar multi
edit "", 23, 35 126 260 20, read vsbar multi
edit "", 24, 35 147 260 20, read vsbar multi
icon 25, 122 5 174 88
}
;;;;;; Comparison Dialog
dialog rsd.compare {
title "Skill Comparison"
size -1 -1 327 248
option dbu
list 1, 6 21 152 227, size
list 2, 169 21 152 227, size
edit "Player 1", 3, 40 7 81 10, center limit 0
edit "Player 2", 4, 205 7 81 10, center limit 0
icon 5, 159 33 10 10
icon 6, 159 41 10 10
icon 7, 159 50 10 10
icon 8, 159 59 10 10
icon 9, 159 68 10 10
icon 10, 159 76 10 10
icon 11, 159 84 10 10
icon 12, 159 92 10 10
icon 13, 159 101 10 10
icon 14, 159 110 10 10
icon 15, 159 118 10 10
icon 16, 159 127 10 10
icon 17, 159 136 10 10
icon 18, 159 144 10 10
icon 19, 159 152 10 10
icon 20, 159 161 10 10
icon 21, 159 170 10 10
icon 22, 159 179 10 10
icon 23, 159 187 10 10
icon 24, 159 196 10 10
icon 25, 159 204 10 10
icon 26, 159 212 10 10
icon 27, 159 221 10 10
icon 28, 159 230 10 10
icon 29, 159 239 10 10
button "Compare", 30, 144 6 36 11
}
on *:dialog:rsd.compare:*:*: {
if ($devent == init) {
hadd -m RSD Stats Overall.Attack.Defence.Strength.Hitpoints.Prayer.Ranged.Magic.Cooking.Woodcutting.Fletching.Fishing.Firemaking.Crafting.Mining.Smithing.Herblore.Agility.Thieving.Slayer.Farming.Runecrafting.Hunter.Construction.Summoning.Fist of Guthix.Bounty Hunter.Bounty Hunter Rogues.Mobilising Armies
if ($did(rsd,11)) did -ra $dname 3 $v1
if (!$rsd.mdxs) {
rsd.mdx SetMircVersion $version
rsd.mdx MarkDialog $dname
}
rsd.mdx SetControlMDX $dname 1,2 ListView report showsel rowselect > $rsd.mdxf(views)
did -i $dname 1,2 1 headerdims 100:1 60:2 70:3 70:4
did -i $dname 1,2 1 headertext +c Skill $chr(9) $+ +c Level $chr(9) $+ +c XP $chr(9) $+ +c Rank
}
elseif ($devent == sclick) {
if ($did == 30) {
if ($did(3) && $did(4)) { rsd.sopen Compare hiscore.runescape.com $+($did(3),$chr(124),$did(4)) | did -r $dname 1,2 }
else rsd.err You did not enter 2 Usernames to compare!
}
}
}
;;;;;; Download Dialog
dialog rsd.download {
title "Downloading Runescape Dialog"
size -1 -1 159 34
option dbu
text "Some Files of this Script are being Downloaded, this may take a few moments", 1, 0 0 159 15, center
text "0%", 2, 62 24 32 8, center
text "Text", 3, 53 15 50 8, center
}
on *:dialog:rsd.download:init:*: {
if (!$rsd.mdxs) {
rsd.mdx SetMircVersion $version
rsd.mdx MarkDialog $dname
}
rsd.mdx SetControlMDX $dname 3 ProgressBar smooth > $rsd.mdxf(ctl_gen)
}
;;;;;; Clan Results Dialog
dialog rsd.clanres {
title "Clan Search Results"
size -1 -1 171 62
option dbu
text "Clans Found", 1, 58 0 50 7, center
list 2, 0 15 173 48, size
text "(Double Click on a clan to see info)", 3, 37 6 93 8, center
}
on *:dialog:rsd.clanres:*:*: {
if ($devent == init) {
if (!$rsd.mdxs) {
rsd.mdx SetMircVersion $version
rsd.mdx MarkDialog $dname
}
rsd.mdx SetControlMDX $dname 2 ListView report showsel rowselect > $rsd.mdxf(views)
did -i $dname 2 1 headerdims 200:1 120:2 0:3
did -i $dname 2 1 headertext +c Clan Name $chr(9) $+ +c Clan Initials $chr(9) $+ +c
}
elseif ($devent == dclick) {
if ($did == 2) {
rsd.dopen rsd.ClanInfo
rsd.sopen claninfo runehead.com $gettok($did(2).seltext,-1,61)
}
}
}
;;;;;; Clan Info Dialog
dialog rsd.claninfo {
title "Clan Info Dialog"
size -1 -1 238 122
option dbu
text "Clan Name", 1, 0 5 238 8, center
text "Total Members:", 2, 15 25 39 8
link "", 3, 70 113 115 8
text "Average P2P Combat:", 4, 15 35 54 8
text "Average F2P Combat:", 5, 15 45 54 8
text "Average Hitpoints:", 6, 15 55 47 8
text "Average Overall:", 7, 15 65 42 8
text "Total Expirience:", 8, 15 75 41 8
text "Category:", 9, 15 85 27 8
text "Stats Last Updated:", 10, 60 100 50 8
text "F2P or P2P?", 11, 130 84 31 8
text "Cape Color:", 12, 130 25 29 8
text "Clan Initials:", 13, 130 35 30 8
text "Time Base:", 14, 130 45 28 8
text "Home World:", 15, 130 55 32 8
text "Clan Signiture:", 16, 130 65 37 8
text "IRC Channel:", 17, 130 75 33 8
text "", 18, 72 25 55 8
text "", 19, 72 35 55 8
text "", 20, 72 45 55 8
text "", 21, 72 55 55 8
text "", 22, 72 65 55 8
text "", 23, 72 75 55 8
text "", 24, 72 85 55 8
text "", 25, 165 85 72 8
text "", 26, 113 100 50 8
text "", 27, 165 25 72 8
text "", 28, 165 35 72 8
text "", 29, 165 45 72 8
text "", 30, 165 55 72 8
edit "", 31, 165 64 72 10, read autohs
link "", 32, 165 75 72 8
}
on *:dialog:rsd.claninfo:sclick:3,32:$iif($did = 3,url,join) $did($did)
;;;;;; Image Downloader
alias rsdidl {
var %a = rsdidl. $+ $r(1,$ticks)
if ($regex($1,/^-[mic]$)) {
hadd -m %a rsd $right($1,1)
if ($regex(idl,$2,/^((?:https?:\/\/)?((?:www.)?[^/]*)(.*/([^/]*\.(jpg|gif|bmp|png))))$/i)) {
sockopen %a $regml(idl,2) 80
sockmark %a start
hadd %a Site $regml(idl,2)
hadd %a path $regml(idl,3)
hadd %a location $iif($hget(%a,rsd) == m,$monsters.dir($regml(idl,4)),$iif($hget(%a,rsd) == i,$items.dir($regml(idl,4)),$rsdir($regml(idl,4))))
if ($isfile($hget(%a,location))) .remove $hget(%a,location)
}
}
}
on *:sockopen:rsdidl.*: {
sockwrite -n $sockname GET $hget($sockname,path) HTTP/1.1
sockwrite -n $sockname HOST: $hget($sockname,site)
sockwrite -n $sockname $crlf
}
on *:sockread:rsdidl.*: {
var %a
if ($sock($sockname).mark = start) {
while ($sock($sockname).rq) {
sockread %a
if (!%a) { sockmark $sockname read | break }
elseif ($regex(%a,/Content-length: (\d*)/i)) hadd $sockname Size $regml(1)
}
}
if ($hget($sockname,Size)) {
var %a = $sockname
while ($sock($sockname).rq) {
sockread &idl
bwrite $hget(%a,location) -1 -1 &idl
}
if ($file($hget(%a,location)).size == $hget(%a,Size)) {
$rsd.flag($hget(%a,rsd)) $hget(%a,location)
hfree %a
}
}
}
on *:sockclose:rsdidl.*:if ($hget($sockname)) { rsd.imgfail | .remove $hget($sockname,location) | hfree $sockname }
alias -l rsd.flag {
var %a = $1
if (%a == m) return rsd.img
elseif (%a = i) return rsd.itemimg
elseif (%a = c) return stat.imgs
}
alias -l rsd.imgfail rsd.err Error Downloading Image!
alias -l rsd.itemimg .signal rsd.itemimg $1-
alias -l rsd.img .signal rsd.images $1-
alias -l stat.imgs .signal RSD.cmbimgs IMGLOAD $1-
on $*:signal:/RSD\.(images|cmbimgs|itemimg)/i: {
if ($regml(1) == images && $dialog(rsd.monsters)) { did -g rsd.monsters 1 $1- }
elseif ($regml(1) == itemimg && $dialog(rsd.iinfo)) { did -g rsd.iinfo 25 $1- }
elseif ($regml(1) == cmbimgs) {
rsd.getstats
if ($dialog(rsd.download)) {
did -ra rsd.download 2 $calc($gettok($did(rsd.download,2),1,37) +9) $+ %
did -a rsd.download 3 $calc($gettok($did(rsd.download,3),1,32) +9)
if ($did(rsd.download,2) == 100%) { did -ra rsd.download 1 Download Complete! | dialog -x rsd.download | rsd }
}
if (%gotimgs >= 12) { unset %gotimgs | halt }
}
}
;;;;; Aliases
alias -l htmlfree {
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, )
return $replace(%x,",",<,<,>,>,$cr,. $+ $chr(32),$lf,. $+ $chr(32),&,&)
}
alias rsd dialog $iif(!$dialog(rsd),$+(-m,$rsd.dtype(rsd)) rsd,-v) rsd
alias items.dir return $qt($rsdir(Items\ $+ $1-))
alias monsters.dir return $qt($rsdir(Monsters\ $+ $1-))
alias rsdir return $qt($mircdirRuneScapeDialog\ $+ $1-)
alias -l rsd.dtype if ($hget(RSD,dialog_type)) return $iif($v1 == 88,o,$iif($v1 == 89,na,$iif($v1 == 102,nd)))
alias -l remcom return $remove($1-,$chr(44))
alias -l iseven return $iif($regex($mid($1,-1,1),^d*[02468]),$true,$false)
alias -l rsd.stats return $iif($istok(Overall.Attack.Defence.Strength.Hitpoints.Prayer.Ranged.Magic.Cooking.Woodcutting.Fletching.Fishing.Firemaking.Crafting.Mining.Smithing.Herblore.Agility.Thieving.Slayer.Farming.Runecrafting.Hunter.Construction.Summoning.Fist of Guthix.Bounty Hunter.Bounty Hunter Rogues.Mobilising Armies,$1-,46),$true,$false)
alias rsd.rep {
if ($chr(46) !isin $1-) return $bytes($replace($1-,b,000000000,k,000,m,000000,x,*,t,000000000000),db)
else {
var %a = $1-,%b = $left($gettok(%a,2,46),-1),%c = 1
%a = $bytes($replace($gettok(%a,1,46) $+ $right(%a,1),b,000000000,k,000,m,000000,x,*,t,000000000000),db)
while (%c <= $len(%a)) {
if ($mid(%a,%c,1) == 0) { dec %c | break }
else inc %c
}
%a = $mid(%a,1,%c) $+ %b $+ $mid(%a,%c,$calc($len(%a) - $len(%c))))
return $rsd.rep($left($remove(%a,$chr(44)),-1))))
}
}
alias -l rsd.save hsave RSD $rsdir(rsd.txt)
alias -l rsd.clear did -r rsd 47,22,4,11,5,12,44,6,13,45,19,21,46,32-40,95,43,55,56,61,67,70,73,78,75,104,107,110,113,116,119,121,130,131,133
alias -l rsd.refreshall {
rsd.sopen getnews news.runescape.com $chr(9) 47
rsd.sopen players geniebots.net $chr(9) 22
}
alias -l rsd.refresh {
var %a = $prop
if (%a = news) rsd.sopen getnews news.runescape.com $chr(9) 47
elseif (%a = players) rsd.sopen players geniebots.net $chr(9) 22
elseif (%a = clear) rsd.clear
elseif (%a = refreshall) { rsd.clear | rsd.refreshall }
else { rsd.err Error: Invalid Refresh ID | halt }
}
alias -l rsd.chkstart {
if (!$isdir($monsters.dir)) mkdir $rsdir(Monsters)
if (!$isdir($items.dir)) mkdir $rsdir(Items)
if (!$hget(RSD,dialog_type)) hadd -m RSD Dialog_Type 102
hadd -m RSD version 1.0
hadd RSD Stats Overall.Attack.Defence.Strength.Hitpoints.Prayer.Ranged.Magic.Cooking.Woodcutting.Fletching.Fishing.Firemaking.Crafting.Mining.Smithing.Herblore.Agility.Thieving.Slayer.Farming.Runecrafting.Hunter.Construction.Summoning.Fist of Guthix.Bounty Hunter.Bounty Hunter Rogues.Mobilising Armies
rsd.dopen rsd.download rsd.download
did -ra rsd.download 2 1%
did -a rsd.download 3 1 0 100
rsdidl -c $+(http://www.runescape.com/img/main/layout/head_image_mob.jpg) $rsdir
set %gotimgs 1
rsd.getstats
}
alias -l rsd.mainpics {
if (%gotimgs <= 12 && %gotimgs >= 8) {
var %a = arrowequal.gif arrowup.gif arrowdown.gif head_image_mob.jpg
if ($gettok(%a,$calc(%gotimgs -8),32)) {
var %b = $v1
if ($v1 != head_image_mob.jpg) rsdidl -c $+(http://www.runescape.com/img/hiscores/,%b)
else rsdidl -c $+(http://www.runescape.com/img/main/layout/head_image_mob.jpg)
}
}
else { hfree -w HTTP* | unset %gotimgs }
}
alias -l rsd.getdid {
if ($1 == Attack) return 32
elseif ($1 == Strength) return 33
elseif ($1 == Defence) return 34
elseif ($1 == Hitpoints) return 35
elseif ($1 == Ranged) return 36
elseif ($1 == Magic) return 37
elseif ($1 == Prayer) return 38
elseif ($1 == Summoning) return 39
}
alias -l rsd.loadicons {
if ($dialog(RSD)) {
var %a = 1,%b = Attack Strength Defence Hitpoints Ranged Magic Prayer Summoning
if ($isfile($rsdir(head_image_mob.jpg))) did -g 16 RSD $rsdir(head_image_mob.jpg)
elseif( inc %c
while (%a <= $numtok(%b,32)) {
if ($isfile($rsdir($+(skill_icon_,$gettok(%b,%a,32),1.gif)))) did -g RSD $calc(%a +23) $rsdir($+(skill_icon_,$gettok(%b,%a,32),1.gif))
else inc %c
inc %a
}
noop $iif(%c > 1,rsd.err Some Images Couldn't be located!)
}
}
alias -l rsd.err {
hadd -m RSD err $1-
if ($gettok($1-,2,9)) sockclose $v1
rsd.dopen rsd.err rsd.err
beep 1
}
alias -l rsd.p2pc {
var %a = $calc($did(rsd,34) *100) , %b = $calc($did(rsd,35) *100) , %c = $iif($iseven($did(rsd,38)),$calc($did(rsd,38) *50),$calc(( $did(rsd,38) -1) *50)) , %d = $iif($iseven($did(rsd,39)),$calc($did(rsd,39) *50),$calc(( $did(rsd,39) -1) *50)) , %e = $calc($did(rsd,32) *130) , %g = $calc($did(rsd,33) *130) , %h = $iif($iseven($did(rsd,36)),$calc($did(rsd,36) *195),$calc(( $did(rsd,36) *195) -65)) , %i = $iif($iseven($did(rsd,37)),$calc($did(rsd,37) *195),$calc( ($did(rsd,38) *195) -65))
var %rsd.base = $calc(( %a + %b + %c + %d )/400) , %rsd.melee = $calc(( %e + %g) /400) , %rsd.mage = $calc(%h /400) , %rsd.ranged = $calc(%i /400) , %rsd.cmb = $calc(%rsd.base + $rsd.big(%rsd.melee,%rsd.ranged,%rsd.mage))
did -ra $dname 40 %rsd.cmb
}
alias -l rsd.f2pc {
var %a = $calc($did(rsd,34) *100),%b = $calc($did(rsd,35) *100),%c = $iif($iseven($did(rsd,38)),$calc($did(rsd,38) *50),$calc(( $did(rsd,38) -1) *50)),%e = $calc($did(rsd,32) *130),%g = $calc($did(rsd,33) *130),%h = $iif($iseven($did(rsd,36)),$calc($did(rsd,36) *195),$calc(( $did(rsd,36) *195) -65)),%i = $iif($iseven($did(rsd,37)),$calc($did(rsd,37) *195),$calc( ($did(rsd,38) *195) -65))
var %rsd.base = $calc(( %a + %b + %c + %d )/400) , %rsd.melee = $calc(( %e + %g) /400) , %rsd.mage = $calc(%h /400) , %rsd.ranged = $calc(%i /400) , %rsd.cmb = $calc(%rsd.base + $rsd.big(%rsd.melee,%rsd.ranged,%rsd.mage))
did -ra $dname 95 %rsd.cmb
}
alias -l rsd.sopen {
if ($gettok($1-,2,9)) did -r RSD $v1
var %sopen = $iif($right($3-,1) == $chr(32),$mid($3-,1,$calc($len($3-) -1)),$3-)
sockopen $+(rsd.,$1) $gettok($1-,2,32) 80
sockmark $+(rsd.,$1) $replace($gettok($iif(%sopen,$v1,$gettok($3-,1,9)),1,9),$chr(32),+)
}
alias -l rsd.dopen {
var %a = $1
if ($dialog(%a)) dialog -x $v1
dialog $+(-,$iif(%a = rsd,$rsd.dtype,-mo)) %a %a
}
alias -l ipicdl rsdidl -i $+(http://www.tip.it/runescape/item2/,$rsd.lower($1-),.gif)
alias -l mpicdl rsdidl -m $+(http://www.tip.it/runescape/mon2/,$1,.gif)
alias -l rsd.getstats {
var %allpics = Attack Strength Defence Hitpoints Ranged Magic Prayer Summoning,%curpic = $gettok(%allpics,%gotimgs,32)
if (!$isfile($rsdir($+(%curpic,.gif))) && %gotimgs <= 8) { rsdidl -c $+(http://www.runescape.com/img/hiscores/skill_icon_,%curpic,1.gif) $rsdir | inc %gotimgs }
elseif (%gotimgs >= 8 && %gotimgs <= 12) { rsd.mainpics | inc %gotimgs }
elseif (%gotimgs <= 8) { rsd.getstats | inc %gotimgs }
}
alias -l rsd.sm return $sock($1).mark
alias -l nochr return $remove($1,$chr($2))
alias -l rsd.lower {
var %a 1
while (%a <= $numtok($1-,32)) {
var %b = $upper($mid($1,1,1)),%c = $+(%b,$lower($mid($1-,2,$calc($len($1-) -1))))
inc %a
}
return $replace(%c,$chr(32),_)
}
alias -l rsd.cap {
var %a 1
while (%a <= $numtok($1-,32)) var %c = $gettok($1-,%a,32),%b = $addtok(%b,$+($upper($mid(%c,1,1)),$mid(%c,2,$calc($len(%c) -1))),32),%a = $calc(%a +1)
return %b
}
alias -l rsd.big {
var %a = $round($1,2) ,%b = $round($2,2) ,%c = $round($3,2)
return $iif(%a > %b && %a > %c,%a,$iif(%b > %c && %c < %a,%c,%b))
}
alias -l rsd.re {
var %a = $1,%b = $left($gettok(%a,2,46),-1),%c = 1
%a = $bytes($replace($gettok(%a,1,46) $+ $right(%a,1),b,000000000,k,000,m,000000,x,*,t,000000000000),db)
while (%c <= $len(%a)) {
if ($mid(%a,%c,1) == 0) { dec %c | break }
else inc %c
}
%a = $mid(%a,1,%c) $+ %b $+ $mid(%a,%c,$calc($len(%a) - $len(%c))))
return $rsd.rep($left($remove(%a,$chr(44)),-1))))
}
alias -l rsd.mdxc return $iif($findfile($mircdir,mdx.dll,0),$true,$false)
alias -l rsd.mdx $iif($rsd.mdxc,noop,halt) $dll($rsd.mdxl,$1,$2-)
alias -l rsd.mdxf return $+($nofile($rsd.mdxl),$1,.mdx)
alias -l rsd.mdxl return $findfile($mircdir,mdx.dll,1)
alias -l rsd.mdxs return $iif($isalias(jnnch),$true,$false)
on *:load: {
if (!$isdir($items.dir)) mkdir $items.dir
if (!$isdir($monsters.dir)) mkdir $monsters.dir
if (!$rsd.mdxc) { rsd.err Warning! MDX could not be found | halt }
}
on *:start: {
if ($rsd.mdxc) {
if (!$hget(RSD)) hmake RSD 10
if ($isfile($rsdir(RSD.txt))) { hload RSD $rsdir(RSD.txt) | .timerrsdsave 0 300 hsave RSD $rsdir(RSD.txt) }
elseif ($hget(RSD,Version) != 1.0) { rsd.chkstart }
}
}
on *:unload: {
rsd.save
.timerrsdsave off
}
menu channel {
RuneScape Dialog:rsd
}
updated alot of the code and replaced TheImrac's Image downloader with mine and added a ge update checker, although i had to add another tab with only that in it which makes it look kind of ugly so any ideas of what else to put there?
i also added a checker for MDX so if you dont have mdx you will get a error dialog when you try to load it.
You should include a GEUpdate checker, like this in it (i just changed some stuff around from an on text one: http://pastebin.com/d186161b0 To make it even hawter.
about the hiscores tho RuneScape is having some problems with their hiscores databases atm tho im not sure why but its causing some ppl not to be on the highscores unless they log in and then out making it update. id assume it has something to do with the isp change that's going on tho
it should be fixed when they finish their isp switch
Thanks!
And something you should know:
Line 140:
elseif ($did == 42) { did -ra $dname 32-34,36-39 1 | did ra $dname 35 10 | rsd.sopen cmbstats rscript.org $did(43) }
Change to..
elseif ($did == 42) { did -ra $dname 32-34,36-39 1 | did -ra $dname 35 10 | rsd.sopen cmbstats rscript.org $did(43) }
Forgot the - of -ra
try removing the hsh table and file then redownload it if that doesnt work just give me your email address and ill email you the .zip file
i also updated the pic of the dialog:
http://img3.imageshack.us/img3/6153/rsddx.jpg
This script is hawt :o.
Thanks for fixing that bug or whatever it was.
3 Problems: i don't think it auto-makes the /Items/ directory, and has to be added manually.
Socket rsd.minfo doesent auto-close when the sub-menu (for further monster info) is shut.
Monsters doesent display Race/Members Only? or Quest?
hmm i think the reason why its working is because the "grab the code" thing doesnt support the tab character should work once i update it in a sec
about the hiscores tho RuneScape is having some problems with their hiscores databases atm tho im not sure why but its causing some ppl not to be on the highscores unless they log in and then out making it update. id assume it has something to do with the isp change that's going on tho
I don't get how this doesent work for me >.< or just doesent like me.
I followed the steps above. i removed the mdx aliases from NNS in favour of those you have, and it won't work for me :(.
mIRC v6.35
Screens:
http://img294.imageshack.us/img294/632/screenshot025.png
http://img294.imageshack.us/img294/8623/screenshot026.png
http://img294.imageshack.us/img294/7405/screenshot028.png
http://img294.imageshack.us/img294/3280/screenshot029p.png
you can get MDX here
1) once you download it(preferably into your $mircdir) extract the .zip file into a sub directory using a program like winrar and [size=16]REMEMBER THE FILE PATH![/size]
2) if you load it, the MDX.mrc file has several aliases but only two that you need for this script so its best not to even load the file as this just complicates matters
3) once you've extracted the .zip file open your remotes and go to the and click on the alias's tab and add two aliases(without using the alias prefix) an ex could be:
mdxfile { return $+($mircdir,mdx\,$1,.mdx) }
mdx { var %dll = $mircdirMDX\mdx.dll | return $dll(%dll,$1,$2-) }
change the file path to the one that you saved MDX.dll into(the one from step 1)
It's downloading them now but then just stops and doesn't get them all, I get this
the download stops and then I get this when I try to run it:
EDIT: Email received, it works, thanks. :)
hmm worked for me several times for me dont think anyone else had a prob with it either, if it freezes type this:
//remove $rsdir(RSD.txt) | hfree RSD
then reload the script
if that fails i can email you the full script
edit: i updated the img downloader a little and should download the pictures a lil bit faster and tried it about 5 seperate times and it all seemed to download fine on my end