combat.base { var %def = $1,%hp = $2,%pray = $3 var %A = $calc(%def * 100) var %B = $calc(%hp * 100) var %C = $iif(*.* iswm $calc(%pray / 2),$calc((%pray -1) * 50),$calc(%pray * 50)) return $calc((%a + %B + %C) / 400) } combat.class { var %att = $1,%str = $2,%range = $3,%mage = $4 var %A = $calc(%att * 130) var %B = $calc(%str * 130) var %C = $iif(*.* iswm $calc(%range / 2),$calc(((%range - 1) + (%range * 2)) * 65),$calc(%range * 195)) var %D = $iif(*.* iswm $calc(%mage / 2),$calc(((%mage - 1) + (%mage * 2)) * 65),$calc(%mage * 195)) var %melee = $calc((%A + %B) / 400) var %range = $calc(%C / 400) var %mage = $calc(%D / 400) return $order(%melee %range %mage) } combat.final { var %base = $combat.base($iif(!$2,1,$2),$iif(!$4,10,$4),$iif(!$5,1,$5)) var %class = $combat.class($iif(!$1,1,$1),$iif(!$3,1,$3),$iif(!$6,1,$6),$iif(!$7,1,$7)) var %combat = $calc(%base + $gettok(%class,1,32)) return %combat } alias c1 { return $+(12,$1-) } alias c2 { return $+(04,$1-) } on *:text:*:#: { tokenize 32 $strip($1-) if ($left($1,1) !isin @!.) halt if ($right($1,-1) == stats) { var %style = astats if ($2 == zezima) { hadd -u10 zezima.flood $+($nick,.,$ticks) 1 if ($hget(zezima.flood,0).item > 6) halt } } elseif ($regex($1,/co?mb(at)?/Si)) var %style = combat elseif ($setskill($remove($1,@,!,.))) var %style = istat, %skill = $setskill($remove($1,@,!,.)) elseif ($right($1,-1) == setname) && ($2) { writeini DefRSN.ini RSNs $mask($fulladdress,3) $replace($2-,$chr(32),-) .notice $nick You're default RSN for the host $mask($fulladdress,3) has been set to $2- halt } else halt inc %ID if ($len($2-) > 12) { $($+(%,stats.display.,%ID),2) $c1(The nick) $c2($2-) $c1(is too long) cleanup %ID halt } elseif ($2) set $+(%,stats.rsn.,%ID) $replace($2-,$chr(32),-) elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,stats.rsn.,%ID) $ifmatch elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,stats.rsn.,%ID) $ifmatch else set $+(%,stats.rsn.,%ID) $nick set $+(%,stats.style.,%ID) %style set $+(%,stats.skill.,%ID) %skill set $+(%,stats.display.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) sockopen $+(stats.,%ID) hiscore.runescape.com 80 } on *:sockopen:stats.*: { var %id = $gettok($sockname,2,46) sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,stats.rsn.,%ID),2) HTTP/1.1 sockwrite -n $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf } on *:sockread:stats.*: { sockread &Incoming bwrite $sockname -1 -1 &Incoming if ($bfind(&Incoming, 1, ).text) makehash $sockname elseif ($bfind(&Incoming, 1, does not feature in the hiscores.).text) { $($+(%,stats.display.,%ID),2) $c1(The nick) $c2($($+(%,stats.rsn.,%ID),2)) $c1(Does not appear in the hiscores) cleanup $gettok($sockname,2,46) } } alias -l makehash { var %file = $1 bread %file 1 $file(%file).size &stats var %currentstat, %x = 1 while (%x) { var %x = $bfind(&stats,$calc(%x + 1),