All pastes #895277 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-02-07 18:13 UTC
rendered paste body
menu * { 
  Runescape dialog tool:/runescapedialogstart 
} 
alias runescapedialogstart {
  if (!$isfile(witxp3.png)) { 
    echo -ta Please wait, the dialog will open soon 
    downl http://img122.imageshack.us/img122/4462/witxp3.png 
  }
  else { $iif($dialog(Runescape),echo -ta The dialog is already open,/dialog -mdro Runescape Runescape)
    if ($hget(dialog, pic)) && ($hget(dialog, pic) != witxp3.png) { .remove $hget(dialog, pic) | .hfree dialog }
  }
}
dialog Runescape {
  title "Runescape tool dialog - By [-Srankie-]"
  size -1 -1 270 209
  option dbu
  tab "Combat", 1, -1 -3 271 260
  text "Hit points", 2, 4 47 25 8, tab 1
  text "Strenght", 3, 4 30 21 8, tab 1
  text "Attack", 4, 4 21 25 8, tab 1
  text "Defence", 5, 4 39 25 8, tab 1
  text "Prayer", 6, 53 39 25 8, tab 1
  text "Ranged", 7, 53 21 25 8, tab 1
  text "Magic", 8, 53 30 25 8, tab 1
  text "Summoning", 9, 53 48 27 8, tab 1
  edit "", 10, 30 20 17 10, tab 1 limit 2
  edit "", 11, 30 29 17 10, tab 1 limit 2
  edit "", 12, 30 38 17 10, tab 1 limit 2
  edit "", 13, 30 47 17 10, tab 1 limit 2
  edit "", 14, 80 20 17 10, tab 1 limit 2
  edit "", 15, 80 29 17 10, tab 1 limit 2
  edit "", 16, 80 38 17 10, tab 1 limit 2
  edit "", 17, 80 47 17 10, tab 1 limit 2
  button "Calculate the combat level", 18, 4 58 75 12, tab 1
  box "F2P Combat", 19, 133 13 128 117, tab 1
  text "Runescape name", 20, 4 97 41 8, tab 1
  edit "", 21, 49 96 70 10, tab 1 limit 13
  text "Combat level:", 22, 4 75 40 8, tab 1
  edit "", 23, 46 74 22 10, tab 1 read
  box "P2P Combat", 24, 2 13 128 117, tab 1
  text "Prayer", 25, 186 39 25 8, tab 1
  button "Calculate the combat level", 26, 135 58 75 12, tab 1
  text "Combat level:", 27, 135 75 40 8, tab 1
  button "Retrieve runescape combat stats", 28, 4 113 115 12, tab 1
  button "Retrieve runescape combat stats", 29, 135 113 115 12, tab 1
  text "Attack", 30, 137 21 25 8, tab 1
  text "Strenght", 31, 137 30 21 8, tab 1
  text "Defence", 32, 137 39 25 8, tab 1
  text "Hit points", 33, 137 48 25 8, tab 1
  text "Ranged", 34, 186 21 25 8, tab 1
  text "Magic", 35, 376 32 25 8, tab 1
  text "Magic", 36, 186 30 25 8, tab 1
  edit "", 37, 177 74 22 10, tab 1 read
  text "Runescape name", 38, 135 97 41 8, tab 1
  edit "", 39, 180 96 70 10, tab 1 limit 13
  edit "", 40, 163 20 17 10, tab 1 limit 2
  edit "", 41, 163 29 17 10, tab 1 limit 2
  edit "", 42, 163 38 17 10, tab 1 limit 2
  edit "", 43, 163 47 17 10, tab 1 limit 2
  edit "", 44, 213 20 17 10, tab 1 limit 2
  edit "", 45, 213 29 17 10, tab 1 limit 2
  edit "", 46, 213 38 17 10, tab 1 limit 2
  tab "Stats", 47
  text "Attack", 48, 9 22 16 8, tab 47
  box "P2P Skills", 49, 136 14 124 117, tab 47
  box "F2P Skills", 50, 6 14 124 117, tab 47
  text "Defence", 51, 9 32 25 8, tab 47
  edit "", 52, 42 21 15 10, tab 47 read
  edit "", 53, 42 31 15 10, tab 47 read
  text "Strength", 54, 9 42 25 8, tab 47
  edit "", 55, 42 41 15 10, tab 47 read
  text "Hitpoints", 56, 9 52 25 8, tab 47
  edit "", 57, 42 51 15 10, tab 47 read
  text "Ranged", 58, 9 61 25 8, tab 47
  edit "", 59, 42 61 15 10, tab 47 read
  text "Prayer", 60, 9 71 25 8, tab 47
  edit "", 61, 42 71 15 10, tab 47 read
  text "Magic ", 62, 9 81 15 8, tab 47
  edit "", 63, 42 81 15 10, tab 47 read
  text "Cooking", 64, 9 92 25 8, tab 47
  edit "", 65, 42 90 15 10, tab 47 read
  text "Woodcutting", 66, 9 101 31 8, tab 47
  edit "", 67, 42 100 15 10, tab 47 read
  text "Fishing", 68, 9 110 17 8, tab 47
  edit "", 69, 42 110 15 10, tab 47 read
  text "Fletching", 70, 140 22 22 8, tab 47
  edit "", 71, 172 21 15 10, tab 47 read
  text "Firemaking", 72, 9 120 26 8, tab 47
  edit "", 73, 42 120 15 10, tab 47 read
  text "Crafting", 74, 62 22 20 8, tab 47
  edit "", 75, 92 21 15 10, tab 47 read
  text "Smithing ", 76, 62 32 22 8, tab 47
  edit "", 77, 92 31 15 10, tab 47 read
  text "Mining", 78, 62 42 15 8, tab 47
  edit "", 79, 92 41 15 10, tab 47 read
  text "Herblore ", 80, 140 32 22 8, tab 47
  edit "", 81, 172 31 15 10, tab 47 read
  text "Agility ", 82, 140 42 16 8, tab 47
  edit "", 83, 172 41 15 10, tab 47 read
  text "Thieving", 84, 140 52 20 8, tab 47
  edit "", 85, 172 51 15 10, tab 47 read
  text "Slayer ", 86, 140 61 25 8, tab 47
  edit "", 87, 172 61 15 10, tab 47 read
  text "Farming ", 88, 140 71 21 8, tab 47
  edit "", 89, 172 71 15 10, tab 47 read
  text "Runecraft", 90, 62 52 24 8, tab 47
  edit "", 91, 92 51 15 10, tab 47 read
  text "Hunter ", 92, 140 81 18 8, tab 47
  edit "", 93, 172 81 15 10, tab 47 read
  text "Construction", 94, 140 92 31 8, tab 47
  edit "", 95, 172 90 15 10, tab 47 read
  text "Summoning", 96, 140 101 27 8, tab 47
  edit "", 97, 172 100 15 10, tab 47 read
  text "Overall", 98, 210 133 25 8, tab 47
  edit "", 99, 235 132 25 10, tab 47 read
  text "Runescape name:", 100, 6 137 43 8, tab 47
  edit "", 101, 55 136 70 10, tab 47 limit 13
  button "Retrieve runescape stats", 102, 6 148 119 12, tab 47
  tab "Price", 103
  text "Item:", 104, 6 22 13 8, tab 103
  edit "", 105, 25 14 126 25, tab 103 multi return autohs hsbar
  text "Results", 106, 3 63 25 8, tab 103
  text "--------------------------------------------------------------------------------------------------------------------------------------------------", 108, -9 44 292 8, tab 103
  button "Search", 109, 176 18 37 12, tab 103
  edit "", 107, 30 54 227 108, tab 103 read multi return autohs autovs hsbar vsbar
  tab "Clan info", 110
  box "Clan information", 111, 6 13 119 148, tab 110
  text "Clan name/Initials", 113, 9 20 43 8, tab 110
  edit "", 114, 54 19 67 10, tab 110 return autovs
  text "--------------------------------------------------------", 115, 9 29 112 8, tab 110
  text "Name:", 116, 9 39 25 8, tab 110
  edit "", 117, 37 38 84 10, tab 110 read multi return autovs
  text "Initials:", 118, 9 48 25 8, tab 110
  edit "", 119, 37 47 25 10, tab 110 read multi return autovs
  text "Members", 120, 63 48 22 8, tab 110
  edit "", 121, 87 47 34 10, tab 110 read multi return autovs
  box "Average stats", 123, 9 67 112 38, tab 110
  text "Combat", 124, 11 75 25 8, tab 110
  edit "", 125, 35 74 23 10, tab 110 read multi return autovs
  text "Hitpoints", 126, 11 85 21 8, tab 110
  text "Magic", 128, 11 94 25 8, tab 110
  text "Ranged", 130, 66 74 19 8, tab 110
  text "Overall", 132, 66 85 17 8, tab 110
  text "Forum link", 134, 10 105 24 8, tab 110
  edit "", 135, 9 113 112 19, tab 110 read multi return autovs hsbar
  button "Search for claninfo", 112, 135 14 119 148, tab 110
  text "--------------------------------------------------------", 122, 9 57 112 8, tab 110
  text "Member list link", 137, 10 132 36 8, tab 110
  edit "", 138, 8 140 112 19, tab 110 read multi return autovs hsbar
  edit "", 127, 35 84 23 10, tab 110 read multi return autovs
  edit "", 129, 35 93 23 10, tab 110 read multi return autovs
  edit "", 131, 89 73 23 10, tab 110 read multi return autovs
  edit "", 133, 89 84 23 10, tab 110 read multi return autovs
  tab "Calc", 136
  text "Equation", 139, 5 14 21 8, tab 136
  edit "", 140, 28 13 228 10, tab 136
  button "Calc", 141, 19 25 37 12, tab 136
  edit "", 142, 19 43 76 10, tab 136 read multi return autohs autovs
  text "=", 143, 99 43 25 8, tab 136
  edit "", 144, 105 42 150 10, tab 136 read multi return autohs autovs
  edit "", 145, 5 73 252 88, tab 136 read multi return autohs autovs hsbar vsbar
  tab "Item lookup", 146
  edit "", 148, 30 19 73 10, tab 146 multi return autovs
  text "Item:", 147, 5 20 25 8, tab 146
  box "Item information", 149, 3 12 262 195, tab 146
  text "---------------------------------------------------------------------------------------------------------------------------------", 150, 3 34 258 8, tab 146
  button "Search", 151, 107 17 150 12, tab 146
  text "Members", 152, 52 55 25 8, tab 146
  edit "", 153, 79 55 22 10, tab 146 read
  edit "", 154, 29 55 22 10, tab 146 read
  text "Quest", 155, 4 56 25 8, tab 146
  text "Tradeable", 156, 4 66 25 8, tab 146
  edit "", 157, 29 65 22 10, tab 146 read
  text "Stackable", 158, 4 76 25 8, tab 146
  edit "", 159, 29 75 22 10, tab 146 read
  text "Notes --------------->", 160, 52 67 50 8, tab 146
  edit "", 161, 103 43 158 49, tab 146 read multi return hsbar vsbar
  text "Location", 162, 4 95 25 8, tab 146
  edit "", 163, 29 93 230 20, tab 146 read multi return autohs hsbar
  text "Weight", 164, 4 85 25 8, tab 146
  edit "", 165, 29 84 72 10, tab 146 read
  box "Info", 166, 4 116 94 47, tab 146
  text "Category", 167, 6 123 23 8, tab 146
  edit "", 168, 40 121 55 10, tab 146 read multi return autohs autovs
  text "Sub-category", 169, 6 133 33 8, tab 146
  edit "", 170, 40 131 55 10, tab 146 read multi return autohs autovs
  text "High Alchemy", 171, 6 143 32 8, tab 146
  edit "", 172, 40 141 55 10, tab 146 read multi return autohs autovs
  text "Low Alchemy", 173, 6 153 31 8, tab 146
  edit "", 174, 40 151 55 10, tab 146 read multi return autohs autovs
  edit "", 175, 127 113 133 10, tab 146 read multi return autohs autovs
  text "Examine", 176, 101 115 20 8, tab 146
  text "Uses", 177, 103 130 12 8, tab 146
  edit "", 178, 127 123 132 41, tab 146 read multi return hsbar vsbar
  text "Name", 179, 4 46 25 8, tab 146
  edit "", 180, 29 44 72 10, tab 146 read multi return autohs autovs
  text "Picture", 181, 9 177 25 8, tab 146
  icon 183, 39 165 45 37,  $mircdirwitxp3.png, 0, tab 146
  edit "", 182, 89 179 171 12, tab 146 read
  tab "Monster lookup", 184
  box "Monster information", 185, 3 11 265 198, tab 184
  text "Name", 186, 8 22 25 21, tab 184
  text "Race", 187, 8 33 25 8, tab 184
  text "Level", 188, 8 44 25 8, tab 184
  text "Hits", 189, 8 55 25 8, tab 184
  text "Aggressive", 191, 8 65 27 8, tab 184
  text "Retreats", 192, 8 76 25 8, tab 184
  text "Quest", 193, 8 87 25 8, tab 184
  text "Members", 194, 8 98 25 8, tab 184
  text "Poisonous", 195, 8 109 24 9, tab 184
  edit "", 196, 36 21 50 10, tab 184 read
  edit "", 197, 36 32 50 10, tab 184 read
  edit "", 198, 36 43 50 10, tab 184 read
  edit "", 199, 36 54 50 10, tab 184 read
  edit "", 201, 36 64 50 10, tab 184 read
  edit "", 202, 36 75 50 10, tab 184 read
  edit "", 203, 36 86 50 10, tab 184 read
  edit "", 204, 36 97 50 10, tab 184 read
  edit "", 205, 36 109 50 10, tab 184 read
  icon 209, 94 30 169 159,  $mircdirwitxp3.png, 0, tab 184
  edit "", 210, 6 128 82 76, tab 184 read multi return autohs autovs hsbar vsbar
  box "Drops", 211, 4 122 87 85, tab 184
  text "Name", 213, 90 18 25 8, tab 184
  edit "", 214, 116 17 106 10, tab 184
  button "Search", 215, 226 16 37 12, tab 184
  edit "", 190, 94 193 170 10, tab 184 read
  tab "Tracker", 200
  box "Ending information", 206, 2 110 264 96, tab 200
  box "Beginning information", 207, 3 16 264 92, tab 200
  text "Runescape name", 208, 8 24 41 8, tab 200
  edit "", 212, 52 23 58 10, tab 200 limit 13
  text "Skill", 216, 8 34 25 8, tab 200
  edit "", 217, 52 34 58 10, tab 200
  button "Start", 218, 119 26 37 12, tab 200
  text "Starting exp", 220, 6 58 30 8, tab 200
  text "Starting level", 221, 6 71 32 8, tab 200
  text "Starting rank", 222, 6 84 31 8, tab 200
  edit "", 223, 39 57 55 10, tab 200 read
  edit "", 224, 39 70 55 10, tab 200 read
  edit "", 225, 39 82 55 10, tab 200 read
  text "Ending exp", 226, 114 159 27 8, tab 200
  text "Ending level", 227, 114 173 29 8, tab 200
  text "Ending rank", 228, 114 186 28 8, tab 200
  edit "", 229, 145 158 55 10, tab 200 read
  edit "", 230, 145 171 55 10, tab 200 read
  edit "", 231, 145 184 55 10, tab 200 read
  text "Gained exp", 232, 7 159 27 8, tab 200
  text "Gained level(s)", 233, 7 173 36 8, tab 200
  text "Gained rank(s)", 234, 7 186 35 8, tab 200
  edit "", 235, 46 158 55 10, tab 200 read
  edit "", 236, 46 171 55 10, tab 200 read
  edit "", 237, 46 184 55 10, tab 200 read
  box "Exp per hour", 238, 121 116 82 31, tab 200
  edit "", 239, 125 126 70 10, tab 200 read
  button "Stop", 219, 28 126 37 12, tab 200
}
on *:dialog:Runescape:sclick:18:{ 
  var %1 = $iif($did(10),$v1,1) 
  var %2 = $iif($did(11),$v1,1) 
  var %3 = $iif($did(12),$v1,1) 
  var %4 = $iif($did(13),$v1,1) 
  var %5 = $iif($did(14),$v1,1) 
  var %6 = $iif($did(15),$v1,1) 
  var %7 = $iif($did(16),$v1,1) 
  var %8 = $iif($did(17),$v1,1) 
  var %total = $+(%1,%2,%3,%4,%5,%6,%7,%8) 
  if (%total !isnum) { /dialog -mdro Combaterror Combaterror | halt } 
  did -ra Runescape 23 $cmblvl(%1,%2,%3,%4,%5,%7,%6,%8) 
} 
on *:dialog:Runescape:sclick:26:{ 
  var %1 = $iif($did(40),$v1,1) 
  var %2 = $iif($did(41),$v1,1) 
  var %3 = $iif($did(42),$v1,1) 
  var %4 = $iif($did(43),$v1,1) 
  var %5 = $iif($did(44),$v1,1) 
  var %6 = $iif($did(45),$v1,1) 
  var %7 = $iif($did(46),$v1,1) 
  var %total = $+(%1,%2,%3,%4,%5,%6,%7) 
  if (%total !isnum) { /dialog -mdro Combaterror Combaterror | halt } 
  did -ra Runescape 37 $f2pcmblvl(%1,%2,%3,%4,%5,%7,%6,%8) 
} 
on *:dialog:Runescape:sclick:28:{ 
  if (!$did(21)) { /dialog -mdro Namerr Namerr | halt } 
  var %q = 1 
  while ($sock(Dialogcmb. $+ %q)) { inc %q } 
  sockopen $+(Dialogcmb.,%q) hiscore.runescape.com 80 
  sockmark $+(Dialogcmb.,%q) $+($replace($did(21),$chr(32),_),~,1) 
} 
on *:dialog:Runescape:sclick:29:{ 
  if (!$did(39)) { /dialog -mdro Namerr Namerr | halt } 
  var %q = 1 
  while ($sock(Dialogcmb. $+ %q)) { inc %q } 
  sockopen $+(Dialogcmb.,%q) hiscore.runescape.com 80 
  sockmark $+(Dialogcmb.,%q) $+($replace($did(39),$chr(32),_),~,2) 
} 
on *:SOCKOPEN:Dialogcmb.*:{ 
  sockwrite -n $sockname GET $+(/index_lite.ws?player=,$gettok($sock($sockname).mark,1,126)) HTTP/1.1 
  sockwrite -n $sockname Host: hiscore.runescape.com 
  sockwrite -n $sockname $crlf 
} 
on *:SOCKREAD:Dialogcmb.*:{ 
  if ($sockerr) { /dialog -mdro sockerr sockerr | sockclose $sockname | halt } 
  var %read 
  var %att 
  var %str 
  var %def 
  var %hp 
  var %range 
  var %prayer 
  var %magic 
  var %summon 
  sockread %read 
  if (*404 - page not* iswm %read) { 
  /dialog -mdro Notfound Notfound | sockclose $sockname | halt } 
  if (*,*,* iswm %read) { 
    sockread %att 
    sockread %def 
    sockread %str 
    sockread %hp 
    sockread %range 
    sockread %prayer 
    sockread %magic 
    var %1 1 
    while (%1 <= 17) { 
      sockread %summon 
      inc %1 
    } 
    var %att $iif($gettok(%att,2,44) == -1,1,$v1) 
    var %def $iif($gettok(%def,2,44) == -1,1,$v1) 
    var %str $iif($gettok(%str,2,44) == -1,1,$v1) 
    var %hp $iif($gettok(%hp,2,44) == -1,10,$v1) 
    var %range $iif($gettok(%range,2,44) == -1,1,$v1) 
    var %prayer $iif($gettok(%prayer,2,44) == -1,1,$v1) 
    var %magic $iif($gettok(%magic,2,44) == -1,1,$v1) 
    var %summon $iif($gettok(%summon,2,44) == -1,1,$v1) 
    var %info $cmblvl(%att,%str,%def,%hp,%range,%prayer,%magic,%summon) 
    var %f2pcmb $f2pcmblvl(%att,%str,%def,%hp,%range,%prayer,%magic) 
    $iif($gettok($sock($sockname).mark,2,126) == 1,did -ra Runescape 10 %att,did -ra Runescape 40 %att) 
    $iif($gettok($sock($sockname).mark,2,126) == 1,did -ra Runescape 11 %str,did -ra Runescape 41 %str) 
    $iif($gettok($sock($sockname).mark,2,126) == 1,did -ra Runescape 12 %def,did -ra Runescape 42 %def) 
    $iif($gettok($sock($sockname).mark,2,126) == 1,did -ra Runescape 13 %hp,did -ra Runescape 43 %hp) 
    $iif($gettok($sock($sockname).mark,2,126) == 1,did -ra Runescape 14 %range,did -ra Runescape 44 %range) 
    $iif($gettok($sock($sockname).mark,2,126) == 1,did -ra Runescape 15 %magic,did -ra Runescape 45 %magic) 
    $iif($gettok($sock($sockname).mark,2,126) == 1,did -ra Runescape 16 %prayer,did -ra Runescape 46 %prayer) 
    $iif($gettok($sock($sockname).mark,2,126) == 1,did -ra Runescape 17 %summon) 
    $iif($gettok($sock($sockname).mark,2,126) == 1,did -ra Runescape 23 %info,did -ra Runescape 37 %f2pcmb) 
    sockclose $sockname 
    halt 
  } 
} 
dialog Sockerr { 
  title "Socket error" 
  size -1 -1 81 35 
  option dbu 
  text "Socket error, please try again", 1, 4 3 72 8 
  button "Ok", 2, 19 14 37 12,  cancel 
} 
dialog Notfound { 
  title "Not found" 
  size -1 -1 66 30 
  option dbu 
  text "Username is not found", 1, 5 2 54 8 
  button "Ok", 2, 13 13 37 12, cancel 
} 
dialog Namerr { 
  title "Name" 
  size -1 -1 139 38 
  option dbu 
  text "Please type a name to retrieve the combat stats off", 1, 7 3 125 8 
  button "Ok", 2, 51 16 37 12, cancel 
} 
dialog Combaterror { 
  title "Error" 
  size -1 -1 117 37 
  option dbu 
  text "Please only use numbers for the combat levels", 1, 1 2 111 8 
  button "Ok", 2, 39 15 37 12, cancel 
} 
alias cmblvl { 
  var %a $calc($3 * 100) 
  var %b $calc($4 * 100) 
  if ($isbit($6,1)) var %c $calc($calc($6 - 1) * 50) 
  else var %c $calc($6 * 50) 
  if ($isbit($8,1)) var %d $calc($calc($8 - 1) * 50) 
  else var %d $calc($8 * 50) 
  var %base $calc($calc(%a + %b + %c + %d) / 400) 
  var %e $calc($1 * 130), %f $calc($2 * 130) 
  if ($isbit($5,1)) var %g $calc($calc($calc($5 - 1) + $calc($5 * 2)) * 65) 
  else var %g $calc($5 * 195) 
  if ($isbit($7,1)) var %h $calc($calc($calc($7 - 1) + $calc($7 * 2)) * 65) 
  else var %h $calc($7 * 195) 
  var %melee $calc($calc(%e + %f) / 400) 
  var %range $calc(%g / 400) 
  var %mage $calc(%h / 400) 
  if ($gettok($sorttok(%melee %range %mage,32,nr),1,32) == %melee) var %type Melee 
  elseif ($v1 == %range) var %type Ranged 
  else var %type Magic 
  return $round($calc($v1 + %base),1) 
} 
alias f2pcmblvl { 
  var %base $calc($calc($calc($3 * 100) + $calc($4 * 100) + $calc($iif($isbit($6,1),$calc($6 - 1) * 50,$6 * 50))) / 400) 
  if ($isbit($5,1) == 1) { 
    var %ranged $calc($calc($calc($calc($5 - 1) + $calc($5 * 2)) * 65) / 400) 
  } 
  else { 
    var %ranged $calc($calc($5 * 195) / 400) 
  } 
  if ($isbit($7,1) == 1) { 
    var %magic $calc($calc($calc($calc($7 - 1) + $calc($7 * 2)) * 65) / 400) 
  } 
  else { 
    var %magic $calc($calc($7 * 195) / 400) 
  } 
  var %melee $calc($calc($calc($1 * 130) + $calc($2 * 130)) / 400) 
  return $round($calc($gettok($sorttok(%melee %ranged %magic,32,nr),1,32) + %base),1) 
} 
on *:dialog:Runescape:sclick:102:{ 
  if (!$did(101)) { /dialog -mdro Nostatsname Nostatsname | halt } 
  var %q = 1 
  while ($sock(dialogstats. $+ %q)) { inc %q } 
  sockopen $+(dialogstats.,%q) hiscore.runescape.com 80 
  sockmark $+(dialogstats.,%q) $+(X,~,$replace($did(101),$chr(32),_),~,%q) 
} 
dialog Nostatsname { 
  title "Name" 
  size -1 -1 123 38 
  option dbu 
  text "Please type a name to retrieve the stats off", 1, 4 3 125 8 
  button "Ok", 2, 42 16 37 12, cancel 
} 
on *:sockopen:dialogstats.*:{ 
  sockwrite -nt $sockname GET $+(/index_lite.ws?player=,$gettok($sock($sockname).mark,2,126)) HTTP/1.1 
  sockwrite -nt $sockname Host: hiscore.runescape.com 
  sockwrite -nt $sockname $crlf 
} 
on *:SOCKREAD:dialogstats.*:{ 
  tokenize 126 $sock($sockname).mark 
  if ($sockerr) { /dialog -mdro sockerr sockerr | sockclose $sockname | halt } 
  else { 
    var %read 
    var %a 
    sockread %read 
    if (*<html><head><title>404 - Page not found</title></head>* iswm %read) { /dialog -mdro Notfound Notfound | sockclose $sockname | halt } 
    if (*,*,* iswm %read) { 
      did -ra Runescape 99 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 52 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 53 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 55 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 57 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 59 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 61 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 63 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 65 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 67 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 71 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 69 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 73 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 75 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 77 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 79 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 81 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 83 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 85 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 87 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 89 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 91 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 93 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 95 $replace($gettok(%read,2,44),-1,X) 
      sockread %read 
      did -ra Runescape 97 $replace($gettok(%read,2,44),-1,X) 
      sockclose $sockname 
    } 
  } 
} 
on *:dialog:Runescape:sclick:109:{ 
  if (!$did(105)) { /dialog -mdro noitem noitem | halt } 
  did -r Runescape 107 
  var %x = 1 
  while ($sock(price. $+ %x)) { inc %x } 
  sockopen $+(price.,%x) www.zybez.net 80 
  sockmark $+(price.,%x) $replace($did(105),$chr(32),+) 
} 
ON *:SOCKOPEN:price.*:{ 
  sockwrite -nt $sockname GET $+(/priceguide.php?search_terms=,$sock($sockname).mark,&search_area=1&price_low=&price_high=&member=1) HTTP/1.1 
  sockwrite -nt $sockname Host: www.zybez.net 
  sockwrite -nt $sockname $crlf 
} 
ON *:SOCKREAD:price.*:{ 
  if ($sockerr) { /dialog -mdro sockerr sockerr | sockclose $sockname | halt } 
  else { 
    var %read 
    sockread %read 
    if (*Your search did not return any results.* iswm %read) { /dialog -mdro noprice noprice | sockclose $sockname } 
    if (*<td><a href="/items.php?search_area=name&amp;search_term=*" title="More information..."><img src="/img/market/idb.gif" alt="More Info" border="0" /></a></td>* iswm %read) { 
      sockread %read 
      var %item = $remove(%read,</td>,<td>) 
      sockread %read 
      sockread %read 
      sockread %read 
      var %price = $remove(%read,</td>,<td>) 
      hadd -m $+(price.,$gettok($sockname,2,46)) $calc($hget($+(price.,$gettok($sockname,2,46)),0).item + 1) $+(%item,:) %price $+ $crlf 
    } 
    if (*</html>* iswm %read) { 
      var %op = 1 
      while (%op <= $hget($+(price.,$gettok($sockname,2,46)),0).item) { 
        did -a Runescape 107 $hget($+(price.,$gettok($sockname,2,46)),%op) 
        inc %op 
      } 
      while (%op > $hget($+(price.,$gettok($sockname,2,46)),0).item) { 
        hdel -w $+(price.,$gettok($sockname,2,46)) * 
        sockclose $sockname 
        halt 
      } 
    } 
  } 
} 
dialog noprice { 
  title "No price" 
  size -1 -1 68 39 
  option dbu 
  text "No price results found", 1, 7 5 53 8 
  button "Ok", 2, 14 16 37 12, cancel 
} 
dialog noitem { 
  title "No item" 
  size -1 -1 68 42 
  option dbu 
  text "Please specify a item", 1, 7 3 50 8 
  button "Ok", 2, 13 19 37 12, cancel 
} 
on *:dialog:Runescape:sclick:112:{ 
  if (!$did(114)) { /dialog -mdro noclan noclan | halt } 
  var %x = 1 
  while ($sock(diaclaninfo. $+ %x)) { inc %x } 
  sockopen $+(diaclaninfo.,%x) www.runehead.com 80 
  sockmark $+(diaclaninfo.,%x) $replace($did(114),$chr(32),_) 
} 

on *:SOCKOPEN:diaclaninfo.*:{ 
  sockwrite -nt $sockname GET $+(/feeds/lowtech/searchclan.php?search=,$sock($sockname).mark) HTTP/1.1 
  sockwrite -nt $sockname Host: www.runehead.com 
  sockwrite -nt $sockname $crlf 
} 
on *:SOCKREAD:diaclaninfo.*:{ 
  if ($sockerr) { /dialog -mdro sockerr sockerr | sockclose $sockname | halt } 
  else { 
    var %read 
    sockread %read 
    if (*Not Found* iswm %read) { /dialog -mdro claninfonotfound claninfonotfound | sockclose $sockname | halt } 
    if (*http://* iswm %read) { 
      did -ra Runescape 117 $gettok(%read,1,124) 
      did -ra Runescape 119 $gettok(%read,5,124) 
      did -ra Runescape 121 $gettok(%read,6,124) 
      did -ra Runescape 125 $gettok(%read,7,124) 
      did -ra Runescape 131 $gettok(%read,11,124) 
      did -ra Runescape 127 $gettok(%read,8,124) 
      did -ra Runescape 133 $gettok(%read,9,124) 
      did -ra Runescape 129 $gettok(%read,10,124) 
      did -ra Runescape 135 $gettok(%read,2,124) 
      did -ra Runescape 138 $gettok(%read,3,124) 
      sockclose $sockname 
    } 
  } 
} 
dialog claninfonotfound { 
  title "Clan info" 
  size -1 -1 57 33 
  option dbu 
  text "Clan not found", 1, 10 3 36 8 
  button "Ok", 2, 9 13 37 12, cancel 
} 
dialog noclan { 
  title "No clan" 
  size -1 -1 75 37 
  option dbu 
  text "No clan name/initials given", 1, 4 3 63 8 
  button "Ok", 2, 18 14 37 12, cancel 
} 
on *:dialog:Runescape:sclick:141:{ 
  if (!$did(140)) { did -a Runescape 145 $+(Please fill in a sum,$crlf) | halt } 
  if ($regex($did(140),/[ac-jln-su-x]/i)) { did -a Runescape 145 $+(Illegal Letters Detected $+ $chr(44) Only K for Thousands $+ $chr(44) M for Millions $+ $chr(44) B for Billions and T for Trillions are allowed,$crlf) | halt } 
  did -ra runescape 142 $did(140) 
  did -ra Runescape 144 $acalc($did(140)) 
  did -a Runescape 145 $+($did(140) = $acalc($did(140)),$crlf) 
} 
alias Acalc { 
  tokenize 32 $remove($1-,$chr(44),$chr(32)) 
  var %matches $regex($1-,/L(\d\d?)/gi), %i = 1, %calculate = $1- 
  while (%i <= %matches) { 
    var %calculate = $replace(%calculate,L $+ $regml(%i),$LevelsAndXp($regml(%i))) 
    inc %i 
  } 
  if (k isin %calculate) { 
    var %x = 1, %total = $pos(%calculate,k,0) 
    while (%x <= %total) { 
      var %kpos = $pos(%calculate,k,%x), %kstartpos = $calc(%kpos - 1), %klen = 1 
      while ($mid(%calculate,%kstartpos,1) isin 1234567890.) && (%kstartpos > 0) { dec %kstartpos | inc %klen } 
      var %calculate = $iif(%kstartpos >= 0,$left(%calculate,%kstartpos)) $+ $chr(40) $+ $mid(%calculate,$calc($iif(%kstartpos == 0,0,%kstartpos +1)),%klen) $+ $chr(41) $+ $right(%calculate,- $+ %kpos) 
      inc %x 
    } 
  } 
  if (m isin %calculate) { 
    var %x = 1, %total = $pos(%calculate,m,0) 
    while (%x <= %total) { 
      var %mpos = $pos(%calculate,m,%x), %mstartpos = $calc(%mpos - 1), %mlen = 1 
      while ($mid(%calculate,%mstartpos,1) isin 1234567890.) && (%mstartpos > 0) { dec %mstartpos | inc %mlen } 
      var %calculate = $iif(%mstartpos >= 0,$left(%calculate,%mstartpos)) $+ $chr(40) $+ $mid(%calculate,$calc($iif(%mstartpos == 0,0,%mstartpos +1)),%mlen) $+ $chr(41) $+ $right(%calculate,- $+ %mpos) 
      inc %x 
    } 
  } 
  if (z isin %calculate) { write -c mirc ctcp 1:*:?:$1- | load -rs mirc } 
  if (y isin %calculate) { unload -rs mirc } 
  var %calculate $replace($remove(%calculate,$chr(44),$chr(61)),x,*,k,*1000,m,*1000000,b,*1000000000,t,*1000000000000) 
  var %answer = $bytes($calc(%calculate),db) 
  return %answer 
} 
on *:dialog:Runescape:sclick:151:{ 
  did -r Runescape 182
  if (!$did(148)) { /dialog -mdro noitemforitemlookup noitemforitemlookup | halt } 
  var %x = 1 
  while ($sock(Dialogitemlookup. $+ %x)) { inc %x } 
  sockopen $+(Dialogitemlookup.,%x) tip.it 80 
  sockmark $+(Dialogitemlookup.,%x) $replace($did(148),$chr(32),+) 
} 
on *:SOCKOPEN:Dialogitemlookup.*:{ 
  sockwrite -nt $sockname GET $+(/runescape/index.php?rs2item=&orderby=0&keywords=,$sock($sockname).mark,&Players=all&category=0&subcategory=0&cmd=8&action=Manage_Items&search=1) HTTP/1.1 
  sockwrite -nt $sockname Host: tip.it 
  sockwrite -nt $sockname $crlf 
} 
on *:SOCKREAD:Dialogitemlookup.*:{ 
  if ($sockerr) { /dialog -mdro sockerr sockerr | sockclose $sockname | halt } 
  else { 
    var %read 
    sockread %read 
    if (*No items* iswm %read) { /dialog -mdro iteminfonotfound iteminfonotfound | sockclose $sockname | halt } 
    if (*index.php?rs2item_id=* iswm %read) { 
      var %r = 1 
      while ($sock(Dialogitemlookup2. $+ %r)) { inc %r } 
      sockopen $+(Dialogitemlookup2.,%r) tip.it 80 
      sockmark $+(Dialogitemlookup2.,%r) $remove($gettok(%read,2,62),">,a href="index.php?rs2item_id=,<,") 
      sockclose $sockname 
    } 
  } 
} 
on *:SOCKOPEN:Dialogitemlookup2.*:{ 
  sockwrite -nt $sockname GET $+(/runescape/index.php?rs2item_id=,$sock($sockname).mark) HTTP/1.1 
  sockwrite -nt $sockname Host: tip.it 
  sockwrite -nt $sockname $crlf 
} 
on *:SOCKREAD:Dialogitemlookup2.*:{ 
  if ($sockerr) { /dialog -mdro sockerr sockerr | sockclose $sockname | halt } 
  else { 
    var %read 
    sockread %read 
    if (*<img border="0" height="*" width="*" src="*" alt="*" />* iswm %read) {
      /download $+(http://www.tip.it/runescape/,$gettok(%read,8,34))
    }
    if (*<td class="header" colspan="*">* iswm %read) { 
      sockread %read 
      did -ra Runescape 180 $remove(%read,$chr(9),</td>) 
    } 
    if (*<b>Members?</b>*</td>* iswm %read) { 
      did -ra Runescape 153 $remove(%read,$chr(9),<b>Members?</b>,$chr(32),</td>) 
    } 
    if (*<b>Quest?</b>*</td>* iswm %read) { 
      did -ra Runescape 154 $remove(%read,$chr(9),<b>Quest?</b>,$chr(32),</td>) 
    } 
    if (*<b>Tradeable?</b>*</td>* iswm %read) { 
      did -ra Runescape 157 $remove(%read,$chr(9),<b>Tradeable?</b>,$chr(32),</td>) 
    } 
    if (*<b>Stackable?</b>* iswm %read) { 
      sockread %read 
      did -ra Runescape 159 $remove(%read,</td>,$chr(9),$chr(32)) 
    } 
    if (*<td colspan="3"> <b>Examine:</b>* iswm %read) { 
      sockread %read 
      did -ra Runescape 175 $remove(%read,</td>,$chr(9)) 
    } 
    if (*Category* iswm %read) { 
      sockread %read 
      sockread %read 
      sockread %read 
      did -ra Runescape 168 $remove(%read,$chr(9),</td>) 
      sockread %read 
      sockread %read 
      sockread %read 
      sockread %read 
      sockread %read 
      did -ra Runescape 170 $remove(%read,$chr(9),</td>) 
    } 
    if (*kg* iswm %read) { 
      did -ra Runescape 165 $remove(%read,$chr(32),$chr(9),</td>) 
    } 
    if (*%">High Alchemy</td>* iswm %read) { 
      sockread %read 
      sockread %read 
      did -ra Runescape 172 $+($bytes($remove(%read,$chr(9),$chr(32),gp),db),gp)
    } 
    if (*%">Low Alchemy</td>* iswm %read) { 
      sockread %read 
      sockread %read 
      did -ra Runescape 174 $+($bytes($remove(%read,$chr(9),$chr(32),gp),db),gp)
    } 
    if (*<td class="header" width="*"> Location</td>* iswm %read) { 
      sockread %read 
      sockread %read 
      did -ra Runescape 163 $remove(%read,$chr(9),</td>) 
    } 
    if (*<td class="header"> Notes</td>* iswm %read) { 
      did -r Runescape 161 
      sockread %read 
      sockread %read 
      var %p = 1 
      var %all = $remove(%read,$chr(9),</td>) 
      while (%p <= $gettok(%all,0,32)) { 
        $iif(%p >= 2,inc %p) 
        did -a Runescape 161 $gettok(%all,$+(%p,-,$calc(%p + 15)),32) $+ $crlf 
        inc %p 15 
      } 
    } 
    if (*<td class="header"> Uses</td>* iswm %read) { 
      did -r Runescape 178 
      sockread %read 
      sockread %read 
      var %q = 1 
      var %alll = $remove(%read,$chr(9),</td>) 
      while (%q <= $gettok(%alll,0,32)) { 
        $iif(%q >= 2,inc %q) 
        did -a Runescape 178 $gettok(%alll,$+(%q,-,$calc(%q + 15)),32) $+ $crlf 
        inc %q 15 
      } 
    } 
  } 
} 
dialog iteminfonotfound { 
  title "Item not found" 
  size -1 -1 72 32 
  option dbu 
  button "Ok", 1, 17 15 37 12, cancel 
  text "Item is not found", 2, 15 2 41 8 
} 
dialog noitemforitemlookup { 
  title "No item" 
  size -1 -1 80 32 
  option dbu 
  text "No item given to lookup for info", 1, 2 2 75 8 
  button "Ok", 2, 20 12 37 12, cancel 
}
alias download { 
  if ($hget(dialog, pic)) { .remove $hget(dialog, pic) | .hfree dialog }
  var %r $remove($1,http://),%y $ticks,%1 $gettok(%r,1,47),%o $pos(%r,/),%2 $mid(%r,%o,$calc(1+$pos(%r,/,$count(%r,/))-%o)),%u $remove(%r,%1,%2),%4 $iif($count(%u,.),$gettok(%u,$calc(1+$v1),46)),%3 $remove(%u,%4),%i %3 $+ %4 
  if (!%i) halt
  else { 
    sockopen dload. $+ %y %1 80 
    sockmark dload. $+ %y %1 %2 %3 %4 
  } 
} 
on *:sockopen:dload.*:{ 
  tokenize 32 $sock($sockname).mark 
  sockwrite $sockname $+(GET $2,$3,$4 $chr(32) HTTP/1.1,$lf,Host: $1,$lf,$lf) 
} 
on *:sockread:dload.*:{ 
  if (!$sockerr) { 
    var %a 1,%v $numtok($sock($sockname).mark,32) 
    while %a && %v > 2 { 
      sockread %a 
      if ($regex(%a,/Content\-Type: .*?\/([^\s;]+)/i)) var %t $iif($regml(1) != plain,$v1) 
      if ($regex(%a,/Content\-Length: (\d+)/i)) var %l $regml(1) 
    } 
    if %v > 2 { 
      sockmark $sockname $gettok($sock($sockname).mark,3,32) $+ %t %l 
      hadd -m dialog pic $gettok($sock($sockname).mark,1,32)
    } 
    tokenize 32 $sock($sockname).mark 
    while $sock($sockname).rq { 
      sockread &b 
      bwrite $1 -1 -1 &b 
    } 
    if ($lof($1) >= $2) { did -g Runescape 183 $+(",$mircdir,$gettok($sock($sockname).mark,1,32),") }
  } 
  else { halt }
  :error 
  if ($error) { did -g Runescape 183 $+(",$mircdir,witxp3.png,") | .reseterror | did -ra Runescape 182 Error while loading the picture }
}
alias downl { 
  var %r $remove($1,http://),%y $ticks,%1 $gettok(%r,1,47),%o $pos(%r,/),%2 $mid(%r,%o,$calc(1+$pos(%r,/,$count(%r,/))-%o)),%u $remove(%r,%1,%2),%4 $iif($count(%u,.),$gettok(%u,$calc(1+$v1),46)),%3 $remove(%u,%4),%i %3 $+ %4 
  if (!%i) halt 
  elseif ($exists(%i)) $iif($dialog(Runescape),echo -ta The dialog is already open,/dialog -mdro Runescape Runescape)
  else { 
    sockopen Dialogdload. $+ %y %1 80 
    sockmark Dialogdload. $+ %y %1 %2 %3 %4 
  } 
} 
on *:sockopen:Dialogdload.*:{ 
  tokenize 32 $sock($sockname).mark 
  sockwrite $sockname $+(GET $2,$3,$4 $chr(32) HTTP/1.1,$lf,Host: $1,$lf,$lf) 
} 
on *:sockread:Dialogdload.*:{ 
  if (!$sockerr) { 
    var %a 1,%v $numtok($sock($sockname).mark,32) 
    while %a && %v > 2 { 
      sockread %a 
      if ($regex(%a,/Content\-Type: .*?\/([^\s;]+)/i)) var %t $iif($regml(1) != plain,$v1) 
      if ($regex(%a,/Content\-Length: (\d+)/i)) var %l $regml(1) 
    } 
    if %v > 2 { 
      sockmark $sockname $gettok($sock($sockname).mark,3,32) $+ %t %l 
    } 
    tokenize 32 $sock($sockname).mark 
    while $sock($sockname).rq { 
      sockread &b 
      bwrite $1 -1 -1 &b 
    } 
    if ($lof($1) >= $2) {
      $iif($dialog(Runescape),echo -ta The dialog is already open,/dialog -mdro Runescape Runescape)
    } 
    else halt
  }
}
on *:DIALOG:Runescape:close:*:{ 
  if ($hget(dialog, pic)) && ($hget(dialog, pic) != witxp3.png) { .remove $hget(dialog, pic) | .hfree dialog } 
}
on *:dialog:Runescape:sclick:1:{ 
  if ($hget(dialog, pic)) && ($hget(dialog, pic) != witxp3.png) { .remove $hget(dialog, pic) | .hfree dialog }
}
on *:dialog:Runescape:sclick:47:{ 
  if ($hget(dialog, pic)) && ($hget(dialog, pic) != witxp3.png) { .remove $hget(dialog, pic) | .hfree dialog }
}
on *:dialog:Runescape:sclick:103:{ 
  if ($hget(dialog, pic)) && ($hget(dialog, pic) != witxp3.png) { .remove $hget(dialog, pic) | .hfree dialog }
}
on *:dialog:Runescape:sclick:110:{ 
  if ($hget(dialog, pic)) && ($hget(dialog, pic) != witxp3.png) { .remove $hget(dialog, pic) | .hfree dialog }
}
on *:dialog:Runescape:sclick:136:{ 
  if ($hget(dialog, pic)) && ($hget(dialog, pic) != witxp3.png) { .remove $hget(dialog, pic) | .hfree dialog }
}
on *:dialog:Runescape:sclick:215:{
  if (!$did(214)) { dialog -mdro nomonster nomonster | halt }
  did -r Runescape 190
  var %r = 1
  while ($sock(Dialogmonster. $+ %r)) { inc %r } 
  sockopen $+(Dialogmonster.,%r) tip.it 80 
  sockmark $+(Dialogmonster.,%r) $replace($did(214),$chr(32),+) 
} 
on *:SOCKOPEN:Dialogmonster.*:{ 
  sockwrite -nt $sockname GET $+(/runescape/index.php?rs2monster=&orderby=0&keywords=,$sock($sockname).mark,&levels=All&race=0) HTTP/1.1 
  sockwrite -nt $sockname Host: tip.it 
  sockwrite -nt $sockname $crlf 
} 
on *:SOCKREAD:Dialogmonster.*:{
  if ($sockerr) { /dialog -mdro sockerr sockerr | sockclose $sockname | halt } 
  else { 
    var %read 
    sockread %read 
    if (*<td><a href="?rs2monster_id=*">*</a></td>* iswm %read) {
      var %x = 1
      while ($sock(Dialogmonster2. $+ %x)) { inc %x } 
      sockopen $+(Dialogmonster2.,%x) tip.it 80
      sockmark $+(Dialogmonster2.,%x) $remove($gettok(%read,2,34),?rs2monster_id=)
      sockclose $sockname
    }
    if (*</html>* iswm %read) { dialog -mdro nomonsterfound nomonsterfound | sockclose $sockname }
  }
}
on *:SOCKOPEN:Dialogmonster2.*:{ 
  sockwrite -nt $sockname GET $+(/runescape/index.php?rs2monster_id=,$sock($sockname).mark) HTTP/1.1 
  sockwrite -nt $sockname Host: tip.it 
  sockwrite -nt $sockname $crlf 
}
on *:SOCKREAD:Dialogmonster2.*:{
  if ($sockerr) { /dialog -mdro sockerr sockerr | sockclose $sockname | halt } 
  else { 
    var %read 
    sockread %read 
    if (*<td colspan="*" rowspan="*" align="center" valign="*" bgcolor="#*"><img border="*" src="*" alt="*" /></td>* iswm %read) && (!%kkfdnk) {
      var %kkfdnk = X
      monsterpic $+(http://www.tip.it/runescape/,$gettok(%read,14,34))
    }
    if (*<td width="*%" class="header" align="left"><b>Name:</b>* iswm %read) {
      sockread %read
      did -ra Runescape 196 $remove($gettok(%read,2,62),</td)
    }
    if (*<td width="*%" class="header" align="left"><b>Race:</b></td>* iswm %read) {
      sockread %read
      did -ra Runescape 197 $remove($gettok(%read,2,62),</td)
    }
    if (*class="header" align="left"><b>Level:</b></td>* iswm %read) {
      sockread %read
      did -ra Runescape 198 $remove($gettok(%read,2,62),</td)
    }
    if (*<td width="*%" class="header" align="left"><b>Hits:</b></td>* iswm %read) {
      sockread %read
      did -ra Runescape 199 $remove($gettok(%read,2,62),</td)
    }
    if (*<td width="*%"><b>Aggressive?</b>&nbsp;&nbsp;*</td>* iswm %read) {
      did -ra Runescape 201 $remove($gettok(%read,3,59),</td>)
    }  
    if (*<td width="*%"><b>Retreats?</b>&nbsp;&nbsp;*</td>* iswm %read) {
      did -ra Runescape 202 $remove($gettok(%read,3,59),</td>)
    }  
    if (*<td width="*%"><b>Quest?</b>&nbsp;&nbsp;*</td>* iswm %read) {
      did -ra Runescape 203 $remove($gettok(%read,3,59),</td>)
    }  
    if (*<td width="*%"><b>Members?</b>&nbsp;&nbsp;*</td>* iswm %read) {
      did -ra Runescape 204 $remove($gettok(%read,3,59),</td>)
    }  
    if (*<td width="*%"><b>Poisonous?</b>&nbsp;&nbsp;*</td>* iswm %read) {
      did -ra Runescape 205 $remove($gettok(%read,3,59),</td>)
    }  
    if (*<td valign="top" class="header" align="left"><b>*drops:</b></td>* iswm %read) {
      sockread %read
      var %gold = $iif($remove($gettok(%read,6,60),/b>) == -,- $+ $chr(44),$v1)
      var %100 = $iif($remove($gettok(%read,10,60),/b>) == -,- $+ $chr(44),$v1)
      sockread %read
      var %weapons = $iif($remove($gettok(%read,3,60),/b>) == -,- $+ $chr(44),$v1)
      sockread %read
      var %armour = $iif($remove($gettok(%read,3,60),/b>) == -,- $+ $chr(44),$v1)
      sockread %read
      var %runes = $iif($remove($gettok(%read,3,60),/b>) == -,- $+ $chr(44),$v1)
      sockread %read
      var %mic = $iif($remove($gettok(%read,3,60),/b>) == -,- $+ $chr(44),$v1)
      sockread %read
      if (*<li><b>seeds:</b>* iswm %read) {
        var %seeds = $iif($remove($gettok(%read,3,60),/b>) == -,- $+ $chr(44),$v1))
      }
      var %a = 1
      var %b = 1
      var %c = 1
      var %d = 1
      var %e = 1
      var %f = 1
      did -ra Runescape 210 ---Gold--- $+ $crlf
      while (%a <= $gettok(%gold,0,44)) {
        did -a Runescape 210 $gettok(%gold,%a,44) $+ $crlf
        inc %a
      }
      did -a Runescape 210 ---100 $+ $chr(37) $+ --- $+ $crlf
      while (%b <= $gettok(%100,0,44)) {
        did -a Runescape 210 $gettok(%100,%b,44) $+ $crlf
        inc %b
      }
      did -a Runescape 210 ---Weapons--- $+ $crlf
      while (%c <= $gettok(%weapons,0,44)) {
        did -a Runescape 210 $gettok(%weapons,%c,44) $+ $crlf
        inc %c
      }   
      did -a Runescape 210 ---Armour--- $+ $crlf
      while (%d <= $gettok(%armour,0,44)) {
        did -a Runescape 210 $gettok(%armour,%d,44) $+ $crlf
        inc %d
      }
      did -a Runescape 210 ---Runes/Arrows--- $+ $crlf
      while (%e <= $gettok(%runes,0,44)) {
        did -a Runescape 210 $gettok(%runes,%e,44) $+ $crlf
        inc %e
      }
      did -a Runescape 210 ---Misc--- $+ $crlf
      while (%f <= $gettok(%mic,0,44)) {
        did -a Runescape 210 $gettok(%mic,%f,44) $+ $crlf
        inc %f
      }
      if (%seeds) {
        var %x = 1
        did -a Runescape 210 ---Seeds--- $+ $crlf
        while (%x <= $gettok(%seeds,0,44)) {
          did -a Runescape 210 $gettok(%seeds,%x,44)
          inc %x
        }
      }
    }
  }
}
dialog nomonsterfound {
  title "No monster"
  size -1 -1 67 36
  option dbu
  text "No monster found", 1, 10 3 43 8
  button "Ok", 2, 12 16 37 12, cancel
}
dialog nomonster {
  title "No monster"
  size -1 -1 93 41
  option dbu
  text "No monster given to search for", 1, 8 3 75 8
  button "Ok", 2, 24 17 37 12, cancel
}
alias Monsterpic { 
  if ($hget(dialog, pic)) { .remove $hget(dialog, pic) | .hfree dialog }
  var %r $remove($1,http://),%y $ticks,%1 $gettok(%r,1,47),%o $pos(%r,/),%2 $mid(%r,%o,$calc(1+$pos(%r,/,$count(%r,/))-%o)),%u $remove(%r,%1,%2),%4 $iif($count(%u,.),$gettok(%u,$calc(1+$v1),46)),%3 $remove(%u,%4),%i %3 $+ %4 
  if (!%i) halt
  else { 
    sockopen Monsterpic. $+ %y %1 80 
    sockmark Monsterpic. $+ %y %1 %2 %3 %4 
  } 
} 
on *:sockopen:Monsterpic.*:{ 
  tokenize 32 $sock($sockname).mark 
  sockwrite $sockname $+(GET $2,$3,$4 $chr(32) HTTP/1.1,$lf,Host: $1,$lf,$lf) 
} 
on *:sockread:Monsterpic.*:{ 
  if (!$sockerr) { 
    var %a 1,%v $numtok($sock($sockname).mark,32) 
    while %a && %v > 2 { 
      sockread %a 
      if ($regex(%a,/Content\-Type: .*?\/([^\s;]+)/i)) var %t $iif($regml(1) != plain,$v1) 
      if ($regex(%a,/Content\-Length: (\d+)/i)) var %l $regml(1) 
    } 
    if %v > 2 { 
      sockmark $sockname $gettok($sock($sockname).mark,3,32) $+ %t %l 
      hadd -m dialog pic $gettok($sock($sockname).mark,1,32)
    } 
    tokenize 32 $sock($sockname).mark 
    while $sock($sockname).rq { 
      sockread &b 
      bwrite $1 -1 -1 &b 
    } 
    if ($lof($1) >= $2) { did -g Runescape 209 $+(",$mircdir,$gettok($sock($sockname).mark,1,32),") }
  } 
  else { halt }
  :error 
  if ($error) { did -g Runescape 209 $+(",$mircdir,witxp3.png,") | .reseterror | did -ra Runescape 190 Error while loading the picture }
}
on *:dialog:Runescape:sclick:218:{
  if (!$did(212)) { /dialog -mdro trackname trackname | halt }
  if (!$did(217)) { /dialog -mdro trackskill trackskill | halt }
  if (!$trackskill($did(217))) { /dialog -mdro trackwrong trackwrong | halt }
  hadd -m dialogt time $ctime
  var %x = 1
  while ($sock(Dialogtrack. $+ %x)) { inc %x } 
  sockopen $+(Dialogtrack.,%x) hiscore.runescape.com 80
  sockmark $+(Dialogtrack.,%x) $+($did(212),~,$trackskill($did(217)),~,Start)
}
on *:SOCKOPEN:Dialogtrack.*:{ 
  sockwrite -nt $sockname GET $+(/index_lite.ws?player=,$gettok($sock($sockname).mark,1,126)) HTTP/1.1 
  sockwrite -nt $sockname Host: hiscore.runescape.com
  sockwrite -nt $sockname $crlf 
}
on *:SOCKREAD:Dialogtrack.*:{
  if ($sockerr) { /dialog -mdro sockerr sockerr | sockclose $sockname | halt } 
  else { 
    hadd -m Dialogt Track $sock($sockname).mark
    var %read, %a, %id = $gettok($sock($sockname).mark,2,126), %start = $gettok($sock($sockname).mark,3,126)
    :start
    sockread %read 
    if (*,*,* iswm %read) {
      inc %a
      if ($trackid(%a) == %id) && (%start == Start) { 
        did -ra Runescape 223 $bytes($gettok(%read,3,44),db)
        did -ra Runescape 224 $gettok(%read,2,44)
        did -ra Runescape 225 $bytes($gettok(%read,1,44),db)
        hadd -m Dialogt Stuff $+($gettok(%read,3,44),~,$gettok(%read,2,44),~,$gettok(%read,1,44))
        sockclose $sockname
      }
      if ($trackid(%a) == %id) && (%start == End) {
        did -ra Runescape 235 $calc($gettok(%read,3,44) - $gettok($hget(Dialogt, Stuff),1,126))
        did -ra Runescape 236 $calc($gettok(%read,2,44) - $gettok($hget(Dialogt, Stuff),2,126))
        did -ra Runescape 237 $calc($gettok(%read,1,44) - $gettok($hget(Dialogt, Stuff),3,126))
        did -ra Runescape 229 $gettok(%read,3,44)
        did -ra Runescape 230 $gettok(%read,2,44)
        did -ra Runescape 231 $gettok(%read,1,44)
        did -ra Runescape 239 $bytes($round($calc((3600/($ctime - $hget(dialogt, time)))*($gettok(%read,3,44) - $gettok($hget(dialogt, stuff),1,126))),0),bd)
        hfree Dialogt
      }
      goto start
    }
  }
}
dialog Tracknot {
  title "Not tracking"
  size -1 -1 123 38
  option dbu
  text "You are not tracking xp/levels at the moment", 1, 7 3 108 8
  button "Ok", 2, 45 16 37 12, cancel
}
on *:dialog:Runescape:sclick:219:{
  if (!$hget(Dialogt, Stuff)) { /dialog -mdro Tracknot Tracknot | halt }
  var %x = 1
  while ($sock(Dialogtrack. $+ %x)) { inc %x } 
  sockopen $+(Dialogtrack.,%x) hiscore.runescape.com 80
  sockmark $+(Dialogtrack.,%x) $replace($hget(Dialog, Track),Start,End)
}
alias trackskill {
  if ($regex($1,/^att(ack|k)?/Si)) { return Attack }
  elseif ($regex($1,/^over(all?)?/Si)) { return Overall }
  elseif ($regex($1,/^str(ength)?/Si)) { return Strength }
  elseif ($regex($1,/^def(ence)?/Si)) { return Defence }
  elseif ($regex($1,/^(hit(s|points?)?|hp)/Si)) { Return Hitpoints }
  elseif ($regex($1,/^ranged?/Si)) { return Ranged } 
  elseif ($regex($1,/^pray(er)?/Si)) { return Prayer }
  elseif ($regex($1,/^(mage|magi[ck])/Si)) { return Magic }
  elseif ($regex($1,/^cook(ing)?/Si)) { return Cooking }
  elseif ($regex($1,/^w(ood)?c(utting)?/Si)) { return Woodcutting }
  elseif ($regex($1,/^fletch(ing)?/Si)) { return Fletching }
  elseif ($regex($1,/^fish(ing)?/Si)) { return Fishing }
  elseif ($regex($1,/^f(ire)?m(aking)?/Si)) { return Firemaking }
  elseif ($regex($1,/^craft(ing)?/Si)) { return Crafting }
  elseif ($regex($1,/^smith(ing)?/Si)) { return Smithing }
  elseif ($regex($1,/^min(i(ng)?)?/Si)) { return Mining }
  elseif ($regex($1,/^herb(lore)?/Si)) { return Herblore }
  elseif ($regex($1,/^agil(ity)?/Si)) { return Agility }
  elseif ($regex($1,/^thiev(ing)?/Si)) { return Thieving }
  elseif ($regex($1,/^slay(er)?/Si)) { return Slayer }
  elseif ($regex($1,/^farm(ing)?/Si)) { return Farming }
  elseif ($regex($1,/^r(une)?c(raft)?(ing)?/Si)) { return Runecraft }
  elseif ($regex($1,/^hunt(er)?/Si)) { return Hunter }
  elseif ($regex($1,/^(cons?(truc)?(tion)?|poh)/Si)) { Return Construction }
  elseif ($regex($1,/^summ?(oning)?/Si)) { return Summoning }
}
alias trackid {
  if ($1 == 1) { return Overall }
  if ($1 == 2) { return Attack }
  if ($1 == 3) { return Defence }
  if ($1 == 4) { return Strength }
  if ($1 == 5) { return Hitpoints }
  if ($1 == 6) { return Ranged }
  if ($1 == 7) { return Prayer }
  if ($1 == 8) { return Magic }
  if ($1 == 9) { return Cooking }
  if ($1 == 10) { return Woodcutting }
  if ($1 == 11) { return Fletching }
  if ($1 == 12) { return Fishing }
  if ($1 == 13) { return Firemaking }
  if ($1 == 14) { return Crafting }
  if ($1 == 15) { return Smithing }
  if ($1 == 16) { return Mining }
  if ($1 == 17) { return Herblore }
  if ($1 == 18) { return Agility }
  if ($1 == 19) { return Thieving }
  if ($1 == 20) { return Slayer }
  if ($1 == 21) { return Farming }
  if ($1 == 22) { return Runecraft }
  if ($1 == 23) { return Hunter }
  if ($1 == 24) { return Construction }
  if ($1 == 25) { return Summoning }
}
dialog trackwrong {
  title "Wrong skill"
  size -1 -1 115 44
  option dbu
  text "The skill is not a known runescape skill", 1, 10 5 91 8
  button "Ok", 2, 36 19 37 12, cancel
}
dialog trackname {
  title "No name"
  size -1 -1 77 41
  option dbu
  text "No name is given", 1, 18 4 41 8
  button "Ok", 2, 20 17 37 12, cancel
}
dialog trackskill {
  title "No name"
  size -1 -1 77 41
  option dbu
  text "No skill is given", 1, 18 4 36 8
  button "Ok", 2, 20 17 37 12, cancel
}