All pastes #357268 Raw Edit

Untitled

public text v1 · immutable
·published 2007-02-15 15:56 UTC
rendered paste body
on *:SOCKOPEN:stats.*: {
  var %bleh = $gettok($sockname,2,46)
  if ($sockerr) {
    .echo 4 -s Error while connecting to the stats page: $sock($sockname).wsmsg
    return
  }
  .sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $hget($($+(u,%bleh),2),user) HTTP/1.1
  .sockwrite -n $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:stats.*: {
  var %bleh = $gettok($sockname,2,46)
  if ($sockerr) {
    echo 4 -s Error while reading the stats: $crlf $sock($sockname).wsmsg
    return
  }
  .sockread %RSStats
  if ($+(*,$hget($($+(u,%bleh),2),user),*,not feature in the,*) iswm %RSStats) {
    $($hget($($+(u,%bleh),2),display),2) $s1(The user) $s2($hget($($+(u,%bleh),2),user)) $s1(doesn't appear in the hiscores.)
    .sockclose $sockname
    halt
  }
  if ($($+(%,RSSslvl.,%bleh),2) && !$($+(%,RSSsexp.,%bleh),2) && $($+(%,RSSsread.,%bleh),2) == 3) { .set %RSSsexp. $+ %bleh $nohtml(%RSStats) }
  if ($($+(%,RSSsrank.,%bleh),2) && !$($+(%,RSSslvl.,%bleh),2) && $($+(%,RSSsread.,%bleh),2) == 3) { .set %RSSslvl. $+ %bleh $nohtml(%RSStats) }
  if ($($+(%,RSSsskill.,%bleh),2) && !$($+(%,RSSsrank.,%bleh),2) && $($+(%,RSSsread.,%bleh),2) == 3) { .set %RSSsrank. $+ %bleh $nohtml(%RSStats) }
  if ($($+(%,RSSsread.,%bleh),2) == 2) { inc $($+(%,RSSsread.,%bleh),1) 1 }
  if ($($+(%,RSSsread.,%bleh),2) == 1) { .set %RSSsskill. $+ %bleh $nohtml(%RSStats) | inc $($+(%,RSSsread.,%bleh),1) 1 }
  if ($+(*,a href,*,$hget($($+(u,%bleh),2),user),*) iswm %RSStats) { .set %RSSsread. $+ %bleh 1 }
  if (*</tr>* iswm %RSStats && $($+(%,RSSsskill.,%bleh),2)) {
    hadd -m $($+(u,%bleh),2) $($+(%,RSSsskill.,%bleh),2) $($+(%,RSSsrank.,%bleh),2) $($+(%,RSSslvl.,%bleh),2) $($+(%,RSSsexp.,%bleh),2)
    .unset $($+(%,RSSs*.,%bleh),1)
  }
}
on *:SOCKCLOSE:stats.*: {
  var %bleh = $gettok($sockname,2,46)
  .stats.show $($+(u,%bleh),2)
}
alias s1 { return $+($chr(3),$cntn($se(color,stats.base)),$1,$chr(3)) }
alias s2 { return $+($chr(3),$cntn($se(color,stats.secondary)),$1,$chr(3)) }
alias stats.show {
  var %send = $hget($1,display),%send2 = .notice $hget($1,nick),%show = $+($mircdirSkills\,$hget($1,skill),.ini),%skill = $hget($1,skill),%user = $hget($1,user),%hash = $1,%addy = $hget($1,address),%nick = $hget($1,nick)
  var %item = $hget($1,item),%target = $hget($1,target)
  if (*echo* iswm %send) { goto skipnclear }
  if ($hget(%hash,compare)) {
    if ($hget(%hash,completed) == yes) { goto clearup }
    if ($hget($($+(u,$hget(%hash,compare)),2),%skill)) {
      .hadd $($+(u,$hget(%hash,compare))) completed yes
      var %chash = $($+(u,$hget(%hash,compare)))
      $(%send,2) $s1(Comparing) $s2(%user) $s1(and) $s2($hget(%chash,user)) $s1(in) $s2(%skill)
      $(%send,2) $s2(%user) $s1(Rank) $s2($bytes($skill(%hash,%skill).rank,b)) $s1(Level) $s2($bytes($skill(%hash,%skill).lvl,b)) $s1(Exp) $s2($bytes($skill(%hash,%skill).exp,b))
      $(%send,2) $s2($hget(%chash,user)) $s1(Rank) $s2($bytes($skill(%chash,%skill).rank,b)) $s1(Level) $s2($bytes($skill(%chash,%skill).lvl,b)) $s1(Exp) $s2($bytes($skill(%chash,%skill).exp,b))
      if ($skill(%hash,%skill).exp == $skill(%chash,%skill).exp) { $(%send,2) $s2(%user) $s1(and) $s2($hget(%chash,user)) $s1(are at a tie!) }
      if ($skill(%hash,%skill).exp > $skill(%chash,%skill).exp) { $(%send,2) $s2(%user) $s1(is) $s2($bytes($calc($skill(%hash,%skill).lvl - $skill(%chash,%skill).lvl),b)) $s1(levels,) $s2($bytes($calc($skill(%chash,%skill).rank - $skill(%hash,%skill).rank),b)) $s1(ranks and) $s2($bytes($calc($skill(%hash,%skill).exp - $skill(%chash,%skill).exp),b)) $s1(exp ahead of) $s2($hget(%chash,user)) }
      if ($skill(%chash,%skill).exp > $skill(%hash,%skill).exp) { $(%send,2) $s2($hget(%chash,user)) $s1(is) $s2($bytes($calc($skill(%chash,%skill).lvl - $skill(%hash,%skill).lvl),b)) $s1(levels,) $s2($bytes($calc($skill(%hash,%skill).rank - $skill(%chash,%skill).rank),b)) $s1(ranks and) $s2($bytes($calc($skill(%chash,%skill).exp - $skill(%hash,%skill).exp),b)) $s1(exp ahead of) $s2(%user) }
      goto clearup
    }
    else { goto skipnclear }
  }
  if (%skill == Combat) {
    var %cmb = $combat.final($skill(%hash,attack).lvl,$skill(%hash,defence).lvl,$skill(%hash,strength).lvl,$skill(%hash,hitpoints).lvl,$skill(%hash,prayer).lvl,$skill(%hash,ranged).lvl,$skill(%hash,magic).lvl)
    var %cmbc = $calc($iif(*.* !iswm %cmb,$calc(%cmb +1),$ceil(%cmb)) - %cmb)
    $(%send,2) $s1(Name:) $s2(%user) $s1(Combat:) $s2(%cmb) $&
      $s1(Attack) $s2($skill(%hash,attack).lvl) $s1(Defence) $s2($skill(%hash,defence).lvl) $s1(Strength) $s2($skill(%hash,strength).lvl) $s1(HitPoints) $s2($skill(%hash,hitpoints).lvl) $s1(Ranged) $s2($skill(%hash,ranged).lvl) $s1(Magic) $s2($skill(%hash,magic).lvl) $s1(Prayer) $s2($skill(%hash,prayer).lvl)
    $(%send,2) $s1(Levels Left: Attack) $s2($ceil($calc(( %cmbc ) / ( 1 / 3 )))) $&
      $s1(Strength) $s2($ceil($calc(( %cmbc ) / ( 1 / 3 )))) $&
      $s1(Defence) $s2($ceil($calc(( %cmbc ) / ( 1 / 4 )))) $&
      $s1(HitPoints) $s2($ceil($calc(( %cmbc ) / ( 1 / 4 )))) $&
      $s1(Prayer) $s2($ceil($calc(( %cmbc ) / ( 1 / 8 ))))
    goto clearup
  }