RuneScape Slayer Dialog

By Dani_l11 on Jan 27, 2011

Very usefull dialog if you like to train slayer.

To load the script, open the pastebin link, load it into an EMPTY remote file and do right mouseclick -> SlayerDialog or type /SD in the chat.

This script will download necessary files like leveltable, droptables and monsters that can be assigned. If you don't those downloads, don't load the script.

Features:
-Slayer and tracker information
-Estimated time left till next level AND xp/hour based on tracker gains
-Options to log tasks and drops
-Easy to calculate prices of drogs
-More coming!

Its still in BETA! So there might be some bugs, if you find any, pm me (or memo) on swiftIRC, nick is Dani_l11, or post here.

Some buttons are disabled. I'll make those in the near future.

Includes an autoupdater!

Screens:
Image
Image
Image
Image
Image

;checkscript;
alias -l sdversion return $readini($dd(settings.ini),version,cversion)
dialog Slayerdia {
  title "SlayerDialog by Dani l11"
  size -1 -1 221 176
  option dbu
  tab "Tasks", 1, 3 0 216 172
  button "Add new task", 4, 8 31 37 12, tab 1
  button "Change current task", 5, 49 31 65 12, tab 1
  text "Current task:", 6, 9 20 34 8, tab 1
  text "none", 8, 44 20 62 8, tab 1
  text "Monsters left (based on hiscore):", 9, 107 20 82 8, tab 1
  text "N/A", 10, 190 20 28 8, tab 1
  list 11, 11 53 192 76, tab 1 size vsbar
  button "General task information", 13, 72 149 77 13, disable tab 1
  button "Information about task", 14, 123 31 83 13, disable tab 1
  box "Task list", 12, 7 44 197 91, tab 1
  text "Total monsters killed: 0", 35, 12 138 81 8, tab 1
  text "Total - killed: none", 51, 101 137 105 8, tab 1
  button "Load task list", 21, 11 149 50 12, tab 1
  button "Delete all tasks", 86, 158 149 55 12, tab 1
  tab "Special drops", 3
  box "Special drop list (of all tasks)", 44, 6 15 209 65, tab 3
  list 46, 9 23 203 50, tab 3 size vsbar
  text "Price:", 47, 8 82 89 8, tab 3
  text "*price* (each)", 99, -113 34 49 8, tab 3
  text "", 50, 98 82 49 8, tab 3
  button "Calculate price of item", 32, 149 81 61 11, tab 3
  button "Upload drop", 55, 8 148 84 12, disable tab 3
  button "Info about uploading drop chances", 57, 100 150 89 11, disable tab 3
  button "Calculate price of all drops", 2, 146 93 68 12, tab 3
  button "Add drop", 27, 100 136 37 12, tab 3
  combo 36, 9 135 86 50, tab 3 size drop
  text "Price of all drops:", 37, 8 94 82 8, tab 3
  text "price", 38, 93 94 52 8, tab 3
  button "Delete drop", 39, 141 136 37 12, tab 3
  text "Runescript Parser - www.Rscript.org", 31, 127 163 91 8, disable tab 3
  tab "Stats", 45
  text "Slayer level:", 49, 8 43 33 8, tab 45
  edit "", 61, 13 17 50 10, tab 45 limit 12
  button "Look up", 60, 79 16 40 11, tab 45
  text "", 62, 47 43 39 8, tab 45
  text "Rank:", 63, 8 53 25 8, tab 45
  text "", 64, 47 53 43 8, tab 45
  text "Experience:", 65, 8 63 34 8, tab 45
  text "", 66, 47 63 39 8, tab 45
  text "Exp till ?:", 67, 8 73 34 8, tab 45
  box "Slayer info", 58, 5 29 88 56, tab 45
  box "Tracker info ", 59, 5 86 120 74, tab 45
  text "Runescript tracker - rscript.org", 69, 44 146 79 8, disable tab 45
  box "Avg xp/hour", 77, 96 29 121 57, tab 45
  combo 70, 84 96 37 50, tab 45 size drop
  text "Time period:", 71, 9 97 46 8, tab 45
  text "Xp gained:", 72, 9 113 41 8, tab 45
  text "", 73, 59 113 59 8, tab 45
  text "Levels gained:", 74, 9 134 40 8, tab 45
  text "Time till ?:", 81, 98 71 29 8, tab 45
  text "Time period:", 78, 98 43 36 8, tab 45
  combo 76, 170 42 40 50, disable tab 45 size drop
  text "Xp gained (per hour):", 79, 98 57 54 8, tab 45
  text "", 82, 131 71 81 8, tab 45
  text "", 80, 156 57 56 8, tab 45
  text "", 68, 47 73 43 8, tab 45
  text "", 75, 59 133 47 8, tab 45
  edit "", 83, 142 43 22 10, disable tab 45 limit 2
  edit "", 84, 59 96 22 10, tab 45 limit 2
  button "Set as defname", 20, 140 17 45 11, tab 45
  box "Task information", 40, 128 86 89 77, tab 45
  text "Xp you will receive:", 41, 132 98 48 8, tab 45
  text "", 42, 187 98 28 8, tab 45 nowrap
  text "", 48, 187 108 28 8, tab 45 nowrap
  text "Tasks till level:", 52, 132 118 37 8, tab 45
  text "", 53, 187 118 28 8, tab 45 nowrap
  text "Please select the monster you are going to kill:", 87, 132 130 75 15, tab 45
  combo 88, 131 147 81 35, tab 45 size drop
  text "Xp till level after task:", 43, 132 108 54 8, tab 45
  tab "Settings", 7
  check "Check for updates on start (might slow down startup)", 15, 9 125 139 10, tab 7
  button "Check for updates", 16, 10 145 76 12, tab 7
  button "Set defname", 17, 8 21 37 12, tab 7
  edit "Default name", 18, 49 22 50 10, tab 7 limit 12
  check "Start dialog when mIRC is started", 23, 9 45 93 10, tab 7
  check "Load task list on startup (might slow down startup)", 24, 9 65 155 10, tab 7
  check "Load drop list on startup (might slow down startup)", 25, 9 55 150 10, tab 7
  check "Automatically check if slayer task changed", 26, 9 115 110 10, tab 7
  check "Load stats page on startup (might slow down startup)", 28, 9 75 160 10, tab 7
  check "Always on top", 29, 9 95 50 10, tab 7
  check "Automatically download new version", 30, 9 135 169 10, tab 7
  check "Check adventures' log on startup (might slow down startup)", 56, 9 85 168 10, tab 7
  check "Automatically capitalize first letter of name", 85, 9 105 115 10, tab 7
  text "Current task streak:", 33, 9 35 50 8, tab 7
  edit "", 34, 60 34 37 10, tab 7 limit 4
  text "Script by Dani l11", 19, 5 163 46 8
  link "You can post suggestions here", 22, 52 163 75 8
}
;tab "Drops", 2
;list 36, 11 57 172 79, tab 2 size vsbar
; box "Drop list of task *task* (if there is)", 37, 8 48 184 91, tab 2
; check "List of all drops (if not selected it shows drops of selected task)", 38, 8 145 166 10, tab 2
; button "Calculate", 39, 102 17 35 10, tab 2
;text "Price of *drop*:", 40, 6 19 52 8, tab 2
;text "*price*", 41, 63 19 34 8, tab 2
;text "Total amount of *drop* received:", 27, 4 31 84 8, tab 2
; text "*amount*", 43, 103 31 32 7, tab 2
on *:dialog:slayerdia:close:*:{
  closedia
}
alias -l loadtasks {
  did -r slayerdia 11
  var %x = 1
  while ($read($dd(tasks.txt),%x)) {
    did -i slayerdia 11 1 $regsubex($replace($v1,$chr(32) $+ ~,: $+ $chr(32),_,$chr(32)),/#(\d\d?\d?\d?)/,$chr(35) $+ $calc(\1 + $readini($dd(settings.ini),settings,firsttask)))
    inc %x
  }
  did -ra slayerdia 8 $iif($readini($dd(settings.ini),task,currenttask),$gettok($replace($readini($dd(settings.ini),task,currenttask),_,$chr(32)),1,126) ( $+ $gettok($replace($remove($readini($dd(settings.ini),task,currenttask),$chr(32)),_,$chr(32)),2,126) $+ ),none)
  did -ra slayerdia 51 $iif($readini($dd(settings.ini),task,currenttask),Total $replace($remove($gettok($readini($dd(settings.ini),task,currenttask),1,126),$chr(32)),_,$chr(32)) killed: $readini($dd(settings.ini),amount,$gettok($readini($dd(settings.ini),task,currenttask),1,126)),Total - killed: none)
  did -ra slayerdia 35 Total monsters killed: $iif($readini($dd(settings.ini),amount,all),$v1,0)
  if ($readini($dd(settings.ini),task,currenttask)) loadmdrops
}
alias -l closedia {
  if ($dialog(slayadd)) dialog -x slayadd slayadd
  sockclose slayerd.*
  sockclose sdtracker*
}
alias slayerd slayd
alias slayerdialog slayd
alias slaydialog slayd
alias sd slayd
alias sdialog slayd
alias slayerlog slayd
alias slayd {
  if ($dialog(slayerdia)) { dialog -x slayerdia slayerdia | closedia }
  dialog -m $+ $iif($readini($dd(settings.ini),settings,ontop),n,d) slayerdia slayerdia
}
on *:start:{
  if ($readini($dd(settings.ini),settings,autostart)) slayd
}
on *:SOCKOPEN:slayerd.*:{
  .sockwrite -nt $sockname GET /index_lite.ws?player= $+ $gettok($sockname,2,46) HTTP/1.1
  .sockwrite -nt $sockname Host: hiscore.runescape.com
  .sockwrite -nt $sockname $crlf
}
on *:SOCKREAD:slayerd.*:{
  if (!$dialog(slayerdia)) { sockclose $sockname
  halt }
  .var %sockreader
  .sockread %sockreader
  if ($regex(%sockreader,/<title>404 - Page not found<\/title>/)) {
    inc %sdcounter
    if (%sdcounter == 2) slaydcheck
    echo -a $sinfo Hiscore page not found.
    .sockclose $sockname
  }
  elseif (*,*,* iswm %sockreader) {
    .var %x = 1
    while (%x <= 19) {
      .sockread %sockreader | .inc %x
    }
    .var %lvl = $gettok(%sockreader,2,44), %exp = $gettok(%sockreader,3,44), %rank = $gettok(%sockreader,1,44)
    if (%lvl == 99) {
      var %x = 99
      while (%x <= 126) {
        if (%exp isnum $lvlx(%x) $+ - $+ $lvlx($calc(%x + 1))) {
          var %lvl = %x
          var %x = 127
        }
        inc %x
      }
    }
    ;stat update, statupdate, stat socket, statssocket
    .did -ra Slayerdia 62 $iif(%lvl == -1,Not found.,$v1)
    .did -ra Slayerdia 64 $iif(%rank == -1,Not found.,$bytes($v1,db))
    .did -ra slayerdia 66 $iif(%exp == -1,Not found.,$bytes($v1,db))
    .did -ra Slayerdia 68 $iif(%exp == -1,Not found.,$bytes($calc($lvlx($calc(%lvl +1)) - %exp),db))
    .did -ra slayerdia 81 Time till $iif(lvl == -1,?,$calc(%lvl +1)) $+ :
    .did -ra Slayerdia 67 Xp till $iif(lvl == -1,?,$calc(%lvl +1)) $+ :
    did -ar slayerdia 58 Slayer info - $gettok($sockname,2,46)
    if ($did(slayerdia,68) != not found.) && ($did(slayerdia,42)) {
      did -ra slayerdia 48 $bytes($calc($remove($did(slayerdia,68) - $did(slayerdia,42),$chr(44))),bd)
      did -ra slayerdia 53 $bytes($ceil($calc($remove($did(slayerdia,68) / $did(slayerdia,42),$chr(44)))),bd)
    }
    inc %sdcounter
    if (%sdcounter == 2) slaydcheck
    .sockclose $sockname
  }
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
alias -l dd return slayerdialog\ $+ $1-
on *:dialog:slayerdia:init:*:{
  if (!$exists(slayerdialog)) mkdir slayerdialog
  if (!$readini($dd(settings.ini),settings,firsttime)) {
    writeini $dd(settings.ini) settings firsttime $fulldate
    writeini $dd(settings.ini) settings autostart 1
    writeini $dd(settings.ini) settings autoupdate 1
    writeini $dd(settings.ini) settings autodrop 1
    writeini $dd(settings.ini) settings autotask 1
    writeini $dd(settings.ini) settings autotracker 1
    writeini $dd(settings.ini) settings autoalog 1
    writeini $dd(settings.ini) settings autodownload 1
    writeini $dd(settings.ini) settings autochange 1
    writeini $dd(settings.ini) settings ontop 0
    writeini $dd(settings.ini) settings upper 1
    echo -a $sinfo This seems to be the first time you use this dialog.
    echo -a $sinfo The script is now setting all the default settings, and downloading all necessary files. This can take a minute.
    echo -a $sinfo If you have any questions please post a reply at the forum.
    set -u120 %firsttime on
    var %z = on
  }
  if (%z == on) writeini $dd(settings.ini) version updated ON
  if (!$readini($dd(levels.ini),xp,126)) makelvls
  ;if (slayerdialog\Slayerdialog !isin $script) {
  ;.copy -o $remove($script,$mircdir) slayerdialog\ $+ SlayerDialog $+ . $+ $gettok($script,-1,46)
  ; .load -rs slayerdialog\ $+ SlayerDialog $+ . $+ $gettok($script,-1,46)
  ;.timer 1 3 sd $(|) .remove $script
  ;.unload -rs $script
  ; halt
  ; }
  if (!$len($readini($dd(settings.ini),settings,firsttask))) {
  writeini $dd(settings.ini) settings firsttask 0 }
  did -ra slayerdia 34 $calc($readini($dd(settings.ini),settings,firsttask) + 1 + $lines(tasks.txt))
  ;initsock
  if (205 != $lines($dd(mlist.ini))) && (!$sock(downloadmon.mlist)) sockopen downloadmon.mlist www.stirkbin.com 80
  if (!$readini($dd(dlist.ini),slaymon,pyrefiend)) && (!$sock(downloadmon.dlist)) sockopen downloadmon.dlist www.stirkbin.com 80
  if (261 != $lines($dd(mlist.ini))) && (!$sock(downloadmon.hplist)) sockopen downloadmon.hplist www.stirkbin.com 80
  if ($readini($dd(settings.ini),settings,autostart)) { did -c slayerdia 23 }
  if ($readini($dd(settings.ini),settings,autoupdate)) { did -c slayerdia 15
  if (!%z) autocheck }
  if ($readini($dd(settings.ini),settings,autodrop)) { did -c slayerdia 25
  loaddrops all }
  if ($readini($dd(settings.ini),settings,autotask)) { did -c slayerdia 24
  did -b slayerdia 21 }
  if ($readini($dd(settings.ini),settings,autoalog)) { did -c slayerdia 56 }
  if ($readini($dd(settings.ini),settings,autodownload)) { did -c slayerdia 30 }
  if ($readini($dd(settings.ini),settings,ontop)) { did -c slayerdia 29 }
  if ($readini($dd(settings.ini),settings,autochange)) { did -c slayerdia 26 }
  if ($readini($dd(settings.ini),settings,upper)) { did -c slayerdia 85 }
  if ($readini($dd(settings.ini),settings,defaultname)) { did -ar slayerdia 18 $readini($dd(settings.ini),settings,defaultname) | did -ar slayerdia 61 $readini($dd(settings.ini),settings,defaultname) }
  did -a slayerdia 76 hour
  did -a slayerdia 76 day
  did -a slayerdia 76 week
  did -c slayerdia 76 1
  did -a slayerdia 70 hour
  did -a slayerdia 70 day
  did -a slayerdia 70 week
  did -c slayerdia 70 1
  if ($readini($dd(lastsave.ini),tinfo,time1)) {
    var %ti = $readini($dd(lastsave.ini),tinfo,time1)
    if (%ti == hour) var %x = 1
    if (%ti == day) var %x = 2
    if (%ti == week) var %x = 3
    did -c slayerdia 70 %x
    did -c slayerdia 76 %x
  }
  if ($currentmon) {
    var %x = 1
    while ($ini($dd(hplist.ini),$currentmon,%x)) {
      var %arg = $ini($dd(hplist.ini),$currentmon,%x)
      did -a slayerdia 88 %arg ( $+ $readini($dd(hplist.ini),$currentmon,%arg) $+ )
      inc %X
    }
    did -c slayerdia 88 1
    did -a slayerdia 42 $bytes($calc($regsubex($did(88).text,/\D/g,) * $currentam),bd)
  }
  did -ra slayerdia 35 Total monsters killed: $iif($readini($dd(settings.ini),amount,all),$v1,0)
  if ($readini($dd(lastsave.ini),xpinfo,time1)) {
    var %ti = $readini($dd(lastsave.ini),xpinfo,time1)
    if (%ti == hour) did -c slayerdia 76 1
    if (%ti == day) did -c slayerdia 76 2
    if (%ti == week) did -c slayerdia 76 3
  }
  did -ra slayerdia 8 $iif($readini($dd(settings.ini),task,currenttask),$gettok($replace($readini($dd(settings.ini),task,currenttask),_,$chr(32)),1,126) ( $+ $gettok($replace($remove($readini($dd(settings.ini),task,currenttask),$chr(32)),_,$chr(32)),2,126) $+ ),none)
  did -ra slayerdia 51 $iif($readini($dd(settings.ini),task,currenttask),Total $replace($remove($gettok($readini($dd(settings.ini),task,currenttask),1,126),$chr(32)),_,$chr(32)) killed: $readini($dd(settings.ini),amount,$gettok($readini($dd(settings.ini),task,currenttask),1,126)),Total - killed: none)
  did -ra slayerdia 35 Total monsters killed: $iif($readini($dd(settings.ini),amount,all),$v1,0)
  if ($readini($dd(settings.ini),task,currenttask)) && ($readini($dd(settings.ini),settings,autotask)) loadmdrops
  did -a slayerdia 83 1
  did -a slayerdia 84 1
  if ($readini($dd(lastsave.ini),tinfo,time2)) {
    did -ar slayerdia 83 $readini($dd(lastsave.ini),tinfo,time2)
    did -ar slayerdia 84 $readini($dd(lastsave.ini),tinfo,time2)
  }
  if ($readini($dd(settings.ini),settings,autotask)) loadtasks
  if ($readini($dd(settings.ini),settings,defaultname)) did -a slayerdia 61 $iif($readini($dd(lastsave.ini),lookname,tpage),$v1,$readini($dd(settings.ini),settings,defaultname))
  if ($readini($dd(settings.ini),settings,autotracker)) { did -c slayerdia 28
    var %rsnz = $replace($readini($dd(settings.ini),settings,defaultname),$chr(32),_)
    if ($remove(%rsnz,_,-,$chr(32)) !isalnum) || ($len(%rsnz) > 12) || (!%rsnz) { remini $dd(settings.ini) settings defaultname
    halt }
    ;initsock
    if (%rsnz) {
      sockopen sdtracker1. $+ %rsnz rscript.org 80
      sockopen slayerd. $+ %rsnz hiscore.runescape.com 80
    }
  }
  if (%firsttime) { unset %firsttime | sd | set %z on | halt }
  if (%z == on) { unset %z }
  if (!%wvar) echo -a $sinfo Dialog succesfully initialized. Thanks for using the SlayerDialog by Dani l11.
  set -u120 %wvar aan
  ;endinit
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
alias -l sinfo return 4[SlayerDialog] $+ $color(info)
on *:dialog:slayerdia:edit:*:{
  if ($did == 34) {
    if ($did(34) !isnum) { did -ra slayerdia 34 $iif($left($did(34),-1),$v1,1) | halt }
    writeini $dd(settings.ini) settings firsttask $calc($did(34) - 1 - $lines(tasks.txt))
  }
  if ($did == 61) {
    if ($remove($did(61).text,_,-,$chr(32)) !isalnum) || ($len($did(61).text) > 12) || (!$Did(61).text) {
      did -ar slayerdia 61 $left($did(61).text,-1)
      halt
    }
    writeini $dd(lastsave.ini) lookname tpage $iif($readini($dd(settings.ini),settings,upper),$upper($left($did(61).text,1)) $+ $right($did(61).text,-1),$did(61).text)
  }
  if ($did == 84) {
    if ($did(84).text) {
      if ($did(84).text !isnum 1-52) {
        did -ra slayerdia 84 $left($did(84).text,1)
        did -ra slayerdia 83 $left($did(84).text,1)
        echo -a $sinfo Specify a valid time period (1-52)
      halt }
      did -ra slayerdia 83 $did(84).text
      if ($did(84).text) writeini $dd(lastsave.ini) tinfo time2 $did(84).text
    }
  }
}
alias -l currentmon {
  ;currenttask
  return $gettok($remove($readini($dd(settings.ini),task,currenttask),$chr(32)),1,126)
}
alias -l currentam {
  return $gettok($remove($readini($dd(settings.ini),task,currenttask),$chr(32)),2,126)
}
alias -l loaddrops {
  var %x = 1
  did -r slayerdia 46
  if ($1 != all) {
    while (%x <= $readini($dd(settings.ini),realdrops,$1)) {
      if ($replace($readini($dd(drops.ini),$1,%x),_,$chr(32))) did -i slayerdia 46 1 $replace($readini($dd(drops.ini),$1,%x),_,$chr(32))
      inc %x
    }
  }
  else {
    while ($ini($dd(drops.ini),%x)) {
      loaddrops2 $ini($dd(drops.ini),%x)
      inc %x
    }
  }
}
alias -l loaddrops2 {
  var %x = 1
  while (%x <= $readini($dd(settings.ini),realdrops,$1)) {
    if ($replace($readini($dd(drops.ini),$1,%x),_,$chr(32))) did -i slayerdia 46 1 $replace($readini($dd(drops.ini),$1,%x),_,$chr(32))
    inc %x
  }
}
alias -l tdrop {
  if ($2 == -1) writeini $dd(settings.ini) realdrops $1 $calc($readini($dd(settings.ini),realdrops,$1) - 1)
  else writeini $dd(settings.ini) realdrops $1 $calc($readini($dd(settings.ini),realdrops,$1) + 1)
  if ($2 != -1) writeini $dd(settings.ini) drops $1 $calc($readini($dd(settings.ini),drops,$1) + 1)
  return $readini($dd(settings.ini),drops,$1)
}
alias -l echoerror {
  var %g = dlist.ini,drops.ini,hplist.ini,lastsave.ini,levels.ini,monsters.ini,tasks.txt,slayerdialog.txt
  var %x = 1
  while ($gettok(%g,%x,44)) {
    var %emsg = %emsg $+ $gettok(%g,%x,44) $+ : $+ $lines($dd($gettok(%g,%x,44))) $+ $chr(44)
    inc %x
  }
  return $sdversion $+ , $+ %emsg
}
on *:dialog:slayerdia:sclick:*:{
  if ($did == 14) {
    ;info about current task
    if (!$currentmon) { echo -a $sinfo You don't have a task! | halt }
    echo -a $sinfo
  }
  if ($did == 16) {
    ;updatescript
    if ($did(16) == update script!) {
      did -ra slayerdia 16 Updating to $readini($dd(settings.ini),version,fversion)
      sockopen updatescript. vectra-bot.org 80
    }
    if ($did(16) == check for updates) { echo -a $sinfo Checking for updates! | autocheck }
  }
  if ($did == 2) {
    echo -a $sinfo Looking up all prices. This might slow down mIRC for a couple of seconds.
    unset %totalprice
    unset %totalpriced
    unset %totalpriced2
    var %x = 1
    while (%x <= $did(46).lines) {
      if (clue !isin $gettok($did(46,%x),1,40)) && (effigy !isin $gettok($did(46,%x),1,40)) {
        if (!$readini($dd(gep.ini),prices,$replace($gettok($did(46,%x),1,40),$chr(32),_))) writeini $dd(gep.ini) prices $replace($gettok($did(46,%x),1,40),$chr(32),_) 1
        else writeini $dd(gep.ini) prices $replace($gettok($did(46,%x),1,40),$chr(32),_) $calc($readini($dd(gep.ini),prices,$replace($gettok($did(46,%x),1,40),$chr(32),_)) + 1)
      }
      inc %x
    }
    var %x = 1
    while ($ini($dd(gep.ini),prices,%x)) {
      sockopen slayge. $+ $left($ini($dd(gep.ini),prices,%x),-1) $+ . $+ $readini($dd(gep.ini),prices,$ini($dd(gep.ini),prices,%x)) $+ .all rscript.org 80
      inc %totalpriced2
      inc %x
    }
    did -b slayerdia 2
  }
  if ($did == 32) {
    if (!$did(46).sel) { echo -a $sinfo Specify a drop to lookup | halt }
    if (clue isin $did(46).seltext) || (effigy isin $did(46).seltext) { echo -a $Sinfo Untradable item | halt }
    var %x = 1
    var %z
    while (%x <= $did(46).lines) {
      if ($gettok($did(46,%x),1,40) == $gettok($did(46).seltext,1,40)) { inc %z }
      inc %x
    }
    did -b slayerdia 32
    sockopen slayge. $+ $replace($left($gettok($did(46).seltext,1,40),-1),$chr(32),_) $+ . $+ %z www.rscript.org 80
  }
  if ($did == 39) {
    if (!$did(46).sel) { echo -a $sinfo Specify a drop to delete | halt }
    if (!%sdrop) echo -a $Sinfo You can only delete drops from your current task. Drops from previous tasks can not be deleted.
    set -u1200 %sdrop on
    var %x = 1
    while ($ini($dd(drops.ini),$lines($dd(tasks.txt)),%x)) {
      if ($gettok($readini($dd(drops.ini),$lines($dd(tasks.txt)),$v1),1,40) == $gettok($did(46).seltext,1,40)) { remini $dd(drops.ini) $lines($dd(tasks.txt)) %x
        did -d slayerdia 46 $did(46).sel
      halt }
      inc %X
    }
  }
  if ($did == 27) {
    if ($did(36).text == none) || (!$did(36).text) { echo -a $sinfo No drop selectd! | halt }
    writeini $dd(drops.ini) $lines($dd(tasks.txt)) $tdrop($lines($dd(tasks.txt))) $did(36).text ( $+ $currentmon $+ )
    did -i slayerdia 46 1 $did(36).text ( $+ $replace($currentmon,_,$chr(32)) $+ )
  }
  if ($did == 21) {
    loadtasks
    did -b slayerdia 21
  }
  if ($did == 5) {
    if (!$gettok($replace($readini($dd(settings.ini),task,currenttask),_,$chr(32)),1,126)) { echo -a $sinfo No current task! | halt }
    set %odialog changec
    dialog -mn slayadd slayadd
  }
  if ($did == 86) {
    if (!$dd(tasks.txt)) { echo -a $sinfo You have not any saved tasks! | halt }
    var %usure $?!="Are you sure you wanna delete your total task and droplist?"
    if (%usure) {
      .remini $dd(settings.ini) amount
      .remini $dd(settings.ini) task
      .remove $dd(tasks.txt)
      .remove $dd(drops.ini)
      loadtasks
      loaddrops
    }
  }
  if ($did == 4) {
    dialog -mn slayadd slayadd
  }
  if ($did == 70) {
    writeini $dd(lastsave.ini) tinfo time1 $did(70).text
    if ($did(70).text == hour) var %x = 1
    if ($did(70).text == day) var %x = 2
    if ($did(70).text == week) var %x = 3
    did -c $dname 76 %x
  }
  if ($did == 76) {
    writeini $dd(lastsave.ini) xpinfo time1 $did(76).text
  }
  if ($did == 26) {
    if ($readini($dd(settings.ini),settings,autochange)) remini $dd(settings.ini) settings autochange
    else writeini $dd(settings.ini) settings autochange 1
  }
  if ($did == 29) {
    if ($readini($dd(settings.ini),settings,ontop)) remini $dd(settings.ini) settings ontop
    else writeini $dd(settings.ini) settings ontop 1
    slayd
  }
  if ($did == 30) {
    if ($readini($dd(settings.ini),settings,autodownload)) remini $dd(settings.ini) settings autodownload
    else writeini $dd(settings.ini) settings autodownload 1
  }
  if ($did == 56) {
    if ($readini($dd(settings.ini),settings,autoalog)) remini $dd(settings.ini) settings autoalog
    else writeini $dd(settings.ini) settings autoalog 1
  }
  if ($did == 28) {
    if ($readini($dd(settings.ini),settings,autotracker)) remini $dd(settings.ini) settings autotracker
    else writeini $dd(settings.ini) settings autotracker 1
  }
  if ($did == 24) {
    if ($readini($dd(settings.ini),settings,autotask)) remini $dd(settings.ini) settings autotask
    else writeini $dd(settings.ini) settings autotask 1
  }
  if ($did == 25) {
    if ($readini($dd(settings.ini),settings,autodrop)) remini $dd(settings.ini) settings autodrop
    else writeini $dd(settings.ini) settings autodrop 1
  }
  if ($did == 23) {
    if ($readini($dd(settings.ini),settings,autostart)) remini $dd(settings.ini) settings autostart
    else writeini $dd(settings.ini) settings autostart 1
  }
  if ($did == 85) {
    if ($readini($dd(settings.ini),settings,upper)) remini $dd(settings.ini) settings upper
    else writeini $dd(settings.ini) settings upper 1
  }
  if ($did == 15) {
    if ($readini($dd(settings.ini),settings,autoupdate)) remini $dd(settings.ini) settings autoupdate
    else writeini $dd(settings.ini) settings autoupdate 1
  }
  if ($did == 20) {
    if ($remove($did(61).text,_,-,$chr(32)) !isalnum) || ($len($did(61).text) > 12) || ($Did(61).text == default name) || (!$did(61).text) {
      echo -a $sinfo Specify a valid RuneScape name
      halt
    }
    echo -a $sinfo Default name changed!
    writeini $dd(settings.ini) settings defaultname $iif($readini($dd(settings.ini),settings,upper),$upper($left($did(61).text,1)) $+ $right($did(61).text,-1),$did(61).text)
  }
  if ($did == 17) {
    if ($remove($did(18).text,_,-,$chr(32)) !isalnum) || ($len($did(18).text) > 12) || ($Did(18).text == default name) || (!$did(18).text) {
      echo -a $sinfo Specify a valid RuneScape name
      halt
    }
    echo -a $sinfo Default name changed!
    writeini $dd(settings.ini) settings defaultname $iif($readini($dd(settings.ini),settings,upper),$upper($left($did(18).text,1)) $+ $right($did(18).text,-1),$did(18).text)
  }
  if ($did == 60) {
    if ($remove($did(61).text,_,-,$chr(32)) !isalnum) || ($len($did(61).text) > 12) || ($Did(61).text == default name) {
      echo -a $sinfo Specify a valid RuneScape name
      halt
    }
    if (!$did(84).text) {
      echo -a $sinfo Specify a valid time period
    halt }
    .sockclose sdtracker1.*
    .sockclose slayerd.*
    unset %sdcounter
    sockopen sdtracker1. $+ $replace($iif($readini($dd(settings.ini),settings,upper),$upper($left($did(61).text,1)) $+ $right($did(61).text,-1),$did(61).text),$chr(32),_) rscript.org 80
    sockopen slayerd. $+ $replace($iif($readini($dd(settings.ini),settings,upper),$upper($left($did(61).text,1)) $+ $right($did(61).text,-1),$did(61).text),$chr(32),_) hiscore.runescape.com 80
    did -b $dname 60
    did -ra $dname 60 Loading
  }
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
alias showerror {
  if ($left($1,1) == ^) tokenize 32 $!null $+ $1-
  var %z = $gettok($1-,2-,94)
  echo -a $Sinfo ERROR! Please report this error. Provide the following information:
  noop $regex(%z,/line (\d+)/i)
  if ($gettok($1-,1,94)) echo -a $infocolor $+ ERROR1: $gettok($1-,1,94)
  echo -a $infocolor $+ ERROR2: %z
  echo -a $infocolor $+ ERROR3: $read($script,n,$regml(1))
  echo -a $infocolor $+ ERROR4: $script
  echo -a $infocolor $+ ERROR5: $echoerror
}
alias -l htm return $regsubex($regsubex($1-,/(^[^<]+|<.*>|<[^>]+$|&[^#].*;)/gU,),/&#(.*);/gU,$chr(\1))
alias -l infocolor return  $+ $iif($len($color(info)),0 $+ $color(info),$color(info))
alias slaydcheck {
  if ($dialog(slayerdia)) {
    did -ra slayerdia 60 Look up
    did -e slayerdia 60
  }
}
on *:SOCKOPEN:sdtracker1.*:{
  if ($dialog(slayerdia)) {
    did -ar slayerdia 77 Avg xp/hour - $gettok($sockname,2,46)
    did -ar slayerdia 59 Tracker info - $gettok($sockname,2,46)
    .sockwrite -nt $sockname GET /lookup.php?type=track&user= $+ $gettok($sockname,2,46) $+ &skill=all&time= $+ $calc($did(slayerdia,84).text *60*60* $replace($did(slayerdia,70).text,hour,1,day,24,week,24*7)) HTTP/1.1
    .sockwrite -nt $sockname Host: www.rscript.org
    .sockwrite -nt $sockname $crlf
  }
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
on *:SOCKREAD:sdtracker1.*:{
  if (!$dialog(slayerdia)) { sockclose $sockname
  halt }
  .var %sockreader
  .sockread %sockreader
  if ($regex(%sockreader,/-1/)) {
    did -ra slayerdia 75 0 (Username not found)
    inc %sdcounter
    if (%sdcounter == 2) slaydcheck
    .sockclose $sockname | halt
  }
  if (start:Slayer: isin %sockreader) set %cslayxp [ $+ [ $sockname ] ] $gettok(%sockreader,3,58)
  if (gain:slayer: isin %sockreader) {
    .var %lvl.gain = $-exp(%cslayxp [ $+ [ $sockname ] ]), %lvl.start = $-exp($calc(%cslayxp [ $+ [ $sockname ] ] - $gettok(%sockreader,4,58)))
    .var %lvl.finish = $+($chr(40),%lvl.start,$iif(%lvl.start != %lvl.gain,$+(->,%lvl.gain)),$chr(41))
    did -ra slayerdia 75 $calc(%lvl.gain - %lvl.start) %lvl.finish
    did -ra slayerdia 73 $bytes($gettok(%sockreader,4,58),db)
    did -ra slayerdia 80 $bytes($round($calc($gettok(%sockreader,4,58) / $calc($did(slayerdia,84).text * $replace($did(slayerdia,70).text,hour,1,day,24,week,24*7))),2),bd)
    unset %cslayxp [ $+ [ $sockname ] ]
    if ($did(slayerdia,80).text == 0) {
      did -ra slayerdia 82 Over 100 weeks
      sockclose $sockname
      halt
    }
    var %hours = $calc($remove($did(slayerdia,68).text,$chr(44)) / $remove($did(slayerdia,80).text,$chr(44)))
    if (%hours >= 16800) { did -ra slayerdia 82 Over 100 weeks
      sockclose $sockname
    halt }
    if ($calc(%hours /7/24) >= 1) {
      var %weeks = $floor($calc(%hours /7/24))
      var %hours = $calc(%hours - (%weeks * 7*24))
    }
    if ($calc(%hours /24) >= 1) {
      var %days = $floor($calc(%Hours /24))
      var %hours = $calc(%hours - (%days *24))
    }
    var %minutes = $calc(%hours * 60)
    var %minutes = $calc(%minutes - $calc($floor(%hours) *60))
    var %minutes = $floor(%minutes)
    did -ra slayerdia 82 $iif(%Weeks,%weeks $+ Wks $+ $chr(44)) $iif(%days,%days $+ Days $+ $chr(44)) $iif($floor(%Hours),$floor(%hours) $+ Hours $+ $chr(44)) %minutes $+ mins
    inc %sdcounter
    if (%sdcounter == 2) slaydcheck
    sockclose $sockname
  }
  halt
  :error
  var %z = $error
  reseterror
  echo -a $infocolor $+ ERROR0: %ud ^ $1-
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
alias -l -exp {
  var %e = 0, %x = 1, %y = $1
  while (%e <= %y) {
    inc %e $calc($floor($calc(%x + 300 * 2 ^ (%x / 7))) / 4)
    inc %x
  }
  return $calc(%x - 1)
}
alias -l makelvls {
  var %x = 1
  var %xp = 0
  while (%x <= 126) {
    var %TempXp = $calc($floor($calc(%x + 300 * 2 ^ (%x / 7))) / 4)
    writeini $dd(levels.ini) xp %x $floor(%xp)
    inc %xp %TempXp
    inc %x
  }
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
menu * {
  -
  SlayerDialog:{ slayd }
  -
}
alias -l lvlx return $readini($dd(levels.ini),xp,$1-)
dialog slayadd {
  title "Add a task"
  size -1 -1 167 39
  option dbu
  text "Task monster:", 1, 2 3 41 8
  text "Amount:", 2, 4 28 25 8
  button "Add", 3, 118 27 43 12
  edit "", 4, 49 28 28 10, limit 3
  combo 5, 49 1 114 119, size drop
  text "Slayer master:", 6, 3 16 40 8
  combo 7, 49 14 60 50, size drop
  button "Delete task", 8, 79 27 37 12, hide
}
alias -l loadmonster {
  did -r slayadd 5
  var %x = 1
  while ($ini($dd(monsters.ini),$gettok($did(slayadd,7).text,1,32),%x)) {
    did -a slayadd 5 $replace($v1,_,$chr(32))
    inc %x
  }
  did -c slayadd 5 1
}
on *:dialog:slayadd:sclick:*:{
  if ($did == 7) {
    writeini $dd(lastsave.ini) slayadd master $did(7).sel
    loadmonster
  }
  if ($did == 8) {
    writeini $dd(settings.ini) amount all $calc($readini($dd(settings.ini,amount,all) - $currentam)
    writeini $dd(settings.ini) amount $remove($gettok($readini($dd(settings.ini),task,currenttask),1,126),$chr(32)) $calc($readini($dd(settings.ini),amount,$remove($gettok($readini($dd(settings.ini),task,currenttask),1,126),$chr(32))) - $currentam)
    remini $dd(settings.ini) task currenttask
    noop $tdrop($lines($dd(tasks.txt)),-1)
    remini $dd(settings.ini) task line
    write -d1 $dd(tasks.txt)
    loadtasks
    loadmdrops
  }
  if ($did == 3) {
    if (jad isin $did(5).text) {
      goto task
      halt
    }
    if ($did(4).text == db0) { echo -a $readini($dd(monsters.ini),$did(7).text,$replace($did(5).text,$chr(32),_)) | halt }
    if ($did(4).text !isnum $readini($dd(monsters.ini),$did(7).text,$replace($did(5).text,$chr(32),_))) {
      echo -a $sinfo Enter a real task! Not some made up one.
    halt }
    if ($did(3).text == add) {
      :task
      did -i slayerdia 11 1 $chr(35) $+ $calc($lines($dd(tasks.txt)) + 1 + $readini($dd(settings.ini),settings,firsttask)) $did(5).text $+ : $did(4).text
      write $dd(tasks.txt) $chr(35) $+ $calc($lines($dd(tasks.txt)) + 1) $did(5).text ~ $did(4).text
      writeini $dd(settings.ini) task currenttask $replace($did(5).text,$chr(32),_) ~ $did(4).text
      writeini $dd(settings.ini) task line $did(5).sel
      did -ra slayerdia 51 Total $replace($remove($gettok($readini($dd(settings.ini),task,currenttask),1,126),$chr(32)),_,$chr(32)) killed: $readini($dd(settings.ini),amount,$gettok($readini($dd(settings.ini),task,currenttask),1,126))
      did -ra slayerdia 35 Total monsters killed: $readini($dd(settings.ini),amount,all)
      writeini $dd(settings.ini) amount $remove($gettok($readini($dd(settings.ini),task,currenttask),1,126),$chr(32)) $calc($readini($dd(settings.ini),amount,$remove($gettok($readini($dd(settings.ini),task,currenttask),1,126),$chr(32))) + $remove($gettok($readini($dd(settings.ini),task,currenttask),2,126),$chr(32)))
      writeini $dd(settings.ini) amount all $calc($readini($dd(settings.ini),amount,all) + $did(4).text)
      did -ra slayerdia 8 $gettok($replace($remove($readini($dd(settings.ini),task,currenttask),$chr(32)),_,$chr(32)),1,126)
      loadmdrops
      dialog -x slayadd slayadd
      dialog -v slayerdia slayerdia
    }
    elseif ($did(3).text == Edit) {
      writeini $dd(settings.ini) amount all $calc($readini($dd(settings.ini,amount,all) - $currentam)
      writeini $dd(settings.ini) amount $remove($gettok($readini($dd(settings.ini),task,currenttask),1,126),$chr(32)) $calc($readini($dd(settings.ini),amount,$remove($gettok($readini($dd(settings.ini),task,currenttask),1,126),$chr(32))) - $currentam)
      remini $dd(settings.ini) task currenttask
      noop $tdrop($lines($dd(tasks.txt)),-1)
      remini $dd(settings.ini) task line
      write -d1 $dd(tasks.txt)
      loadtasks
      loadmdrops
      did -o slayerdia 11 1 $chr(35) $+ $calc($lines($dd(tasks.txt))) $did(5).text $+ : $did(4).text
      write -l1 $dd(tasks.txt) $chr(35) $+ $calc($lines($dd(tasks.txt)) + 1) $did(5).text ~ $did(4).text
      writeini $dd(settings.ini) task currenttask $replace($did(5).text,$chr(32),_) ~ $did(4).text
      writeini $dd(settings.ini) task line %x
      did -ra slayerdia 51 Total $replace($remove($gettok($readini($dd(settings.ini),task,currenttask),1,126),$chr(32)),_,$chr(32)) killed: $readini($dd(settings.ini),amount,$gettok($readini($dd(settings.ini),task,currenttask),1,126))
      did -ra slayerdia 35 Total monsters killed: $readini($dd(settings.ini),amount,all)
      did -ra slayerdia 8 $gettok($replace($remove($readini($dd(settings.ini),task,currenttask),$chr(32)),_,$chr(32)),1,126)
      loadmdrops
      dialog -x slayadd slayadd
      dialog -v slayerdia slayerdia
    }
  }
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
alias -l loadmdrops {
  did -r slayerdia 36
  var %x = 1
  while ($gettok($readini($dd(dlist.ini),slaymon,$gettok($readini($dd(settings.ini),task,currenttask),1,126)),%x,124)) {
    did -a slayerdia 36 $gettok($readini($dd(dlist.ini),slaymon,$gettok($readini($dd(settings.ini),task,currenttask),1,126)),%x,124)
    inc %x
  }
  did -c slayerdia 36 1
}
on *:dialog:slayadd:init:0:{
  did -a slayadd 7 Turael / Spria
  did -a slayadd 7 Mazchna / Achtryn
  did -a slayadd 7 Vannaka
  did -a slayadd 7 Chaeldar
  did -a slayadd 7 Sumona
  did -a slayadd 7 Duradel / Lapalok
  did -a slayadd 7 Kuradal
  did -c slayadd 7 7
  if ($readini($dd(lastsave.ini),slayadd,master)) did -c slayadd 7 $v1
  loadmonster
  if (%odialog == changec) {
    .dialog -t slayadd Change current task
    did -v $dname 8
    did -ra $dname 3 Edit
    did -c slayadd 5 $readini($dd(settings.ini),task,line)
    did -ra $dname 4 $remove($gettok($readini($dd(settings.ini),task,currenttask),2,126),$chr(32))
  }
  unset %odialog
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
on *:sockopen:downloadmon.*:{
  if (mlist isin $sockname) { var %link = /raw.php?fid=a9671
    unset %cmaster
    unset %downloadm
  }
  if (dlist isin $sockname) { unset %dl2
  var %link = /raw.php?fid=a9773 }
  if (hplist isin $sockname) { var %link = /raw.php?fid=a9770
    unset %downloadhp
    unset %hpmaster
  }
  sockwrite -nt $sockname GET %link HTTP/1.0
  sockwrite -nt $sockname Host: stirkbin.com
  sockwrite -nt $sockname $crlf
}
on *:sockread:downloadmon.*:{
  var %up
  sockread %up
  if (mlist isin $sockname) {
    if (<pre>[kuradal isin %up) set %downloadm on
    tokenize 61 %up
    var %up = $remove(%up,<pre>)
    if ([* iswm %up) && (%downloadm == on) { set %cmaster $remove(%up,[,]) | halt }
    if (%downloadm == on) {
      writeini $dd(monsters.ini) %cmaster $1 $remove($2-,$chr(32))
    }
  }
  if (dlist isin $sockname) {
    tokenize 61 $remove(%up,<pre>)
    if (%dl2) writeini $dd(dlist.ini) slaymon $1 $2-
    if (<pre> isin %up) set %dl2 on
  }
  if (hplist isin $sockname) {
    if (<pre>[Aberrant_spectres isin %up) { set %downloadhp on | set %hpmaster Abberant_spectres | halt }
    tokenize 61 %up
    if ([* iswm %up) && (%downloadhp == on) { set %hpmaster $remove(%up,[,]) | halt }
    if (%downloadhp == on) {
      writeini $dd(hplist.ini) %hpmaster $1 $remove($2-,$chr(32))
    }
  }
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  echo -a $infocolor $+ ERROR0: %up - $sockname - %hpmaster - %cmaster
  halt
}
ctcp *:slayerdialog:?:{ ctcpreply $nick $iif($Dialog(slayerdia),V,) $sdversion }
alias -l autocheck { if ($sock(Sdcheck)) sockclose sdcheck 
sockopen sdcheck vectra-bot.org 80 }
on *:sockopen:SDcheck:{
  if (!$dialog(slayerdia)) { echo -a $sinfo Dialog closed! Update halted | sockclose $Sockname | halt }
  did -b slayerdia 16
  sockwrite -nt $sockname GET /forum/viewtopic.php?f=13&t=715 HTTP/1.1
  sockwrite -nt $sockname Host: vectra-bot.net
  sockwrite -nt $sockname $crlf
}
on *:sockread:SDcheck:{
  ;if (!$dialog(slayerdia)) { echo -a $sinfo Dialog closed! Version check halted | sockclose $Sockname | halt }
  var %ud
  sockread %ud
  if (*~*pastebin*~* iswm %ud) {
    if ($remove($gettok(%ud,2,126),Current version:,$chr(32)) == $readini($dd(settings.ini),version,cversion)) { sockclose $sockname | did -e slayerdia 16 | halt }
    if ($readini($dd(settings.ini),version,updated)) { writeini $dd(settings.ini) version cversion $remove($gettok(%ud,2,126),Current version:,$chr(32))
      remini $dD(settings.ini) version updated
      did -e slayerdia 16
      sockclose $sockname
      halt
    }
    writeini $dd(settings.ini) version dlink $remove($gettok($htm(%ud),3,126),Pastebin link:)
    writeini $dd(settings.ini) version fversion $remove($gettok(%ud,2,126),Current version:,$chr(32))
    echo -a $sinfo New version found: $remove($gettok(%ud,2,126),Current version:,$chr(32)) $+ ! $iif($readini($dd(settings.ini),settings,autodownload),Automatically updating to new version)
    if ($readini($dd(settings.ini),settings,autodownload)) {
      did -ra slayerdia 16 Updating to $readini($dd(settings.ini),version,fversion)
      sockopen updatescript.auto stirkbin.com 80
      sockclose $sockname
      halt
    }
    did -ra slayerdia 16 Update script!
    did -e slayerdia 16
    sockclose $sockname
  halt }
  if (</html> isin %ud) { echo -a $sinfo Error trying to update: Forum thread not found! | sockclose $sockname | halt }
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
alias update {
  echo -a $sinfo Update alias is no longer supported! Use the Update button instead!
  halt
  if (stirkbin.com !isin $1-) || (raw !isin $1-) { echo -a $sinfo Wrong link specified! | halt }
  if (!$readini($dd(settings.ini),updated,confirm)) && (!$2) {
  if (!$?!="Be sure you typed the correct link. $crlf Also make sure there's no other script in $remove($script,$mircdir,slayerdialog\) (you made new file for the SlayerDialog) $crlf Press yes to continue. This message will only be shown once") halt }
  writeini $dd(settings.ini) updated confirm true
  set %updatelink $remove($1,http://,www.,stirkbin,.com)
  set %.txt . $+ $gettok($script,-1,46)
  write -c $dd(SlayerDialog.txt)
  unset %udslayd
  sockopen updatescript.manual www.stirkbin.com 80
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
on *:sockopen:updatescript.*:{
  ;updatescriptsocket
  if (auto !isin $sockname) echo -a $sinfo Script updating. Please wait a second.
  set %updatelink $remove($readini($dd(settings.ini),version,dlink),http://,www.,stirkbin,.com)
  sockwrite -nt $sockname GET %updatelink HTTP/1.0
  sockwrite -nt $sockname Host: stirkbin.com
  sockwrite -nt $sockname $crlf
}
on *:sockread:updatescript.*:{
  var %ud
  sockread %ud
  if (<pre> isin %ud) && (%udslayd != on) { var %ud = $remove(%ud,<pre>)
    if (;checkscript*; !iswm %ud) || (Error. Post ID does not exist. isin %ud) { echo -a $sinfo Specified link doesn't contain the SlayerDialog script. Update halted | sockclose $sockname | halt }
    writeini $dd(settings.ini) version cversion $readini($dd(settings.ini),version,fversion)
    remini $dd(settings.ini) version fversion
    remini $dd(settings.ini) version dlink
    write -c $dd(slayerdialog.txt)
    set %udslayd on
  }
  if (%udslayd == on) write $dd(SlayerDialog.txt) $replace(%ud,& $+ lt;,<,& $+ gt;,>,& $+ amp;,&,& $+ quot;,")
  if (%ud == ;sockclose script;) { sockclose $sockname
    .timer 1 3 .load -rs $dd(SlayerDialog.txt) $(|) .echo -a $sinfo SlayerDialog succesfully updated! New version: $readini($dd(settings.ini),version,cversion) $(|) .sd
    unset %.txt
    unset %updatelink
    unset %udslayd
    .unload -rs $remove($script,$mircdir)
  }
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
on *:SOCKOPEN:slayge.*:{
  sockwrite -nt $sockname GET /lookup.php?type=ge&search= $+ $gettok($sockname,2,46) HTTP/1.0
  sockwrite -nt $sockname Host: rscript.org
  sockwrite -nt $sockname $crlf
}
on *:SOCKREAD:slayge.*:{
  if (!$dialog(slayerdia)) halt
  .var %sr
  .sockread %sr
  if (!$gettok($sockname,4,46)) {
    if (ERROR: isin %sr) {
      echo -a $Sinfo $iif(We have no items to spew. isin %sr,Item not found!,Unknown error: %sr)
      sockclose $sockname
    }
    if (ITEM == $gettok(%sr,1,58)) {
      tokenize 32 %sr
      var %sp = $sprice($5)
      var %sp2 = $sprice($calc($5 * $gettok($sockname,3,46)))
      did -ra Slayerdia 47 Price of $replace($gettok($sockname,2,46),_,$chr(32)) (Total: $gettok($sockname,3,46) $+ ) $+ :
      did -ra slayerdia 50 %sp ( $+ %sp2 $+ )
      did -e slayerdia 32
      sockclose $Sockname
    }
  }
  else {
    if (ERROR: isin %sr) {
      echo -a $Sinfo $iif(We have no items to spew. isin %sr,Item $gettok($sockname,2,46) not found!,Unknown error: %sr)
      sockclose $sockname
    }
    if (ITEM == $gettok(%sr,1,58)) {
      tokenize 32 %sr
      set %totalprice $calc(%Totalprice + $5)
      inc %totalpriced
      if (%totalpriced == %totalpriced2) { did -ra Slayerdia 38 $sprice(%totalprice)
      did -e slayerdia 2 }
      sockclose $sockname
      .remove $dd(gep.ini)
    }
  }
  halt
  :error
  var %z = $error
  reseterror
  showerror $iif($did,$did) $+ $chr(94) $+ %z
  halt
}
alias -l sprice {
  var %a = $1
  if ($1 >= 1000000) {
    var %a = $round($calc($1 /1000000),2) $+ m
  }
  if ($1 >= 1000) {
    var %a = $round($calc($1 /1000),2) $+ k
  }
  return %a
}
;sockclose script;

Comments

Sign in to comment.
Trai   -  Feb 25, 2012

updates please? ik its old but I mayaswell try lol

 Respond  
Dani_l11   -  Jan 30, 2011

Hmm, you might be right, but I don't think it can harm anyone. Added 4 out of those 6, because people tried to typ that and it didn't work.

 Respond  
sunslayer   -  Jan 28, 2011
alias slayerd slayd
alias slayerdialog slayd
alias slaydialog slayd
alias sd slayd
alias sdialog slayd
alias slayerlog slayd

theres no need to use that many aliases

 Respond  
henrique.v.oliveira   -  Jan 28, 2011

WOW! Looks great, gratz!

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.