All pastes #898230 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-02-10 04:31 UTC
rendered paste body
menu * {
  Combat Dialog { 
    /dialog -m Combat Combat
  }
}
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 16 10, read
  text "|", 23, 62 77 25 8, center
  text "P2P level:", 24, 93 77 28 8, center
  edit "", 25, 124 77 16 10, read
  button "Look up", 26, 41 21 58 9, flat
}
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
}
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
}