All pastes #283442 Raw Edit

Stats-Script

public text v1 · immutable
#283442 ·published 2006-12-18 10:52 UTC
rendered paste body
on $*:text:/^((\[[a-z]{2}\])?Generic )?[@`.,!]*/Si:#GenericDev,#theclan: { 
  if ($hget(disabled,$chan)) && ($1 != $me) halt
  if ($1 == $me) tokenize 32 $2-
  if ($1 != $me) && ($skilltrigger($remove($1,$left($1,1)),check) != yes) halt
  if (!$2) $iif($left($1,1) == @,msg $chan,notice $nick) 14You must specify a04 Username14 to lookup!
  if ($2) {
    if ($len($2-) > 12) notice $nick 14Usernames must be under a length of 12 characters
    if ($len($2-) < 12) {
      inc %statsid 1
      set -u60 %StatsType [ $+ [ %statsid ] ] skill
      set -u60 %skill [ $+ [ %statsid ] ] $skilltrigger($remove($1,$left($1,1)))
      set -u60 %StatsName [ $+ [ %statsid ] ] $replace($2-,$chr(32),$chr(95),$chr(35),$chr(45))
      set -u60 %statsnick [ $+ [ %statsid ] ] $nick
      set -u60 %statschan [ $+ [ %statsid ] ] $chan
      set -u60 %statsmsg [ $+ [ %statsid ] ] $iif($left($1,1) == @,msg $chan,notice $nick)
      sockopen $+(rsstats,%statsid) hiscore.runescape.com 80
    }
  }
}

alias xp {
  var %x = 1, %level = $calc($1 - 1), %xp = 0
  while (%x <= %level) {
    var %TempXp = $calc($floor($calc(%x + 300 * 2 ^ (%x / 7))) / 4)
    inc %xp %TempXp
    inc %x
  }
  if ($prop == format) $bytes($int(%xp),b)
  else return $int(%xp)
}
alias xp2next {
  var %lvl = $1, %xp = $remove($2,$chr(44)), %nextlvl = $calc(%lvl + 1), %nextxp = $xp(%nextlvl)
  if (%lvl >= 99) return -
  elseif ($prop == format) return $bytes($calc(%nextxp - %xp),b)
  else return $calc(%nextxp - %xp)
}




____________________________________________________________________________________________________



on $*:text:/^((\[[a-z]{2}\])?Generic )?[@`.,!]stats */Si:#GenericDev,#theclan: { 
  if ($hget(disabled,$chan)) && ($1 != $me) halt
  if ($1 == $me) tokenize 32 $2-
  if ($1 != $me) && ($remove($1,$left($1,1)) != stats) halt
  if (!$2) $iif($left($1,1) == @,msg $chan,notice $nick) 14You must specify a04 Username14 to lookup!
  if ($2) {
    if ($len($2-) > 12) notice $nick 14Usernames must be under a length of 12 characters
    if ($len($2) < 12) {
      inc %statsid 1
      set -u60 %StatsType [ $+ [ %statsid ] ] Stats
      set -u60 %StatsName [ $+ [ %statsid ] ] $replace($2-,$chr(32),$chr(95),$chr(35),$chr(45))
      set -u60 %statsnick [ $+ [ %statsid ] ] $nick
      set -u60 %statschan [ $+ [ %statsid ] ] $chan
      set -u60 %statsmsg [ $+ [ %statsid ] ] $iif($left($1,1) == @,msg $chan,notice $nick)
      sockopen $+(rsstats,%statsid) hiscore.runescape.com 80
    }
  }
}
on *:SOCKOPEN:Rsstats*:{
  sockwrite -n $sockname GET /hiscorepersonal.ws?user1= $+ %StatsName [ $+ [ $right($sockname,-7) ] ] HTTP/1.1
  sockwrite -n $sockname Host: hiscore.runescape.com $+ $str($crlf,2)
}

on *:SOCKREAD:rsstats*:{
  var %stats.read
  sockread %stats.read
  if (does not feature in the hiscores isin %Stats.read) { 
    %statsmsg [ $+ [ $right($sockname,-7) ] ] $+(04,%StatsName [ $+ [ $right($sockname,-7) ] ]) 14Did not appear in the highscores.
    set -u60 %nubstats [ $+ [ $right($sockname,-7) ] ] yes
  }
  if ($regex(%Stats.read,/(Overall|Attack|Defence|Strength|Hitpoints|Woodcutting|Fletching|Hunter|Construction|Fishing|Cooking|Prayer|Magic|Ranged|Firemaking|Crafting|Smithing|Herblore|Mining|Agility|Thieving|Slayer|Farming|RuneCraft) */iS) == 1) && (<a href !isin %stats.read) && (img !isin %stats.read) && (<form action !isin %stats.read) { 
    set %Statname %Stats.read
  }
  if ((<td align="right"> isin %stats.read && </td> isin %stats.read) && ($remove($htmlfree(%stats.read),$chr(44)) isnum)) || (Not Ranked isin $htmlfree(%stats.read)) {
    if (Not Ranked isin $htmlfree(%stats.read)) {
      if (%Statname == Overall) {
        set %Overall [ $+ [ $right($sockname,-7) ] ] -
      }
      if (%statname == Attack) {
        %message [ $+ [ $right($sockname,-7) ] ] = $+(14,%statname,$chr(58),04,$chr(32),-)
        set -u60 %attack [ $+ [ $right($sockname,-7) ] ] 1
      }
      if (%statname != Attack && %statname != Overall) {
        %data = %message [ $+ [ $right($sockname,-7) ] ] $+(14,%statname,$chr(58),04,$chr(32),-)
        %message [ $+ [ $right($sockname,-7) ] ] = %data
      }
      set -u60 $+(%,%statname,$right($sockname,-7)) 1
    }
    if (%id [ $+ [ %statname ] $+ [ $right($sockname,-7) ] ] == 2) {
      set -u30 $+(%,xp,%statname,$right($sockname,-7)) $htmlfree(%stats.read)
    }    
    if (%id [ $+ [ %statname ] $+ [ $right($sockname,-7) ] ] == 1) {
      set -u30 $+(%,%statname,$right($sockname,-7)) $htmlfree(%stats.read)
      if (%statname == attack) {
        %message [ $+ [ $right($sockname,-7) ] ] = $+(14,%statname,$chr(58),04,$chr(32),$htmlfree(%stats.read))
      }
      if (%statname != attack && %STatname != Overall) {
        %data = %message [ $+ [ $right($sockname,-7) ] ] $+(14,%statname,$chr(58),04,$chr(32),$htmlfree(%stats.read))
        %message [ $+ [ $right($sockname,-7) ] ] = %data
      }
      inc %id [ $+ [ %statname ] $+ [ $right($sockname,-7) ] ] 1
    }
    if (!%id [ $+ [ %statname ] $+ [ $right($sockname,-7) ] ]) {
      set -u30 $+(%,rank,%statname,$right($sockname,-7)) $htmlfree(%stats.read)
      set -u10 %id [ $+ [ %statname ] $+ [ $right($sockname,-7) ] ] 1
    }
  }
}
on *:sockclose:Rsstats*: {
  if (%nubstats [ $+ [ $right($sockname,-7) ] ]) halt
  else {
    var %def = $calc(%defence [ $+ [ $right($sockname,-7) ] ] * 100)
    var %hp = $calc(%hitpoints [ $+ [ $right($sockname,-7) ] ] * 100)
    var %base = $calc(($calc(%defence [ $+ [ $right($sockname,-7) ] ] * 100) + $calc(%hitpoints [ $+ [ $right($sockname,-7) ] ] * 100) + $iif($regex($right(%prayer [ $+ [ $right($sockname,-7) ] ],1),[02468]),$calc(%prayer [ $+ [ $right($sockname,-7) ] ] * 50),$calc((%prayer [ $+ [ $right($sockname,-7) ] ] - 1) * 50))) / 400)
    var %melee = $calc(($calc(%attack [ $+ [ $right($sockname,-7) ] ] * 130) + $calc(%strength [ $+ [ $right($sockname,-7) ] ] * 130)) / 400)
    var %ranger = $calc($iif($regex($right(%ranged [ $+ [ $right($sockname,-7) ] ],1),[02468]),$calc(%ranged [ $+ [ $right($sockname,-7) ] ] * 195),$calc((%ranged [ $+ [ $right($sockname,-7) ] ] * 195) - 65)) / 400)
    var %mage = $calc($iif($regex($right(%magic [ $+ [ $right($sockname,-7) ] ],1),[02468]),$calc(%magic [ $+ [ $right($sockname,-7) ] ] * 195),$calc((%magic [ $+ [ $right($sockname,-7) ] ] * 195) - 65)) / 400)
    if (%melee > %ranger) && (%melee > %mage) {
      var %style = Melee
      var %combat = $calc(%melee + %base)
    }
    if (%ranger > %melee) && (%ranger > %mage) {
      var %style = Ranger
      var %combat = $calc(%ranger + %base)
    }
    if (%mage > %melee) && (%mage > %ranger) {
      var %style = Mage
      var %combat = $calc(%mage + %base)
    }
    else {
      var %style = Melee
      var %combat = $calc(%melee + %base)
    }
    if (%StatsType [ $+ [ $right($sockname,-7) ] ] == Stats) {
      %statsmsg [ $+ [ $right($sockname,-7) ] ] 14Stats for04 $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) 14- Overall14:04 %Overall [ $+ [ $right($sockname,-7) ] ] 14Combat:04 %combat
      %statsmsg [ $+ [ $right($sockname,-7) ] ] %message [ $+ [ $right($sockname,-7) ] ]   
      unset %message [ $+ [ $right($sockname,-7) ] ]
      unset %id* [ $+ [ $right($sockname,-7) ] ]
    }
    if (%StatsType [ $+ [ $right($sockname,-7) ] ] == cmb) {
      %statsmsg [ $+ [ $right($sockname,-7) ] ] 14Name:04 $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) 14Combat:04 %combat 14(04 $+ %Style Based14)
      %statsmsg [ $+ [ $right($sockname,-7) ] ] 14Att:04 %Attack [ $+ [ $right($sockname,-7) ] ] 14Def:04 %Defence [ $+ [ $right($sockname,-7) ] ] 14Str:04 %Strength [ $+ [ $right($sockname,-7) ] ] 14Hits:04 %hitpoints [ $+ [ $right($sockname,-7) ] ] 14Range:04 %ranged [ $+ [ $right($sockname,-7) ] ] 14Pray:04 %Prayer [ $+ [ $right($sockname,-7) ] ] 14Mage:04 %magic [ $+ [ $right($sockname,-7) ] ]
    }
    if (%StatsType [ $+ [ $right($sockname,-7) ] ] == skill) {
      %skill = %skill [ $+ [ $right($sockname,-7) ] ]
      %statsmsg [ $+ [ $right($sockname,-7) ] ] 14 $+ %skill [ $+ [ $right($sockname,-7) ] ] for04 $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) $+ 14:
      %statsmsg [ $+ [ $right($sockname,-7) ] ] 14Rank:04 %rank [ $+ [ %skill ] $+ [ $right($sockname,-7) ] ] 14Level:04 $($+(%,%skill,$right($sockname,-7)),2) 14XP:04 $($+(%,xp,%skill,$right($sockname,-7)),2) 14XP To Next Level:04 $bytes($xp2next($($+(%,%skill,$right($sockname,-7)),2),$($+(%,xp,%skill,$right($sockname,-7)),2)),db)
    }
    if (%StatsType [ $+ [ $right($sockname,-7) ] ] == Percent) {
      %cmbxp = $calc($do($($+(%,xp,Attack,$right($sockname,-7)),2)) + $do($($+(%,xp,Strength,$right($sockname,-7)),2)) + $do($($+(%,xp,Defence,$right($sockname,-7)),2)) + $do($($+(%,xp,Hitpoints,$right($sockname,-7)),2)) + $do($($+(%,xp,Prayer,$right($sockname,-7)),2)) + $do($($+(%,xp,Ranged,$right($sockname,-7)),2)) + $do($($+(%,xp,magic,$right($sockname,-7)),2)))
      %noncmbxp = $calc($do($($+(%,xp,Overall,$right($sockname,-7)),2)) - %cmbxp)
      %statsmsg [ $+ [ $right($sockname,-7) ] ] 14Combat Percent for:04 $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) $+ 14:
      %statsmsg [ $+ [ $right($sockname,-7) ] ] 14Cmb Based XP:04 $bytes(%cmbxp,db) 14Non-Cmb Based XP:04 $bytes(%noncmbxp,db) 14Cmb Percent:04 $round($calc((%cmbxp / $do($($+(%,xp,Overall,$right($sockname,-7)),2)) )*100),2) $+ $chr(37)
    }
    if (%StatsType [ $+ [ $right($sockname,-7) ] ] == PestControl) {
      if (!%pcgoal [ $+ [ $right($sockname,-7) ] ]) {
        %nextlevel = $xp2next($do($($+(%,%skill,$right($sockname,-7)),2)),$($+(%,xp,%skill,$right($sockname,-7)),2))
        %skill = %skill [ $+ [ $right($sockname,-7) ] ]
        %pcpoints = $pest($($+(%,%skill,$right($sockname,-7)),2),%skill,$calc($($+(%,%skill,$right($sockname,-7)),2) +1),%nextlevel)
        %statsmsg [ $+ [ $right($sockname,-7) ] ] 04 $+ $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) 14needs04 $calc($remove(%pcpoints,$left(%pcpoints,1)) +1) 14PestControl Points for04 $iif(%PcGoal [ $+ [ $right($sockname,-7) ] ],%PcGoal [ $+ [ $right($sockname,-7) ] ],$calc($do($($+(%,%skill,$right($sockname,-7)),2)) +1)) 14 $+ %skill [ $+ [ $right($sockname,-7) ] ]
      }
      if (%pcgoal [ $+ [ $right($sockname,-7) ] ]) {
        %nextlevel = $calc($xp(%pcgoal [ $+ [ $right($sockname,-7) ] ]) - $do($($+(%,xp,%skill,$right($sockname,-7)),2)))
        %skill = %skill [ $+ [ $right($sockname,-7) ] ]
        %pcpoints = $pest($do($($+(%,%skill,$right($sockname,-7)),2)),%skill,%pcgoal [ $+ [ $right($sockname,-7) ] ],%nextlevel))
        %statsmsg [ $+ [ $right($sockname,-7) ] ] 04 $+ $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) 14needs04 $remove(%pcpoints,$left(%pcpoints,1)) 14PestControl Points for04 %pcgoal [ $+ [ $right($sockname,-7) ] ] 14 $+ %skill [ $+ [ $right($sockname,-7) ] ]
      }
    }
  }
}
alias -l htmlfree {
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
  return %x
}

on $*:text:/^((\[[a-z]{2}\])?Generic )?[@`.,!](cmb|combat)*/Si:#GenericDev,#theclan: { 
  if ($hget(disabled,$chan)) && ($1 != $me) halt
  if ($1 == $me) tokenize 32 $2-
  if ($remove($1,$left($1,1)) == cmb-est) halt
  if ($1 != $me) && ($regex($remove($1,$left($1,1)),/(cmb|combat|cmb%)/i) != 1)  halt
  if (!$2) $iif($left($1,1) == @,msg $chan,notice $nick) 14You must specify a04 Username14 to lookup!
  if ($2) {
    if ($len($2-) > 12) notice $nick 14Usernames must be under a length of 12 characters
    if ($len($2) < 12) {
      inc %statsid 1
      set -u60 %StatsType [ $+ [ %statsid ] ] $iif($right($1,1) == $chr(37),Percent,Cmb)
      set -u60 %StatsName [ $+ [ %statsid ] ] $replace($2-,$chr(32),$chr(95),$chr(35),$chr(45))
      set -u60 %statsnick [ $+ [ %statsid ] ] $nick
      set -u60 %statschan [ $+ [ %statsid ] ] $chan
      set -u60 %statsmsg [ $+ [ %statsid ] ] $iif($left($1,1) == @,msg $chan,notice $nick)
      sockopen $+(rsstats,%statsid) hiscore.runescape.com 80
    }
  }
}

alias SkillTrigger {
  if ($regex($1,/^(st|(skill)?total|overall)$/Si)) $iif($2,return yes,return Overall)
  elseif ($regex($1,/^at(t|k|tack)$/Si)) $iif($2,return yes,return Attack) 
  elseif ($regex($1,/^def(en[cs]e)?$$/Si)) $iif($2,return yes,return Defence) 
  elseif ($regex($1,/^str(ength)?$/Si)) $iif($2,return yes,return Strength) 
  elseif ($regex($1,/^hp|hits(points)??$/Si)) $iif($2,return yes,return Hitpoints) 
  elseif ($regex($1,/^range(r|d|ing)?$/Si)) $iif($2,return yes,return Ranged) 
  elseif ($regex($1,/^Pray(er)?$$/Si)) $iif($2,return yes,return Prayer) 
  elseif ($regex($1,/^mag(e|ic)$$/Si)) $iif($2,return yes,return Magic) 
  elseif ($regex($1,/^cook(ing)?$/Si)) $iif($2,return yes,return Cooking) 
  elseif ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) $iif($2,return yes,return Woodcutting) 
  elseif ($regex($1,/^fletch(ing)?$/Si)) $iif($2,return yes,return Fletching) 
  elseif ($regex($1,/^fish(ing)?$/Si)) $iif($2,return yes,return Fishing) 
  elseif ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) $iif($2,return yes,return Firemaking) 
  elseif ($regex($1,/^craft(ing)?$/Si)) $iif($2,return yes,return Crafting) 
  elseif ($regex($1,/^(smith|smelt)(ing)?$/Si)) $iif($2,return yes,return Smithing) 
  elseif ($regex($1,/^(mine|Mining)$/Si)) $iif($2,return yes,return Mining) 
  elseif ($regex($1,/^herb(law|lore)?$/Si)) $iif($2,return yes,return Herblore) 
  elseif ($regex($1,/^agil(ity)?$/Si)) $iif($2,return yes,return Agility)
  elseif ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) $iif($2,return yes,return Thieving) 
  elseif ($regex($1,/^slay(er|ing)?$/Si)) $iif($2,return yes,return Slayer)
  elseif ($regex($1,/^farm(er|ing)?$/Si)) $iif($2,return yes,return Farming)
  elseif ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) $iif($2,return yes,return Runecraft) 
  elseif ($regex($1,/^cons(truct(ion)?)?$/Si)) $iif($2,return yes,return Construction)
  elseif ($regex($1,/^hunt(er|ing)?$/Si)) $iif($2,return yes,return Hunter)
}

alias -l do {
  return $remove($1,$chr(44))
}



____________________________________________________________________________________________________


alias pest {
  var %exp $iif($2 != Prayer,$calc(($1 ^2)/6),$calc(($1 ^2)/12)), %xp.diff $calc($exp($3) - $4), %point $calc(%xp.diff / %exp)
  if (%point >= 100) { var %point $calc(%xp.diff / ((%exp * 0.1)+ %exp)) }
  return $gettok(%point,1,46)
} 

on $*:text:/^((\[[a-z]{2}\])?Generic )?[@`.,!](Pest|pc)*/Si:#GenericDev,#theclan: { 
  if ($hget(disabled,$chan)) && ($1 != $me) halt
  if ($1 == $me) tokenize 32 $2-
  if ($1 != $me) && ($regex($remove($1,$left($1,1)),/(Pc|Pest)/i) != 1) halt
  if (!$2) $iif($left($1,1) == @,msg $chan,notice $nick) 14You must specify a04 Username14 to lookup!
  if ($2) {
    if ($len($2-) > 12) notice $nick 14Usernames must be under a length of 12 characters
    if ($len($2-) < 12) {
      inc %statsid 1
      set -u60 %StatsType [ $+ [ %statsid ] ] PestControl
      set -u60 %StatsName [ $+ [ %statsid ] ] $replace($2-,$chr(32),$chr(95),$chr(35),$chr(45))
      set -u60 %statsnick [ $+ [ %statsid ] ] $nick
      set -u60 %statschan [ $+ [ %statsid ] ] $chan
      set -u60 %statsmsg [ $+ [ %statsid ] ] $iif($left($1,1) == @,msg $chan,notice $nick)
      sockopen $+(rsstats,%statsid) hiscore.runescape.com 80
    }
  }
}


____________________________________________________________________________________________________



on $*:text:/^((\[[a-z]{2}\])?Generic )?[@`.,!](cmb|combat)*/Si:#GenericDev,#theclan: { 
  if ($hget(disabled,$chan)) && ($1 != $me) halt
  if ($1 == $me) tokenize 32 $2-
  if ($1 != $me) && ($remove($1,$left($1,1)) != cmb-est)  halt
  if (!$8) $iif($left($1,1) == @,msg $chan,notice $nick) 14Estimates of stats must be in the format of 04A-D-S-H-R-P-M14.
  if ($2) {
    var %a = $2
    var %d = $3
    var %s = $4
    var %h = $5
    var %r = $6
    var %p = $7
    var %m = $8
    var %def = $calc($3 * 100)
    var %hp = $calc($5 * 100)
    var %base = $calc(($calc($3 * 100) + $calc($5 * 100) + $iif($regex($right($7,1),[02468]),$calc($7 * 50),$calc(($7 - 1) * 50))) / 400)
    var %melee = $calc(($calc($2 * 130) + $calc($4 * 130)) / 400)
    var %ranger = $calc($iif($regex($right($6,1),[02468]),$calc($6 * 195),$calc(($6 * 195) - 65)) / 400)
    var %mage = $calc($iif($regex($right($8,1),[02468]),$calc($8 * 195),$calc(($8 * 195) - 65)) / 400)
    if (%melee > %ranger) && (%melee > %mage) {
      var %style = Melee
      var %combat = $calc(%melee + %base)
    }
    if (%ranger > %melee) && (%ranger > %mage) {
      var %style = Ranger
      var %combat = $calc(%ranger + %base)
    }
    if (%mage > %melee) && (%mage > %ranger) {
      var %style = Mage
      var %combat = $calc(%mage + %base)
    }
    else {
      var %style = Melee
      var %combat = $calc(%melee + %base)
    }
    $iif($left($1,1) == @,msg $chan,notice $nick) 14Combat Estimate:04 %combat 14(04 $+ %Style Based14)
    $iif($left($1,1) == @,msg $chan,notice $nick) 14Att:04 $2 14Def:04 $3 14Str:04 $4 14Hits:04 $5 14Range:04 $6 14Pray:04 $7 14Mage:04 $8
  }
}

alias pest {
  var %exp $iif($2 != Prayer,$calc(($1 ^2)/6),$calc(($1 ^2)/12)), %xp.diff $calc($exp($3) - $4), %point $calc(%xp.diff / %exp)
  if (%point >= 100) { var %point $calc(%xp.diff / ((%exp * 0.1)+ %exp)) }
  return $gettok(%point,1,46)
} 

on $*:text:/^((\[[a-z]{2}\])?Generic )?[@`.,!](Pest|pc)*/Si:#GenericDev,#theclan: { 
  if ($hget(disabled,$chan)) && ($1 != $me) halt
  if ($1 == $me) tokenize 32 $2-
  if ($1 != $me) && ($regex($remove($1,$left($1,1)),/(Pc|Pest)/i) != 1) halt
  if (!$3) $iif($left($1,1) == @,msg $chan,notice $nick) 14You must specify a04 Username14 to lookup!
  if ($3) {
    if ($len($3-) > 12) notice $nick 14Usernames must be under a length of 12 characters
    if ($len($3-) < 12) {
      inc %statsid 1
      set -u60 %StatsType [ $+ [ %statsid ] ] PestControl
      set -u60 %StatsName [ $+ [ %statsid ] ] $replace($3-,$chr(32),$chr(95),$chr(35),$chr(45))
      set -u60 %statsnick [ $+ [ %statsid ] ] $nick
      set -u60 %statschan [ $+ [ %statsid ] ] $chan
      set -u60 %statsmsg [ $+ [ %statsid ] ] $iif($left($1,1) == @,msg $chan,notice $nick)
      sockopen $+(rsstats,%statsid) hiscore.runescape.com 80
    }
  }
}


___________________________________________________________________________



alias pest {
  var %exp $iif($2 != Prayer,$calc(($1 ^2)/6),$calc(($1 ^2)/12)), %xp.diff $calc($exp($3) - $4), %point $calc(%xp.diff / %exp)
  if (%point >= 100) { var %point $calc(%xp.diff / ((%exp * 0.1)+ %exp)) }
  return $gettok(%point,1,46)
} 

on $*:text:/^((\[[a-z]{2}\])?Generic )?[@`.,!](Pest|pc)*/Si:#GenericDev,#theclan: { 
  if ($hget(disabled,$chan)) && ($1 != $me) halt
  if ($1 == $me) tokenize 32 $2-
  if ($1 != $me) && ($regex($remove($1,$left($1,1)),/(Pc|Pest)/i) != 1) halt
  if ($pctrigger($2,check) !=  yes) halt
  if (!$3) $iif($left($1,1) == @,msg $chan,notice $nick) 14You must specify a04 Username14 to lookup!
  if ($3) {
    if ($chr(35) == $left($3,1)) { 
      if ($4) {a
        set -u60 %PcGoal [ $+ [ %statsid ] ] $remove($3,$left($3,1))
      }
      if (!$4) {
        $iif($left($1,1) == @,msg $chan,notice $nick) 14You must specify a04 Username14 to lookup!
        halt
      }
    }  
    if ($chr(35) == $left($3,1)) && ($4) set -u60 %PcGoal [ $+ [ %statsid ] ] $remove($3,$left($3,1))
    if ($len($3-) > 12) notice $nick 14Usernames must be under a length of 12 characters
    if ($len($3-) < 12) {
      inc %statsid 1
      set -u60 %StatsType [ $+ [ %statsid ] ] PestControl
      set -u60 %StatsName [ $+ [ %statsid ] ] $replace($iif($chr(35) isin $3,$4-,$3),$chr(32),$chr(95),$chr(35),$chr(45))
      set -u60 %statsnick [ $+ [ %statsid ] ] $nick
      set -u60 %statschan [ $+ [ %statsid ] ] $chan
      set -u60 %skill [ $+ [ %statsid ] ] $pctrigger($2)
      set -u60 %statsmsg [ $+ [ %statsid ] ] $iif($left($1,1) == @,msg $chan,notice $nick)
      sockopen $+(rsstats,%statsid) hiscore.runescape.com 80
    }
  }
}

alias PcTrigger {
  if ($regex($1,/^at(t|k|tack)$/Si)) $iif($2,return yes,return Attack) 
  elseif ($regex($1,/^def(en[cs]e)?$$/Si)) $iif($2,return yes,return Defence) 
  elseif ($regex($1,/^str(ength)?$/Si)) $iif($2,return yes,return Strength) 
  elseif ($regex($1,/^hp|hits(points)??$/Si)) $iif($2,return yes,return Hitpoints) 
  elseif ($regex($1,/^range(r|d|ing)?$/Si)) $iif($2,return yes,return Ranged) 
  elseif ($regex($1,/^Pray(er)?$$/Si)) $iif($2,return yes,return Prayer) 
  elseif ($regex($1,/^mag(e|ic)$$/Si)) $iif($2,return yes,return Magic) 
}