All pastes #904545 Raw Edit

Miscellany

public text v1 · immutable
·published 2008-02-15 00:56 UTC
rendered paste body
menu * { 
  Runescape tool
  .Exp Counter: /dialog -m ExpCount ExpCount
  .Combat: /Dialog -m Combat Combat
  .Stats: /dialog -m Stats Stats
} 
dialog Combat { 
  title "Combat" 
  size -1 -1 166 90 
  option dbu 
  text "Username:", 2, 5 9 57 12, center 
  edit "", 3, 70 10 63 10, center 
  edit "", 4, 36 66 14 10, read 
  edit "", 5, 36 52 14 10, read 
  edit "", 6, 36 39 14 10, read 
  edit "", 7, 90 66 14 10, read 
  edit "", 8, 90 52 14 10, read 
  edit "", 9, 90 39 14 10, read 
  edit "", 10, 144 61 14 10, read 
  edit "", 11, 144 48 14 10, read 
  box "Levels", 1, 2 28 160 60 
  box "Combat", 13, 2 2 160 86 
  text "Attack:", 14, 5 38 25 8, center 
  text "Defence:", 15, 5 51 25 8, center 
  text "Strength:", 16, 5 65 25 8, center 
  text "Hitpoints:", 17, 60 38 25 8, center 
  text "Ranged:", 18, 60 51 25 8, center 
  text "Prayer:", 19, 60 65 25 8, center 
  text "Magic:", 12, 114 47 25 8, center 
  text "Summon:", 20, 114 60 25 8, center 
  text "F2P level:", 21, 5 77 28 8, center 
  edit "", 22, 36 77 22 10, read 
  text "|", 23, 62 77 25 8, center 
  text "P2P level:", 24, 93 77 28 8, center 
  button "Look up", 26, 41 21 58 9, flat 
  edit "", 25, 124 77 22 10, read 
} 
on *:DIALOG:Combat:sclick:26:{ 
  if (!$did(3)) { 
    did -ra Combat 3 Error, No username. 
  } 
  if ($len($did(3)) > 12) { 
    did -ra Combat 3 Error, Invalid username. 
  } 
  else { 
    var %s = $ticks 
    var %User $replace($did(3),$chr(32),$chr(95)) 
    sockopen Combat. [ $+ [ %s ] ] hiscore.runescape.com 80 
    sockmark Combat. [ $+ [ %s ] ] $+(username,~,%User) 
  } 
} 
on *:SOCKOPEN:Combat.*:{ 
  var %User $gettok($sock($sockname).mark,2,126) 
  sockwrite -n $sockname GET $+(/index_lite.ws?player=,%User) HTTP/1.1 
  sockwrite -n $sockname Host: hiscore.runescape.com 
  sockwrite -n $sockname $crlf 
} 
on *:SOCKREAD:Combat.*:{ 
  var %s = $gettok($sockname,2,$asc(.)) 
  if ($sockerr) { sockclose $sockname | did -ra Combat 3 Socket error. | halt } 
  else { 
    var %Combat 
    sockread %Combat 
    if (*404 - Page not found* iswm %Combat) { 
      did -ra Combat 3 User not found. 
    } 
    if (*,*,* iswm %Combat) { 
      set %Stats. [ $+ [ %s ] ] %Stats. [ $+ [ %s ] ] $gettok(%Combat,2,44) 
      tokenize 32 %Stats. [ $+ [ %s ] ] 
      ;str = 4, attk = 6,def = 5, hp = 5, pray = 7,range = 8, mage = 8,summon = 10 
      did -ra Combat 4 $4 
      did -ra Combat 6 $2 
      did -ra Combat 5 $3 
      did -ra Combat 7 $7 
      did -ra Combat 8 $6 
      did -ra Combat 9 $5 
      did -ra Combat 10 $25 
      did -ra Combat 11 $8 
      var %cmbp2p = $remove($cmbp2p($2,$3,$4,$5,$6,$7,$8,$iif(-1 iswm $25,1,$25)),Melee,Ranged,Magic,Based) 
      var %cmbf2p = $remove($cmbf2p($2,$3,$4,$5,$6,$7,$8),Melee,Ranged,Magic,Based) 
      did -ra Combat 22 %cmbf2p 
      did -ra Combat 25 %cmbp2p 
    } 
  } 
} 
on *:SOCKCLOSE:Combat.*:{ 
  var %s = $gettok($sockname,2,$asc(.)) 
  unset %Stats. [ $+ [ %s ] ] 
  sockclose $sockname 
} 


dialog Stats {
  title "Stats"
  size -1 -1 197 139
  option dbu
  text "Firemaking:", 14, 112 48 29 8, center
  text "Strength:", 15, 6 26 25 8, center
  text "Thieving:", 16, 6 115 25 8, center
  text "Attack:", 17, 6 15 25 8, center
  text "Construct:", 18, 144 77 26 8, center
  text "Hitpoints:", 20, 59 37 25 8, center
  text "Prayer:", 21, 6 59 25 8, center
  text "Hunter:", 22, 144 96 25 8, center
  text "Summon:", 23, 144 115 25 8, center
  text "Cooking:", 24, 112 37 25 8, center
  text "Slayer:", 25, 75 96 25 8, center
  text "Overall:", 26, 164 30 25 8, center
  text "Defence:", 27, 6 37 25 8, center
  text "Magic:", 28, 59 15 25 8, center
  text "Fletching:", 29, 75 77 25 8, center
  text "Fishing:", 30, 112 26 25 8, center
  text "Farming:", 31, 75 115 25 8, center
  text "Mining:", 32, 59 59 25 8, center
  text "Smithing:", 33, 112 15 25 8, center
  text "Ranged:", 34, 6 48 25 8, center
  text "Runecraft:", 35, 59 26 26 8, center
  text "Woodcut:", 36, 112 59 24 8, center
  text "Herblore:", 37, 6 96 25 8, center
  text "Crafting:", 38, 59 48 25 8, center
  text "Username:", 40, 5 6 41 7, center
  edit "", 41, 41 6 90 10, center
  button "Look up!", 42, 137 6 53 9
  box "P2P Skills", 43, 1 68 196 61
  edit "", 44, 32 78 16 10, read
  box "F2P", 53, 1 -1 196 130
  edit "", 45, 32 97 16 10, read
  edit "", 46, 32 116 16 10, read
  edit "", 47, 101 116 16 10, read
  edit "", 48, 101 78 16 10, read
  edit "", 49, 170 78 16 10, read
  edit "", 50, 170 97 16 10, read
  edit "", 51, 101 97 16 10, read
  edit "", 52, 170 116 16 10, read
  text "Agility:", 19, 6 77 25 8, center
  edit "", 54, 35 16 16 10, read
  edit "", 55, 88 16 16 10, read
  edit "", 56, 35 39 16 10, read
  edit "", 57, 35 27 16 10, read
  edit "", 58, 88 38 16 10, read
  edit "", 59, 88 60 16 10, read
  edit "", 60, 35 50 16 10, read
  edit "", 61, 35 61 16 10, read
  edit "", 62, 88 49 16 10, read
  edit "", 63, 88 27 16 10, read
  edit "", 64, 141 16 16 10, read
  edit "", 65, 141 27 16 10, read
  edit "", 66, 141 38 16 10, read
  edit "", 67, 141 49 16 10, read
  edit "", 68, 141 59 16 10, read
  edit "", 69, 164 40 26 10, read, center
  text "Combat F2P:", 1, 3 130 53 8, center
  text "Combat P2P:", 2, 100 130 53 8, center
  edit "", 3, 62 129 28 10, read
  edit "", 4, 159 129 28 10, read
}
on *:DIALOG:Stats:sclick:42:{
  if (!$did(41)) {
    //dialog -m NoNameError NoNameError
    halt
  }
  else {
    if ($len($did(41)) > 12) {
      //dialog -m TooLongError TooLongError
      halt
    }
    else {
      var %s = $ticks
      set %StatsUser. [ $+ [ %s ] ] $replace($did(41),$chr(32),$chr(95))
      sockopen Stats. [ $+ [ %s ] ] hiscore.runescape.com 80
    }
  }
}
on *:SOCKOPEN:Stats.*:{
  var %s = $gettok($sockname,2,$asc(.))
  sockwrite -n $sockname GET $+(/index_lite.ws?player=,%StatsUser. [ $+ [ %s ] ]) HTTP/1.1 
  sockwrite -n $sockname Host: hiscore.runescape.com
  sockwrite -n $sockname $crlf 
}
on *:SOCKREAD:Stats.*:{
  var %s = $gettok($sockname,2,$asc(.))
  if ($sockerr) { sockclose $sockname | did -ra Combat 40 Socket error. | halt }
  else {
    var %Stats
    sockread %Stats
    if (*404 - Page not found* iswm %Stats) {
      //dialog -m StatsError StatsError
      halt
    }
    if (*,*,* iswm %Stats) {
      set %Stats. [ $+ [ %s ] ] %Stats. [ $+ [ %s ] ] $gettok(%Stats,2,44)
      tokenize 32 %Stats. [ $+ [ %s ] ]
      ;attk = 54 2, str = 57 4,def = 56 3, hp = 58 5,agi = 44 18,herb = 45 17,thiev = 46 19,fletch = 48 11,cons = 49 24
      ;summon = 52 25,hunter = 50 23,runecraft = 63 22,overall = 69 1,wc = 68 10, range = 60 6,pray = 61 7,mage = 55 8,craft = 62 14
      ;mining = 59 16,slayer = 51 20,farm = 47 21,smithing = 64 15,fish = 65 12,cook = 66 9,fm = 67 13,
      did -ra Stats 54 $2
      did -ra Stats 57 $4
      did -ra Stats 56 $3
      did -ra Stats 58 $5
      did -ra Stats 45 $17
      did -ra Stats 44 $18
      did -ra Stats 48 $11
      did -ra Stats 49 $24
      did -ra Stats 52 $25
      did -ra Stats 50 $23
      did -ra Stats 63 $22
      did -ra Stats 69 $bytes($1,db)
      did -ra Stats 68 $10
      did -ra Stats 46 $19
      did -ra Stats 60 $6
      did -ra Stats 61 $7
      did -ra Stats 55 $8
      did -ra Stats 62 $14
      did -ra Stats 59 $16
      did -ra Stats 51 $20
      did -ra Stats 47 $21
      did -ra Stats 64 $15
      did -ra Stats 65 $12
      did -ra Stats 66 $9
      did -ra Stats 67 $13
      var %cmbp2p = $remove($cmbp2p($2,$3,$4,$5,$6,$7,$8,$iif(-1 iswm $25,1,$25)),Melee,Ranged,Magic,Based)
      var %cmbf2p = $remove($cmbf2p($2,$3,$4,$5,$6,$7,$8),Melee,Ranged,Magic,Based)
      did -ra Stats 3 %cmbf2p
      did -ra Stats 4 %cmbp2p
    }
  }
}
on *:SOCKCLOSE:Stats.*:{
  var %s = $gettok($sockname,2,$asc(.))
  unset %StatsUser. [ $+ [ %s ] ]
  unset %Stats. [ $+ [ %s ] ]
  sockclose $sockname
}
alias -l cmbp2p { 
  ;$cmb(attack,defence,strength,hitpoints,ranged,prayer,magic,summoning) 
  var %a = $calc($2 * 100), %b = $calc($4 * 100), %e = $calc($1 * 130), %f = $calc($3 * 130) 
  var %c = $iif($and($6,1) == 1,$calc($calc($6 - 1) * 50),$calc($6 * 50)), %d = $iif($and($8,1) == 1,$calc($calc($8 - 1) * 50),$calc($8 * 50)) 
  var %g = $iif($and($5,1) == 1,$calc($calc($calc($5 - 1) + $calc($5 * 2)) * 65),$calc($5 * 195)), %h = $iif($and($7,1) == 1,$calc($calc($calc($7 - 1) + $calc($7 * 2)) * 65),$calc($7 * 195)) 
  var %base = $calc($calc(%a + %b + %c + %d) / 400), %mclass = $calc($calc(%e + %f) / 400), %rclass = $calc(%g / 400), %maclass = $calc(%h / 400) 
  if ((%mclass > %rclass) && (%mclass > %maclass)) { return $calc(%mclass + %base) Melee Based } 
  elseif ((%rclass > %mclass) && (%rclass > %maclass)) { return $calc(%rclass + %base) Ranged Based } 
  elseif ((%maclass > %mclass) && (%maclass > %rclass)) { return $calc(%maclass + %base) Magic Based } 
} 
alias -l cmbf2p { 
  tokenize 32 $1- 
  var %rsc1 [ $+ [ $8 ] ] $calc((($1 * 130) + ($3 * 130)) / 400) 
  var %rsc2 [ $+ [ $8 ] ] $calc($iif($and($5,1) == 0,$calc($5 * 195),$calc((($5 - 1) + ($5 * 2)) * 65)) / 400) 
  var %rsc3 [ $+ [ $8 ] ] $calc($iif($and($7,1) == 0,$calc($7 * 195),$calc((($7 - 1) + ($7 * 2)) * 65)) / 400) 
  if ((%rsc1 [ $+ [ $8 ] ] >= %rsc2 [ $+ [ $8 ] ]) && (%rsc1 [ $+ [ $8 ] ] >= %rsc3 [ $+ [ $8 ] ])) return $calc(%rsc1 [ $+ [ $8 ] ] + ((($2 * 100) + ($4 * 100) + ($iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50)) / 400)) Melee Based 
  elseif ((%rsc2 [ $+ [ $8 ] ] >= %rsc3 [ $+ [ $8 ] ]) && (%rsc2 [ $+ [ $8 ] ] >= %rsc1 [ $+ [ $8 ] ])) return $calc(%rsc2 [ $+ [ $8 ] ] + ((($2 * 100) + ($4 * 100) + $iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50) / 400)) Ranged Based 
  elseif ((%rsc3 [ $+ [ $8 ] ] >= %rsc1 [ $+ [ $8 ] ]) && (%rsc3 [ $+ [ $8 ] ] >= %rsc2 [ $+ [ $8 ] ])) return $calc(%rsc3 [ $+ [ $8 ] ] + ((($2 * 100) + ($4 * 100) + $iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50) / 400)) Magic Based 
}
dialog TooLongError {
  title "Error"
  size -1 -1 90 54
  option dbu
  text "- Error -", 1, 31 7 25 8, center
  text "Username is too long", 2, 20 22 49 8, center
  button "Cancel", 3, 26 37 37 12, cancel
}
dialog StatsError {
  title "Error"
  size -1 -1 90 54
  option dbu
  text "- Error -", 1, 31 7 25 8, center
  text "User was not found.", 2, 20 22 49 8, center
  button "Cancel", 3, 26 37 37 12, cancel
}
dialog NoNameError {
  title "Error"
  size -1 -1 90 54
  option dbu
  text "- Error -", 1, 31 7 25 8, center
  text "You must specify a user", 2, 20 22 49 8, center
  button "Cancel", 3, 26 37 37 12, cancel
}
dialog ExpCount {
  title "Average Exp"
  size -1 -1 183 156
  option dbu
  box "User and Skill", 1, 1 2 181 51
  text "User:", 2, 5 10 40 8, center
  edit "", 3, 59 9 88 10, center
  text "Skill:", 4, 5 24 42 8, center
  edit "", 5, 59 23 88 10, center
  button "Start", 6, 49 40 72 9
  text "Starting Exp:", 8, 5 62 37 8, center
  edit "", 9, 69 61 45 10, read center
  text "Ending Exp:", 11, 5 85 40 8, center
  edit "", 12, 69 84 45 10, read center
  box "Exp. Made", 13, 1 96 181 58
  box "Starting/Ending Exp.", 7, 1 53 181 101
  button "Stop", 10, 118 59 61 37
  text "Per 5 mins:", 14, 5 105 35 8, center
  text "Per 15 mins:", 15, 99 105 35 8, center
  edit "", 16, 135 104 45 10, read center
  edit "", 17, 48 104 46 10, read center
  text "Per 30 mins:", 18, 5 120 35 8, center
  edit "", 19, 48 119 46 10, read center
  text "By hours:", 20, 99 119 35 8, center
  edit "", 21, 135 118 45 10, read center
  edit "", 22, 6 136 172 10, read center
}

on *:DIALOG:ExpCount:sclick:6:{
  if (!$did(3)) {
    dialog -m NoUser NoUser
  }
  else {
    if (!$did(5)) {
      dialog -m NoSkill NoSKill
    }
    else {
      set %StartExp on
      set %Time $ctime
      var %s = $ticks
      set %Skill $skill($did(5))
      set %User $did(3)
      sockopen ExpStart. $+ %s nou.stirk.org 80
    }
  }
}
on *:SOCKOPEN:ExpStart.*:{
  sockwrite -n $sockname GET $+(/parsers/skill.php?user=,%User,&skill=,%Skill) HTTP/1.1 
  sockwrite -n $sockname Host: nou.stirk.org
  sockwrite -n $sockname $crlf
}
on *:SOCKREAD:ExpStart.*:{
  if ($sockerr) {
    dialog -m SockErr SockErr
    halt 
  }
  else {
    var %S
    sockread %S
    if (*Exp:* iswm %S) {
      did -ra ExpCount 9 $remove($gettok(%S,2,124),Exp:)
      set %Start $remove($gettok(%S,2,124),Exp:,$chr(44))
      set %LevelStart $remove($gettok(%S,1,124),Level:)
      sockclose $sockname
    }
  }
}
on *:DIALOG:ExpCount:sclick:10:{
  if (%StartExp != on) {
    dialog -m StartOff StartOff
    halt
  }
  else {
    unset %StartExp
    var %s = $ticks
    sockopen ExpEnd. $+ %s nou.stirk.org 80
  }
}
on *:SOCKOPEN:ExpEnd.*:{
  sockwrite -n $sockname GET $+(/parsers/skill.php?user=,%User,&skill=,%Skill) HTTP/1.1 
  sockwrite -n $sockname Host: nou.stirk.org
  sockwrite -n $sockname $crlf
}
on *:SOCKREAD:ExpEnd.*:{
  if ($sockerr) {
    dialog -m SockErr SockErr
    halt
  }
  else {
    var %E
    sockread %E
    if (*Exp:* iswm %E) {
      set %LevelEnd $remove($gettok(%E,1,124),Level:)
      did -ra ExpCount 12 $remove($gettok(%E,2,124),Exp:)
      set %End $remove($gettok(%E,2,124),Exp:,$chr(44))
      did -ra ExpCount 21 $bytes($round($calc((3600/($ctime - %Time))*(%End - %Start)),0),db)
      did -ra ExpCount 16 $bytes($round($calc((900/($ctime - %Time))*(%End - %Start)),0),db)
      did -ra ExpCount 17 $bytes($round($calc((300/($ctime - %Time))*(%End - %Start)),0),db)
      did -ra ExpCount 19 $bytes($round($calc((1800/($ctime - %Time))*(%End - %Start)),0),db)
      did -ra ExpCount 22 You've gained $iif(%LevelStart != %LevelEnd,$calc(%LevelEnd - %LevelStart) $iif($calc(%LevelEnd - %LevelStart) = 1,level,levels) $+($chr(40),$bytes($calc(%End - %Start),db),$chr(41)) in $duration($calc($ctime - %time)) $+ .,$bytes($calc(%End - %Start),db) xp in $duration($calc($ctime - %Time)) $+ .)
    }
  }
}
on *:SOCKCLOSE:ExpEnd.*:{
  unset %End %Skill %User %End %Time %Start %LevelStart %LevelEnd
}
dialog NoSkill {
  title "Error - No Skill"
  size -1 -1 67 47
  option dbu
  text "- Error -", 1, 21 6 19 8, center
  box "", 2, 1 -1 65 46
  text "No Skill Specified.", 3, 5 20 54 8, center
  button "Cancel", 4, 13 32 37 8, cancel
}
dialog NoUser {
  title "Error - No Username"
  size -1 -1 67 47
  option dbu
  text "- Error -", 1, 21 6 19 8, center
  box "", 2, 1 -1 65 46
  text "No User Specified.", 3, 5 20 54 8, center
  button "Cancel", 4, 13 32 37 8, cancel
}
dialog SockErr {
  title "Socket Error"
  size -1 -1 67 47
  option dbu
  text "- Error -", 1, 19 8 27 8, center
  text "Socket error, try again", 2, 3 19 60 8, center
  button "Cancel", 3, 15 33 37 10, cancel
}
dialog StartOff {
  title "Start"
  size -1 -1 67 47
  option dbu
  text "- Error -", 1, 19 8 27 8, center
  text "You haven't started one yet.", 2, 3 19 60 14, center
  button "Cancel", 3, 15 34 37 10, cancel
}
alias skill { 
  if ($did(5) == overall || $1 == total) { return Overall } 
  if ($did(5) == attack || $1 == att || $1 == attk) { return Attack } 
  if ($did(5) == def || $1 == defence) { return Defence } 
  if ($did(5) == str || $1 == strength) { return Strength } 
  if ($did(5) == hp || $1 == hitpoints || $1 == hits) { return Hitpoints } 
  if ($did(5) == range || $1 == ranged || $1 == ranging) { return Ranged } 
  if ($did(5) == pray || $1 == prayer || $1 == praying) { return Prayer } 
  if ($did(5) == mage || $1 == magic) { return Magic } 
  if ($did(5) == cook || $1 == cooking) { return Cooking } 
  if ($did(5) == wc || $1 == wcing || $1 == woodcut || $1 == woodcutting) { return Woodcutting } 
  if ($did(5) == fletch || $1 == fletching) { return Fletching } 
  if ($did(5) == fishing || $1 == fish) { return Fishing } 
  if ($did(5) == fm || $1 == firemaking) { return Firemaking } 
  if ($did(5) == craft || $1 == crafting) { return Crafting } 
  if ($did(5) == smith || $1 == smithing) { return Smithing } 
  if ($did(5) == mining) { return Mining } 
  if ($did(5) == herb || $1 == herblore) { return Herblore } 
  if ($did(5) == agility || $1 == agil || $1 == agi) { return Agility } 
  if ($did(5) == thiev || $1 == thieving) { return Thieving } 
  if ($did(5) == slay || $1 == slaying || $1 == slayer) { return Slayer } 
  if ($did(5) == farm || $1 == farming) { return Farming } 
  if ($did(5) == rc || $1 == runecraft || $1 == runecrafting) { return Runecraft } 
  if ($did(5) == construct || $1 == con || $1 == cons || $1 == construction) { return Construction } 
  if ($did(5) == hunt || $1 == hunter || $1 == hunting) { return Hunter } 
  if ($did(5) == summ || $1 == sum || $1 == summo || $1 == summon || $1 == summoning) { return Summoning } 
}