All pastes #897651 Raw Edit

Miscellany

public text v1 · immutable
·published 2008-02-09 18:57 UTC
rendered paste body
alias Combat {
  /dialog -m Combat Combat
}

dialog Combat {
  title "Combat"
  size -1 -1 194 127
  option dbu
  text "RuneScape Username:", 1, 3 9 67 16
  edit "", 2, 94 10 75 10
  button "Check Combat Level", 3, 5 31 168 12
  text "Attack:", 4, 6 47 20 14
  text "Strength:", 5, 6 61 25 14
  text "Defence:", 6, 6 75 24 14
  edit "", 7, 30 47 14 10
  edit "", 8, 33 61 14 10
  edit "", 9, 33 75 14 10
  edit "", 10, 140 70 14 10
  edit "", 11, 136 54 14 10
  edit "", 12, 78 77 14 10
  edit "", 14, 80 63 14 10
  edit "", 15, 80 47 14 10
  text "Hitpoints:", 17, 52 47 25 11
  text "Ranged:", 18, 52 63 25 11
  text "Magic:", 19, 52 78 21 8
  text "Prayer:", 20, 105 55 25 8
  text "Summoning:", 21, 105 71 31 8
  edit "", 13, 11 95 172 17
  box "Combat Calculator", 16, 1 2 189 115
  link "http://runescape.com", 22, 48 118 90 8
}

on *:DIALOG:Combat:sclick:3:{
  if (!$did(2)) {
    did -ra Combat 2 No username was specified.
  }
  else {
    set %Testname $replace($did(2),$chr(35),$chr(95))
    sockopen CmbTest hiscore.runescape.com 80
  }
}

on *:SOCKOPEN:CmbTest:{
  sockwrite -nt $sockname GET $+(/index_lite.ws?player=,%TestName) HTTP/1.1 
  sockwrite -nt $sockname Host: hiscore.runescape.com
  sockwrite -nt $sockname $crlf 
}

on *:SOCKREAD:CmbTest:{
  if ($sockerr) { 
    did -ra Combat 13 Socket Error try later.
    unset %Testname
    sockclose $sockname
  }
  else {
    var %Test
    sockread %Test
    if (*404 - Page not found* iswm %Test) {
      did -ra Combat 13 The username $+(",%Testname,") was not found on RuneScape Highscores.
      unset %Testname
      sockclose $sockname
    }
    else {
      if (*,*,* iswm %Test) {
        set %Stats %Stats $gettok(%Test,2,44)
      }
    }
  }
}

on *:SOCKCLOSE:Combat:{
  tokenize 32 %Stats
  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 7 $2
  did -ra Combat 8 $4
  did -ra Combat 9 $3
  did -ra Combat 10 $25
  did -ra Combat 11 $7
  did -ra Combat 12 $8
  did -ra Combat 14 $6
  did -ra Combat 15 $5
  did -ra Combat 13 $+(",%Testname,") is level $iif(-1 iswm $25,$+(%cmbf2p,$chr(32),$chr(40),F2P,$chr(41)),$+($remove(%cmbp2p,$chr(32)),$chr(47),%cmbf2p,$chr(32),$chr(40),P2P,$chr(47),F2P,$chr(41)))
}



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
}