All pastes #900326 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-02-11 20:47 UTC
rendered paste body
on $*:TEXT:/^[!@]/Si:#:{
  if ($skill($remove($1,!,@))) {
    var %r = $rand(1,999999999)
    if ($2) && ($chr(35) !isin $2) && (!$3) {
      set %rsname. [ $+ [ %r ] ] $2
    }
    elseif ($2) && ($chr(35) isin $2) && ($3) && ($chr(35) !isin $3) {
      set %rsname. [ $+ [ %r ] ] $3
      set %rsgoal. [ $+ [ %r ] ] $remove($2,$chr(35))
    }
    elseif ($2) && ($chr(35) !isin $2) && ($3) && ($chr(35) isin $3) {
      set %rsname. [ $+ [ %r ] ] $2
      set %rsgoal. [ $+ [ %r ] ] $remove($3,$chr(35))
    }
    elseif (!$2) {
      set %rsname. [ $+ [ %r ] ] $iif($readini(defnames.ini,n,Defnames,$address($nick,2)),$v1,$nick)
    }
    elseif ($2) && ($chr(35) isin $2) && (!$3) {
      set %rsname. [ $+ [ %r ] ] $iif($readini(defnames.ini,n,Defnames,$address($nick,2)),$v1,$nick)
      set %rsgoal. [ $+ [ %r ] ] $remove($2,$chr(35))
    }
    sockopen SkillStats. [ $+ [ %r ] ] hiscore.runescape.com 80
    sockmark SkillStats. [ $+ [ %r ] ] $+($iif($left($1,1) == !,notice $nick,msg $chan),~,%rsname. [ $+ [ %r ] ],~,$iif(%rsgoal. [ $+ [ %r ] ] == $null,None,%rsgoal. [ $+ [ %r ] ]),~,$skill($remove($1,@,!)))
  }
}
on *:SOCKOPEN:SkillStats.*:{
  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:SkillStats.*:{ 
  var %r = $gettok($sockname,2,$asc(.))
  var %Way $gettok($sock($sockname).mark,1,126)
  var %User $gettok($sock($sockname).mark,2,126)
  var %Skill $gettok($sock($sockname).mark,4,126)
  if ($sockerr) { cleanup %r | sockclose $sockname | halt }
  else {
    var %SkillStats
    sockread %SkillStats
    if (*404 - Page not found* iswm %SkillStats) {
      %Way $+(¤¤[,$c12($upper(%Skill)),]¤¤) $+(",$c12(%User),") does not appear on Runescape 12Highscores for $c12($lower(%Skill)) skill.
      cleanup %r
      sockclose $sockname
      halt
    }
    else {
      if (*,*,* iswm %SkillStats) {
        set %TehStats. [ $+ [ %r ] ] %TehStats. [ $+ [ %r ] ] $gettok(%SkillStats,2,44)
        set %TehXp. [ $+ [ %r ] ] %TehXp. [ $+ [ %r ] ] $gettok(%SkillStats,3,44)
        set %TehRank. [ $+ [ %r ] ] %TehRank. [ $+ [ %r ] ] $gettok(%SkillStats,1,44)
      }
    }
  }
}

on *:SOCKCLOSE:SkillStats.*:{
  var %r = $gettok($sockname,2,$asc(.))
  var %Way $gettok($sock($sockname).mark,1,126)
  var %User $gettok($sock($sockname).mark,2,126)
  var %level. [ $+ [ %r ] ] $level
  var %Goal $iif($gettok($sock($sockname).mark,3,126) == None,$calc(%level. [ $+ [ %r ] ] + 1),$gettok($sock($sockname).mark,3,126))
  var %Skill $gettok($sock($sockname).mark,4,126)
  if (%Goal < %level. [ $+ [ %r ] ]) && (%Skill != overall) {
    %way $+(¤¤[,$c12($upper(%Skill)),]¤¤) You must set a 12goal higher than the 12level.
    cleanup %r
    sockclose $sockname
    halt
  }
  else {
    var %tehexp $exp
    var %percent99 $calc(%tehexp * 100)
    var %realpercent $calc(%percent99 / 13034431)
    var %calc. [ $+ [ %r ] ] $calc($goal - $exp)
    %Way $+(¤¤[,$c12($upper(%Skill)),]¤¤) Stats for $+([,$c12($lower(%User)),],$chr(44)) level: $c12($level) $chr(124) Rank: $c12($rank) $chr(124) Exp: $c12($bytes($exp,db)) $iif(%Skill != overall,$+([,$c12($round(%realpercent,1)),%,$chr(32),of lvl 99])) $+($iif(%Skill != overall,$iif($level != 99,$+($chr(124),$chr(32),Exp until next lvl:,$chr(32),$c12($bytes(%calc. [ $+ [ %r ] ],db))))))
    cleanup %r
  }
}
alias -l cleanup { 
  unset %rsname. [ $+ [ $1 ] ] 
  unset %rsgoal. [ $+ [ $1 ] ]  
  unset %TehStats. [ $+ [ $1 ] ]
  unset %TehRank. [ $+ [ $1 ] ]
  unset %TehXp. [ $+ [ $1 ] ]
} 
alias -l c12 return $+($chr(3),12,$1-,$chr(3))
alias -1 skill { 
  if ($1 == overall) { return Overall } 
  if ($1 == attack || $1 == att || $1 == attk) { return Attack } 
  if ($1 == def || $1 == defence) { return Defence } 
  if ($1 == str || $1 == strength) { return Strength } 
  if ($1 == hp || $1 == hitpoints || $1 == hits) { return Hitpoints } 
  if ($1 == range || $1 == ranged || $1 == ranging) { return Ranged } 
  if ($1 == pray || $1 == prayer || $1 == praying) { return Prayer } 
  if ($1 == mage || $1 == magic) { return Magic } 
  if ($1 == cook || $1 == cooking) { return Cooking } 
  if ($1 == wc || $1 == wcing || $1 == woodcut || $1 == woodcutting) { return Woodcutting } 
  if ($1 == fletch || $1 == fletching) { return Fletching } 
  if ($1 == fishing || $1 == fish) { return Fishing } 
  if ($1 == fm || $1 == firemaking) { return Firemaking } 
  if ($1 == craft || $1 == crafting) { return Crafting } 
  if ($1 == smith || $1 == smithing) { return Smithing } 
  if ($1 == mining) { return Mining } 
  if ($1 == herb || $1 == herblore) { return Herblore } 
  if ($1 == agility || $1 == agil || $1 == agi) { return Agility } 
  if ($1 == thiev || $1 == thieving) { return Thieving } 
  if ($1 == slay || $1 == slaying || $1 == slayer) { return Slayer } 
  if ($1 == farm || $1 == farming) { return Farming } 
  if ($1 == rc || $1 == runecraft || $1 == runecrafting) { return Runecraft } 
  if ($1 == construct || $1 == con || $1 == cons || $1 == construction) { return Construction } 
  if ($1 == hunt || $1 == hunter || $1 == hunting) { return Hunter } 
  if ($1 == summ || $1 == sum || $1 == summo || $1 == summon || $1 == summoning) { return Summoning } 
} 
alias rank {
  var %r = $gettok($sockname,2,$asc(.))
  var %Skill $gettok($sock($sockname).mark,4,126)
  tokenize 32 %TehRank. [ $+ [ %r ] ]
  if (%Skill == overall) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],1,32),db) } 
  if (%Skill == attack) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],2,32),db) }
  if (%Skill == defence) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],3,32),db) }
  if (%Skill == strength) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],4,32),db) }
  if (%Skill == hitpoints) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],5,32),db) }
  if (%Skill == ranged) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],6,32),db) }
  if (%Skill == prayer) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],7,32),db) }
  if (%Skill == magic) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],8,32),db) }
  if (%Skill == cooking) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],9,32),db) }
  if (%Skill == woodcutting) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],10,32),db) }
  if (%Skill == fletching) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],11,32),db) }
  if (%Skill == fishing) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],12,32),db) }
  if (%Skill == firemaking) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],13,32),db) }
  if (%Skill == crafting) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],14,32),db) }
  if (%Skill == smithing) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],15,32),db) }
  if (%Skill == mining) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],16,32),db) }
  if (%Skill == herblore) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],17,32),db) }
  if (%Skill == agility) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],18,32),db) }
  if (%Skill == thieving) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],19,32),db) }
  if (%Skill == slayer) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],20,32),db) }
  if (%Skill == farming) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],21,32),db) }
  if (%Skill == runecraft) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],22,32),db) }
  if (%Skill == construction) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],23,32),db) }
  if (%Skill == hunter) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],24,32),db) }
  if (%Skill == slayer) { return $bytes($gettok(%TehRank. [ $+ [ %r ] ],25,32),db) }
}
alias level {
  var %r = $gettok($sockname,2,$asc(.))
  var %Skill $gettok($sock($sockname).mark,4,126)
  tokenize 32 %TehStats. [ $+ [ %r ] ]
  if (%Skill == overall) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],1,32),db) }
  if (%Skill == attack) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],2,32),db) }
  if (%Skill == defence) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],3,32),db) }
  if (%Skill == strength) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],4,32),db) }
  if (%Skill == hitpoints) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],5,32),db) }
  if (%Skill == ranged) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],6,32),db) }
  if (%Skill == prayer) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],7,32),db) }
  if (%Skill == magic) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],8,32),db) }
  if (%Skill == cooking) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],9,32),db) }
  if (%Skill == woodcutting) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],10,32),db) }
  if (%Skill == fletching) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],11,32),db) }
  if (%Skill == fishing) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],12,32),db) }
  if (%Skill == firemaking) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],13,32),db) }
  if (%Skill == crafting) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],14,32),db) }
  if (%Skill == smithing) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],15,32),db) }
  if (%Skill == mining) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],16,32),db) }
  if (%Skill == herblore) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],17,32),db) }
  if (%Skill == agility) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],18,32),db) }
  if (%Skill == thieving) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],19,32),db) }
  if (%Skill == slayer) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],20,32),db) }
  if (%Skill == farming) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],21,32),db) }
  if (%Skill == runecraft) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],22,32),db) }
  if (%Skill == construction) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],23,32),db) }
  if (%Skill == hunter) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],24,32),db) }
  if (%Skill == slayer) { return $bytes($gettok(%TehStats. [ $+ [ %r ] ],25,32),db) }
}
alias exp {
  var %r = $gettok($sockname,2,$asc(.))
  var %Skill $gettok($sock($sockname).mark,4,126)
  tokenize 32 %TehXp. [ $+ [ %r ] ]
  if (%Skill == overall) { return $gettok(%TehXp. [ $+ [ %r ] ],1,32) }
  if (%Skill == attack) { return $gettok(%TehXp. [ $+ [ %r ] ],2,32) }
  if (%Skill == defence) { return $gettok(%TehXp. [ $+ [ %r ] ],3,32) }
  if (%Skill == strength) { return $gettok(%TehXp. [ $+ [ %r ] ],4,32) }
  if (%Skill == hitpoints) { return $gettok(%TehXp. [ $+ [ %r ] ],5,32) }
  if (%Skill == ranged) { return $gettok(%TehXp. [ $+ [ %r ] ],6,32) }
  if (%Skill == prayer) { return $gettok(%TehXp. [ $+ [ %r ] ],7,32) }
  if (%Skill == magic) { return $gettok(%TehXp. [ $+ [ %r ] ],8,32) }
  if (%Skill == cooking) { return $gettok(%TehXp. [ $+ [ %r ] ],9,32) }
  if (%Skill == woodcutting) { return $gettok(%TehXp. [ $+ [ %r ] ],10,32) }
  if (%Skill == fletching) { return $gettok(%TehXp. [ $+ [ %r ] ],11,32) }
  if (%Skill == fishing) { return $gettok(%TehXp. [ $+ [ %r ] ],12,32) }
  if (%Skill == firemaking) { return $gettok(%TehXp. [ $+ [ %r ] ],13,32) }
  if (%Skill == crafting) { return $gettok(%TehXp. [ $+ [ %r ] ],14,32) }
  if (%Skill == smithing) { return $gettok(%TehXp. [ $+ [ %r ] ],15,32) }
  if (%Skill == mining) { return $gettok(%TehXp. [ $+ [ %r ] ],16,32) }
  if (%Skill == herblore) { return $gettok(%TehXp. [ $+ [ %r ] ],17,32) }
  if (%Skill == agility) { return $gettok(%TehXp. [ $+ [ %r ] ],18,32) }
  if (%Skill == thieving) { return $gettok(%TehXp. [ $+ [ %r ] ],19,32) }
  if (%Skill == slayer) { return $gettok(%TehXp. [ $+ [ %r ] ],20,32) }
  if (%Skill == farming) { return $gettok(%TehXp. [ $+ [ %r ] ],21,32) }
  if (%Skill == runecraft) { return $gettok(%TehXp. [ $+ [ %r ] ],22,32) }
  if (%Skill == construction) { return $gettok(%TehXp. [ $+ [ %r ] ],23,32) }
  if (%Skill == hunter) { return $gettok(%TehXp. [ $+ [ %r ] ],24,32) }
  if (%Skill == slayer) { return $gettok(%TehXp. [ $+ [ %r ] ],25,32) }
}

alias -l c12 return $+($chr(3),12,$1-,$chr(3)) 
alias goal {
  var %r = $gettok($sockname,2,$asc(.))
  var %Goal $iif($gettok($sock($sockname).mark,3,126) == None,$calc($level + 1),$gettok($sock($sockname).mark,3,126))
  if (%Goal == 1) return 0
  elseif (%Goal == 2) return 83
  elseif (%Goal == 3) return 174
  elseif (%Goal == 4) return 276
  elseif (%Goal == 5) return 388
  elseif (%Goal == 6) return 512
  elseif (%Goal == 7) return 650
  elseif (%Goal == 8) return 801
  elseif (%Goal == 9) return 969
  elseif (%Goal == 10) return 1154
  elseif (%Goal == 11) return 1358
  elseif (%Goal == 12) return 1584
  elseif (%Goal == 13) return 1833
  elseif (%Goal == 14) return 2107
  elseif (%Goal == 15) return 2411
  elseif (%Goal == 16) return 2746
  elseif (%Goal == 17) return 3115
  elseif (%Goal == 18) return 3523
  elseif (%Goal == 19) return 3973
  elseif (%Goal == 20) return 4470
  elseif (%Goal == 21) return 5018
  elseif (%Goal == 22) return 5624
  elseif (%Goal == 23) return 6291
  elseif (%Goal == 24) return 7028
  elseif (%Goal == 25) return 7842
  elseif (%Goal == 26) return 8740
  elseif (%Goal == 27) return 9730
  elseif (%Goal == 28) return 10824
  elseif (%Goal == 29) return 12031
  elseif (%Goal == 30) return 13363
  elseif (%Goal == 31) return 14833
  elseif (%Goal == 32) return 16456
  elseif (%Goal == 33) return 18247
  elseif (%Goal == 34) return 20224
  elseif (%Goal == 35) return 22406
  elseif (%Goal == 36) return 24815
  elseif (%Goal == 37) return 27473
  elseif (%Goal == 38) return 30408
  elseif (%Goal == 39) return 33648
  elseif (%Goal == 40) return 37224
  elseif (%Goal == 41) return 41171
  elseif (%Goal == 42) return 45529
  elseif (%Goal == 43) return 50339
  elseif (%Goal == 44) return 55649
  elseif (%Goal == 45) return 61512
  elseif (%Goal == 46) return 67983
  elseif (%Goal == 47) return 75127
  elseif (%Goal == 48) return 83014
  elseif (%Goal == 49) return 91721
  elseif (%Goal == 50) return 101333
  elseif (%Goal == 51) return 111945
  elseif (%Goal == 52) return 123660
  elseif (%Goal == 53) return 136594
  elseif (%Goal == 54) return 150872
  elseif (%Goal == 55) return 166636
  elseif (%Goal == 56) return 184040
  elseif (%Goal == 57) return 203254
  elseif (%Goal == 58) return 224466
  elseif (%Goal == 59) return 247886
  elseif (%Goal == 60) return 273742
  elseif (%Goal == 61) return 302288
  elseif (%Goal == 62) return 333804
  elseif (%Goal == 63) return 368599
  elseif (%Goal == 64) return 407015
  elseif (%Goal == 65) return 449428
  elseif (%Goal == 66) return 496254
  elseif (%Goal == 67) return 547953
  elseif (%Goal == 68) return 605032
  elseif (%Goal == 69) return 668051
  elseif (%Goal == 70) return 737627
  elseif (%Goal == 71) return 814445
  elseif (%Goal == 72) return 899257
  elseif (%Goal == 73) return 992895
  elseif (%Goal == 74) return 1096278
  elseif (%Goal == 75) return 1210421
  elseif (%Goal == 76) return 1336443
  elseif (%Goal == 77) return 1475581
  elseif (%Goal == 78) return 1629200
  elseif (%Goal == 79) return 1798808
  elseif (%Goal == 80) return 1986068
  elseif (%Goal == 81) return 2192818
  elseif (%Goal == 82) return 2421087
  elseif (%Goal == 83) return 2673114
  elseif (%Goal == 84) return 2951373
  elseif (%Goal == 85) return 3258594
  elseif (%Goal == 86) return 3597792
  elseif (%Goal == 87) return 3972294
  elseif (%Goal == 88) return 4385776
  elseif (%Goal == 89) return 4842295
  elseif (%Goal == 90) return 5346332
  elseif (%Goal == 91) return 5902831
  elseif (%Goal == 92) return 6517253
  elseif (%Goal == 93) return 7195629
  elseif (%Goal == 94) return 7944614
  elseif (%Goal == 95) return 8771558
  elseif (%Goal == 96) return 9684577
  elseif (%Goal == 97) return 10692629
  elseif (%Goal == 98) return 11805606
  elseif (%Goal == 99) return 13034431
}