All pastes #948420 Raw Edit

Mine

public text v1 · immutable
·published 2008-03-19 02:53 UTC
rendered paste body
on *:text:!skill*:#: {
  if (runescript ison $chan || %runescript ison $chan || $chan == #rs) { halt }
  if ($readini(Combatcheck.ini,$chan,$network) == on || $chan == #fireworkingarea) { 
    if ($sock(levels)) sockclose levels
    if ($len($1) == 7 && $right($1,1) isnum) { set %a $right($1,1) }
    if ($len($1) == 8 && $right($1,2) isnum 10-15) { set %a $right($1,2) }
    if ($len($1) == 6) { notice $nick syntex error: !skill(number 1-15) NICK | halt }
    set %levels.nick $2
    set %levels.display msg $chan
    set %color.nick $nick
    sockopen levels www.rscript.org 80 
  }
}
on *:sockopen:levels: { 
  sockwrite -nt $sockname GET /lookup.php?type=stats&user= $+ %levels.nick HTTP/1.1
  sockwrite -nt $sockname Host: www.rscript.org
  sockwrite -nt $sockname $crlf 
}
on *:sockread:levels: {
  if ($sockerr) { %levels.display Error please inform $me about this error | halt
  }
  var %sockreader
  sockread %sockreader 
  if (*stat* iswm %sockreader) { hadd -m levels $remove(%sockreader,STAT:,) }
  if (*STAT: not found* iswm %sockreader) { %levels.display $c1(%levels.nick) $c2(Does not show in the High Scores page.) | sockclose $sockname | halt }
  if (*end* iswm %sockreader) {  
    set %x 2
    set %t 1
    while (%x <= 25) { 
      tokenize 32 $hget(levels,$setskill(%x))
      set %nextlevel $calc($2 + 1)
      if ($2 < 99) {
        set %levels. $+ $setskill(%x) $calc($readini(experiance.ini,skills,%nextlevel) - $3),$chr(173)
      }
      else { set %levels. $+ $setskill(%x) $3 }
      inc %x
    }
    while (%t <= %a) {
      set %levels.to.exp %levels.Attack | set %levels.to Attack
      if (%levels.to.exp >= %levels.Summoning) { set %levels.to.exp %levels.Summoning | set %levels.to Summoning }
      if (%levels.to.exp >= %levels.defence) { set %levels.to.exp %levels.defence | set %levels.to Defence }
      if (%levels.to.exp >= %levels.Hitpoints) { set %levels.to.exp %levels.Hitpoints | set %levels.to Hitpoints }
      if (%levels.to.exp >= %levels.Ranged) { set %levels.to.exp %levels.Ranged | set %levels.to Ranged }
      if (%levels.to.exp >= %levels.Prayer) { set %levels.to.exp %levels.Prayer | set %levels.to Prayer }
      if (%levels.to.exp >= %levels.Magic) { set %levels.to.exp %levels.Magic | set %levels.to Magic }
      if (%levels.to.exp >= %levels.Cooking) { set %levels.to.exp %levels.Cooking | set %levels.to Cooking }
      if (%levels.to.exp >= %levels.Woodcutting) { set %levels.to.exp %levels.Woodcutting | set %levels.to Woodcutting }
      if (%levels.to.exp >= %levels.Fletching) { set %levels.to.exp %levels.Fletching | set %levels.to Fletching }
      if (%levels.to.exp >= %levels.Fishing) { set %levels.to.exp %levels.Fishing | set %levels.to Fishing }
      if (%levels.to.exp >= %levels.Firemaking) { set %levels.to.exp %levels.Firemaking | set %levels.to Firemaking }
      if (%levels.to.exp >= %levels.Crafting) { set %levels.to.exp %levels.Crafting | set %levels.to Crafting }
      if (%levels.to.exp >= %levels.Smithing) { set %levels.to.exp %levels.Smithing | set %levels.to Smithing }
      if (%levels.to.exp >= %levels.Mining) { set %levels.to.exp %levels.Mining | set %levels.to Mining }
      if (%levels.to.exp >= %levels.Herblore) { set %levels.to.exp %levels.Herblore | set %levels.to Herblore }
      if (%levels.to.exp >= %levels.Agility) { set %levels.to.exp %levels.Agility | set %levels.to Agility }
      if (%levels.to.exp >= %levels.Thieving) { set %levels.to.exp %levels.Thieving | set %levels.to Thieving }
      if (%levels.to.exp >= %levels.Slayer) { set %levels.to.exp %levels.Slayer | set %levels.to Slayer }
      if (%levels.to.exp >= %levels.Farming) { set %levels.to.exp %levels.Farming | set %levels.to Farming }
      if (%levels.to.exp >= %levels.Hunter) { set %levels.to.exp %levels.Hunter | set %levels.to Hunter }
      if (%levels.to.exp >= %levels.Runecraft) { set %levels.to.exp %levels.Runecraft | set %levels.to Runecraft }
      if (%levels.to.exp >= %levels.Construction) { set %levels.to.exp %levels.Construction | set %levels.to Construction }
      if (%levels.to.exp >= %levels.Strength) { set %levels.to.exp %levels.strength | set %levels.to strength }
      tokenize 32 $hget(levels,%levels.to)
      set %nextlevel $calc($2 + 1)
      hadd levels %levels.to $1 %nextlevel $readini(experiance.ini,skills,%nextlevel)
      set %levels. $+ %levels.to $calc($readini(experiance.ini,skills,$calc(%nextlevel + 1)) - $readini(experiance.ini,skills,$calc(%nextlevel))),$chr(173)

      set %levels.skill.display %levels.skill.display %t $c1(%levels.to) $+  | set %levels.exp.display %levels.exp.display %t $c1($bytes(%levels.to.exp,b)) $+ 


      inc %t
    }
    %levels.display ***[ $+ $c1(%levels.nick) $+ ]: Closest level up is %levels.skill.display in %levels.exp.display Exp.

    sockclose $sockname | unset %levels.* | hfree levels | unset %a | unset %x | unset %t | unset %nextlevel | unset %color.nick
  }
}
alias -l setskill { 
  if ($regex($1,/^(total|overall)/Si)) || ($1 == 1) { Return Overall } 
  elseif ($regex($1,/^(att|atk|attack)/Si)) || ($1 == 2) { Return Attack } 
  elseif ($regex($1,/^(str|strenth|strength)/Si)) || ($1 == 4) { Return Strength } 
  elseif ($regex($1,/^(def|defend|defence)/Si)) || ($1 == 3) { Return Defence } 
  elseif ($regex($1,/^(hp|hits|hitpoints|hit)/Si)) || ($1 == 5) { Return Hitpoints } 
  elseif ($regex($1,/^(range|ranging|arch|archery|arching)/Si)) || ($1 == 6) { Return Ranged } 
  elseif ($regex($1,/^(pray|prayer|praying)/Si)) || ($1 == 7) { Return Prayer } 
  elseif ($regex($1,/^(mage|magic)/Si)) || ($1 == 8) { Return Magic } 
  elseif ($regex($1,/^(cook|cooking)/Si)) || ($1 == 9) { Return Cooking } 
  elseif ($regex($1,/^(wc|wood|woodcut|woodcutting)/Si)) || ($1 == 10) { Return Woodcutting } 
  elseif ($regex($1,/^(fletch|fletching)/Si)) || ($1 == 11) { Return Fletching } 
  elseif ($regex($1,/^(Fish(ing)?|fishing|fishcatching)/Si)) || ($1 == 12) { Return Fishing } 
  elseif ($regex($1,/^(fm|fire|firemaking)/Si)) || ($1 == 13) { Return Firemaking } 
  elseif ($regex($1,/^(craft|crafting)/Si)) || ($1 == 14) { Return Crafting } 
  elseif ($regex($1,/^(smithing|metalmaking|smith)/Si)) || ($1 == 15) { Return Smithing } 
  elseif ($regex($1,/^(Mine|mining)/Si)) || ($1 == 16) { Return Mining } 
  elseif ($regex($1,/^(Herb|Herblore)/Si)) || ($1 == 17) { Return Herblore } 
  elseif ($regex($1,/^(Agil|agi|Agility)/Si)) || ($1 == 18) { Return Agility } 
  elseif ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) || ($1 == 19) { return Thieving } 
  elseif ($regex($1,/^(slay|slayer)/Si)) || ($1 == 20) { Return Slayer } 
  elseif ($regex($1,/^(farm|Farming|planting)/Si)) || ($1 == 21) { Return Farming } 
  elseif ($regex($1,/^(rune|rc|runecrafting|runecraft)/Si)) || ($1 == 22) { Return Runecraft } 
  elseif ($regex($1,/^(hunt|hunting|hunter)/Si)) || ($1 == 23) { return Hunter } 
  elseif ($regex($1,/^con(scruct)?(tion)?/Si)) || ($1 == 24) { return Construction } 
  elseif ($regex($1,/^(sum|summon|summoning)/Si)) || ($1 == 25) { return Summoning } 
}