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 }