All pastes #374839 Raw Edit

Unnamed

public text v1 · immutable
#374839 ·published 2007-02-27 21:07 UTC
rendered paste body
;;;;;;;;;;;;;;;;;;;;
;;; Skill Lookup ;;;
;;;;;;;;;;;;;;;;;;;;

on *:text:*:#: {
  if ($left($1,1) !isin @!) || (!$skills($remove($1,@,!))) { halt }
  set %stats.display $iif($left($1,1) == @,msg $chan,notice $nick)
  if (!$2-) { set %stats.nick $readini(setnick.ini,RSN,$mask($fulladdress,3)) }
  elseif ($2-) { set %stats.nick $replace($2-,$chr(32),-) }
  else {
    %stats.display You need to set a nick! Use ,setrsn nick to predefine a nick.
    halt
  }
  set %stats.display $iif($left($1,1) == @,msg $chan,notice $nick)
  set %stats.skill $chr(42) $+ $skill($remove($1,@,!)) $+ $chr(42)
  sockopen $+(stats.,%ID) parsers.o-ss.net 80
}

on *:SOCKOPEN:stats.*: {
  var %id = $gettok($sockname,2,46)
  sockwrite -nt $sockname GET /stats.php?user= $+ %stats.nick HTTP/1.1
  sockwrite -nt $sockname Host: parsers.o-ss.net
  sockwrite -nt $sockname $crlf
}

on *:SOCKREAD:stats.*: {
  var -s %ID = $gettok($sockname,2,46)

  if ($sockerr) {
    %stats.display Socket Error: $sockname $+ . Error code: $sockerr $+ . Please inform an admin of this error message.
    halt
  }
  else {
    var %read
    sockread %read
    if (%stats.skill iswm %read && *Not* !iswm %read ) {
      tokenize 32 %read
      set %result 10User: 7 $+ %stats.nick $+  10 $+ $chr(124) Skill: $+ 7 $1 10 $+ $chr(124) Level: $+ 7 $3 10 $+ $chr(124) Rank: $+ 7 $2 10 $+ $chr(124) Exp: $+ 7 $4 
      %stats.display %result
      cleanup %ID
    }
    elseif (*Not* iswm %read ) {
      %stats.display 10The user7 %stats.nick 10does not appear in the highscores.
      cleanup %ID
    }
  }
}

;;;;;;;;;;;;;;;
;;; Aliases ;;;
;;;;;;;;;;;;;;;

alias -l skill {
  if ($regex($1,/^at(t|k|tack)$/Si)) return Attack
  elseif ($regex($1,/^def(ence)?$$/Si)) return Defence
  elseif ($regex($1,/^str(ength)?$/Si)) return Strength
  elseif ($regex($1,/^hit(s|points)?$/Si)) return Hitpoints
  elseif ($regex($1,/^rang(ed|e)?$/Si)) return Ranged
  elseif ($regex($1,/^Pray(er)?$$/Si)) return Prayer
  elseif ($regex($1,/^mag(e|ic)$$/Si)) return Magic
  elseif ($regex($1,/^cook(ing)?$/Si)) return Cooking
  elseif ($regex($1,/^wc|wood(cut(ting))?$/Si)) return Woodcutting
  elseif ($regex($1,/^fletch(ing)?$/Si)) return Fletching
  elseif ($regex($1,/^fish(ing)?$/Si)) return Fishing
  elseif ($regex($1,/^fire|fm(mak(e|ing))?$/Si)) return Firemaking
  elseif ($regex($1,/^craft(ing)?$/Si)) return Crafting
  elseif ($regex($1,/^smith(ing)?$/Si)) return Smithing
  elseif ($regex($1,/^min(e|ing)?$/Si)) return Mining
  elseif ($regex($1,/^herb(law|lore)?$/Si)) return Herblore
  elseif ($regex($1,/^agil(ity)?$/Si)) return Agility
  elseif ($regex($1,/^thiev(ing)?$/Si)) return Thieving
  elseif ($regex($1,/^slay(er|ing)?$/Si)) return Slayer
  elseif ($regex($1,/^farm(er|ing)?$/Si)) return Farming
  elseif ($regex($1,/^rc|runecraft(ing)?$/Si)) return Runecraft
  elseif ($regex($1,/^hunt(er|ing)?$/Si)) return Hunter
  elseif ($regex($1,/^con(s|struction)?$/Si)) return Construction
}

alias cleanup { 
  unset $+(%,stats.*.,$1) 
  sockclose $+(Stats.,$1) 
}