All pastes #152716 Raw Edit

Unnamed

public text v1 · immutable
#152716 ·published 2006-08-29 02:39 UTC
rendered paste body
on $*:TEXT:/^[!@]pest|^[!@]pc/Si:#jim:{
  if ((!$pskill($2) || (!$pskill($3))) { 
    .notice $nick 10Please enter a valid skill and try again. 
  }
  else {
    inc %_pest 1 
    if (!$3) {  
      if (!$hget(rsn,$address($nick,2))) { 
        .notice $nick 10You have no name set, type14 !defname <name> 10to set one, or include a username in your pest control lookup. 
      }
      else {
        if ($iif($left($2,1) != #)) { set $+(%,pest.num,.,%_pest) 1
          set $+(%,pest.rsn,.,%_pest) $replace($hget(defname,$nick),$chr(32),+)
          set $+(%,pest.target,.,%_pest) $iif($left($1,1) == @,msg $chan,notice $nick)
          set $+(%,pest.skill,.,%_pest) $pskill($3)
          sockopen $+(pest,.,%_pest) altscripts.trap17.com 80
          if (($iif($left($2,1) == #)) || ($iif($left($2,2) > 0)) || ($len($iif($left($2,3) < 10))) { set $+(%,pest.num,.,%_pest) $remove($2,#)
            set $+(%,pest.rsn,.,%_pest) $replace($hget(defname,$nick),$chr(32),+)
            set $+(%,pest.target,.,%_pest) $iif($left($1,1) == @,msg $chan,notice $nick)
            set $+(%,pest.skill,.,%_pest) $pskill($3)
            sockopen $+(pest,.,%_pest) altscripts.trap17.com 80
          }   
        } 
      }
      else {
        if ($iif($left($2,1) != #)) { set $+(%,pest.num,.,%_pest) 1
          set $+(%,pest.rsn,.,%_pest) $replace($3-,$chr(32),+)
          set $+(%,pest.target,.,%_pest) $iif($left($1,1) == @,msg $chan,notice $nick)
          set $+(%,pest.skill,.,%_pest) $pskill($2)
          sockopen $+(pest,.,%_pest) altscripts.trap17.com 80
          if (($iif($left($2,1) == #)) || ($iif($left($2,2) > 0)) || ($len($iif($left($2,3) < 10))) { set $+(%,pest.num,.,%_pest) $remove($2,#)
            set $+(%,pest.rsn,.,%_pest) $replace($3-,$chr(32),+)
            set $+(%,pest.target,.,%_pest) $iif($left($1,1) == @,msg $chan,notice $nick)
            set $+(%,pest.skill,.,%_pest) $pskill($2)
            sockopen $+(pest,.,%_pest) altscripts.trap17.com 80
          }
        }
      }
      else {
        if ($len($3-) > 12) { 
          .notice $nick 10Runescape usernames must not exceed 12 characters. Please try again!
        }
        else { 
          set $+(%,pest.rsn,.,%_pest) $replace($3-,$chr(32),+)
          set $+(%,pest.target,.,%_pest) $iif($left($1,1) == @,msg $chan,notice $nick)
          set $+(%,pest.skill,.,%_pest) $pskill($2)
          sockopen $+(pest,.,%_pest) altscripts.trap17.com 80
        }
      }
    }
  }
}
on *:SOCKOPEN:pest.*:{
  var %_pest.id = $right($sockname,-5)
  sockwrite -nt $sockname GET /rsparsers/highscores.php?rsn= $+ $eval($+(%,pest.rsn,.,%_pest.id),2) HTTP/1.0
  sockwrite -nt $sockname Host: altscripts.trap17.com $+ $crlf $+ $crlf
}

on *:SOCKREAD:pest.*:{
  var %_pest.id = $right($sockname,-5)
  if ($sockerr) { 
    $eval($+(%,pest.target,.,%_pest.id),2) Socket error, please try again. 
    pcleanup %_pest.id 
  }
  else {
    var %username = $replace($eval($+(%,pest.rsn,.,%_pest.id),2),+,$chr(32))
    var %target = $eval($+(%,pest.target,.,%_pest.id),2)  
    var %skill = $eval($+(%,pest.skill,.,%_pest.id),2)
    var %num = $eval($+(%,pest.num,.,%_pest.id),2)
    var %read 
    while (1) {
      sockread -f %read
      if (!$sockbr) {
        break 
      }  
      if (%skill $+ :* iswm %read) { 
        var %1 = $remove($gettok(%read,2,58),<br>)
        var %2 = $remove($gettok(%read,3,58),<br>)
      }
    }
    var %3 = $calc(%1 + %num)
    var %4 = $calc($readini(xp.ini,xp,%3) - $remove(%2,$chr(44))) 
    %target $color1(Username:) $+ $color2($+($chr(32),%username)) $color1(Skill:) $+ $color2($+($chr(32),%skill)) $color1(Level:) $+ $color2($+($chr(32),%1))
    %target $color1(Commendations needed for) $+ $color2($+($chr(32),$bytes(%4,b))) $color1(xp:) $+ $color2($+($chr(32),$pcalc(%skill %1 %4)))
    pcleanup %_pest.id 
  }
}

alias -l pcleanup {
  unset $+(%,pest.,*,.,$1)
}

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

alias exp { 
  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 
  } 
  return $int(%xp) 
} 
alias pcalc { 
  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) 
} 

alias color1 {
  return $+(10,$1-,)
}

alias color2 {
  return $+(14,$1-,)
}