All pastes #566683 Raw Edit

Stuff

public text v1 · immutable
·published 2007-06-14 15:52 UTC
rendered paste body
on *:TEXT:*:#: {
  if ($left($strip($1),1) !isin @!.) || ($regex($strip($1),/(=|[^<]*>|<[^>]*>|<[^>]|[0-9]|$chr(95))/Si)) { halt }
  if ($right($1,-1) == defname) && ($2-) && ($len($2-) <= 12) {
    writeini DefRSN.ini RSNs $mask($fulladdress,3) $replace($2-,$chr(32),-)
    notice $nick $c1(your nickname for the adress) $c2($mask($fulladdress,3)) $c1(has been set to) $c2($2-)
    halt
  }
  inc %ID
  if ($right($strip($1),-1) == stats) set $+(%,rs.style.,%ID) stats
  elseif ($regex($strip($1),/co?mb(at)?/Si)) set $+(%,rs.style.,%ID) combat
  elseif ($setskill($remove($strip($1),@,!,.))) set $+(%,rs.style.,%ID) single
  else halt
  if ($len($2-) > 12) { $iif($left($1,1) == @,msg $chan,notice $nick) $c1(The nickname) $c2($2-) $c1(is too long) | halt }  
  if ($2) set $+(%,rs.rsn.,%ID) $replace($2-,$chr(32),$chr(95))   
  elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,rs.rsn.,%ID) $ifmatch
  elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,rs.rsn.,%ID) $ifmatch
  else set $+(%,rs.rsn.,%ID) $nick
  set $+(%,rs.skill.,%ID) $setskill($remove($strip($1),@,!,.))
  set $+(%,rs.return.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick)
  sockopen $+(rs.,%ID) hiscore.runescape.com 80
}
on *:SOCKOPEN:rs.*:{
  var %ID = $gettok($sockname,2,46)
  sockwrite -nt $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,rs.rsn.,%ID),2) HTTP/1.0
  sockwrite -nt $sockname Host: hiscore.runescape.com $+ $str($crlf,2)
}
on *:SOCKREAD:rs.*:{
  if ($sockerr) { echo -a Error. | halt }
  var %ID = $gettok($sockname,2,46), $&
    %style = $($+(%,rs.style.,%ID),2), $&
    %target = $($+(%,rs.rsn.,%ID),2), $&
    %display = $($+(%,rs.return.,%ID),2), $&
    %skill = $($+(%,rs.skill.,%ID),2)
  sockread &source
  bwrite $sockname -1 -1 &source
  if ($bfind(&source,1,does not feature in the hiscores).text) { %display $c1(The nickname:) $c2(%target) $c1(did not feature in runescape highscores for any skill!) | remove $sockname | sockclose $sockname | halt }
  bread $sockname 1 $file($sockname).size $+(&,$sockname)
  var %stat, %x = 1
  while (%x) {
    var %x = $bfind($+(&,$sockname),$calc(%x + 1),<a href="overall.ws?table=).text, %stat = $htmlfree($bvar($+(&,$sockname),%x,200).text)
    tokenize 10 %stat
    hadd -m $sockname $1 $2 $3 $4 $xp2next($3,$4)
  }
  if ($bfind($+(&,$sockname),1,<img class="mainscroll-bottom).text) {
    if (%style == stats) {
      var %y = 0
      while (%y <= 23) {
        tokenize 32 $hget($sockname,$setskill(%y))
        if ($2) var %file = %file $c1($setskill(%y)) $c2($2)
        inc %y
      }
      %display $c1(Stats for) $c2(%target) $+ $c1(:)
      %display %file  
      unset $+(%,rs.*)
    }
    if (%style == single) {
      if (!$hget($sockname,%skill)) { %display $c2(%target) $c1(did not feature in higscores for) $c2(%skill) | remove $sockname | sockclose $sockname | halt }
      tokenize 32 $hget($sockname,%skill)
      %display $c2(%skill) $c1(Stats for) $c2(%target)
      %display $c1(Level:) $c2($2) $c1(Rank:) $c2($1) $c1(Exp:) $c2($3) $c1(Exp for) $c2($calc($2 + 1)) $c1(%skill $+ :) $c2($comma($4))
      unset $+(%,rs.*)
    }
    if (%style == combat) {
      var %att = $gettok($hget($sockname,attack),2,32), %def = $gettok($hget($sockname,defence),2,32), $&
        %str = $gettok($hget($sockname,strength),2,32), %hp = $gettok($hget($sockname,hitpoints),2,32), $&
        %rng = $gettok($hget($sockname,ranged),2,32), %pray = $gettok($hget($sockname,prayer),2,32), $&
        %magic = $gettok($hget($sockname,magic),2,32)
      var %combat = $cmb(%att,%def,%str,%hp,%rng,%pray,%magic)
      var %temp = $abs($calc($int($calc($gettok(%combat,1,32) +1)) - $gettok(%combat,1,32))), $& 
        %a.lvl = $ceil($calc(%temp / .32707)), %s.lvl = $ceil($calc(%temp / .324)), $& 
        %d.lvl = $ceil($calc(%temp / .25)), $&
        %m.lvl = $ceil($calc(%temp / .487)), $& 
        %r.lvl = $ceil($calc(%temp / .487)), $&
        %p.lvl = $ceil($calc(%temp / .124))
      if ($gettok(%combat,2,32) == Magic Based) var %lvl.base = Magic: %m.lvl
      elseif ($gettok(%combat,2,32) == Ranged Based) var %lvl.base = Ranged: %r.lvl
      else var %lvl.base = $c1(Att:) $c2(%a.lvl) $c1(Str:) $c2(%s.lvl)
      %display $c2(%target) $c1(is level) $c2(%combat)
      %display $c1(Att:) $c2(%att) $c1(Def:) $c2(%def) $c1(Str:) $c2(%str) $c1(hp:) $c2(%Hp) $c1(Range:) $c2(%rng) $c1(Pray:) $c2(%pray) $c1(Magic:) $c2(%magic)
      if ($floor(%combat) != 126) %display $c1(Levels for) $c2($floor($calc($gettok(%combat,1,32) +1))) $+ $c1(:) %lvl.base $c1(def/hp:) $c2(%d.lvl) $c1(Prayer:) $c2(%p.lvl)
      else %display $c2(%target) $c1(has reached the maximum combat level in) $c2(Runescape!)       
      unset $+(%,rs.*)
    }
  }
  remove $sockname
}
alias -l cmb {
  var %a = $calc($2 * 100), %b = $calc($4 * 100), %c = $calc($6 * 50)
  var %base = $calc($calc(%a + %b + %c) / 400), %d = $calc($1 * 130), %e = $calc($3 * 130)
  if ($and($5,1) == 0) var %f = $calc($calc($calc($5 - 1) + $calc($5 * 2)) * 65)
  elseif ($and($5,1) == 1) var %f = $calc($5 * 195)
  if ($and($7,1) == 0) var %g = $calc($calc($calc($7 - 1) + $calc($7 * 2)) * 65)
  elseif ($and($7,1) == 1) var %g = $calc($7 * 195)
  var %mcombat = $calc($calc(%d + %e) / 400), %rcombat = $calc(%f / 400), %macombat = $calc(%g / 400)
  if (%mcombat > %rcombat) && (%mcombat > %macombat) { return $calc(%mcombat + %base) Melee Based }
  elseif (%rcombat > %mcombat) && (%rcombat > %macombat) { return $calc(%rcombat + %base) Ranged Based }
  elseif (%macombat > %mcombat) && (%macombat > %rcombat) { return $calc(%macombat + %base) Magic Based }
}
alias -l htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&amp;) | return %x }
alias -l comma {  Var %a, %b = $regsub($ticks,$$1,/G([+-]?d+?)(?=(?:d{3})++(?=.d++$|$))/g,1 $+ $chr(44),%a) | Return %a }
alias -l xp2Next { var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) | return $calc(%nextxp - %xp) }
alias -l xp { var %x = 1, %level = $calc($1 - 1), %xp = 0 | while (%x <= %level) { var %TempXp = $calc((%x + 300 * 2^(%x / 7)) /4) | inc %xp %TempXp | inc %x } | return $int(%xp) }
alias -l setskill {
  if ($1 == 0) || ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall
  elseif ($1 == 1) || ($regex($1,/^at(t|k|tack)$/Si)) return Attack
  elseif ($1 == 2) || ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence
  elseif ($1 == 3) || ($regex($1,/^str(ength)?$/Si)) return Strength
  elseif ($1 == 4) || ($regex($1,/^hp|hit(s|points?)?$/Si)) return Hitpoints
  elseif ($1 == 5) || ($regex($1,/^range(r|d|ing)?$/Si)) return Ranged
  elseif ($1 == 6) || ($regex($1,/^Pray(er)?$$/Si)) return Prayer
  elseif ($1 == 7) || ($regex($1,/^mag(e|ic)$$/Si)) return Magic
  elseif ($1 == 8) || ($regex($1,/^cook(ing)?$/Si)) return Cooking
  elseif ($1 == 9) || ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return Woodcutting
  elseif ($1 == 10) || ($regex($1,/^fletch(ing)?$/Si)) return Fletching
  elseif ($1 == 11) || ($regex($1,/^fish(ing)?$/Si)) return Fishing
  elseif ($1 == 12) || ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return Firemaking
  elseif ($1 == 13) || ($regex($1,/^craft(ing)?$/Si)) return Crafting
  elseif ($1 == 14) || ($regex($1,/^(smith|smelt)(ing)?$/Si)) return Smithing
  elseif ($1 == 15) || ($regex($1,/^mine(ing)?$/Si)) return Mining
  elseif ($1 == 16) || ($regex($1,/^herb(law|lore)?$/Si)) return Herblore
  elseif ($1 == 17) || ($regex($1,/^agil(ity)?$/Si)) return Agility
  elseif ($1 == 18) || ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return Thieving
  elseif ($1 == 19) || ($regex($1,/^slay(er|ing)?$/Si)) return Slayer
  elseif ($1 == 20) || ($regex($1,/^farm(er|ing)?$/Si)) return Farming
  elseif ($1 == 21) || ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return Runecraft
  elseif ($1 == 22) || ($regex($1,/^(hunt)(er|ing)?$/si)) return Hunter
  elseif ($1 == 23) || ($regex($1,/^(con)(struc?tion)?$/si)) return Construction
}


ALIAS F7 {
  /dialog -miedo combat.main combat.main
}
menu * {
  Combat stats:/dialog -meido combat.main combat.main
}
dialog combat.main {
  title "Combat Stats Dialog"
  size -1 -1 182 79
  option dbu
  button "Lookup", 1, 7 8 37 12
  button "Channels", 2, 7 25 37 12
  button "Close", 3, 7 41 37 12
  box "Combat Stats", 4, 55 8 113 56
  edit "", 5, 80 17 20 10
  text "Attack", 6, 59 18 20 8
  text "Strength", 7, 58 28 23 8
  text "Defence", 8, 57 38 25 8
  text "Hitpoints", 9, 56 48 25 8
  text "Combat", 10, 105 53 25 8
  text "Mage", 11, 109 18 25 8
  text "Range", 12, 109 29 25 8
  text "Prayer", 13, 107 38 25 8
  edit "", 14, 80 27 20 10
  edit "", 15, 80 37 20 10
  edit "", 16, 127 17 20 10
  edit "", 17, 80 47 20 10
  edit "", 18, 133 52 20 10
  edit "", 19, 127 38 20 10
  edit "", 20, 127 28 20 10
}
dialog combat.results {
  title "Combat Stats Dialog"
  size -1 -1 182 79
  option dbu
  button "OK", 1, 7 8 37 12
  box "Combat Stats", 4, 55 8 113 56
  edit "", 5, 80 17 20 10
  text "Attack", 6, 59 18 20 8 
  text "Strength", 7, 58 28 23 8 
  text "Defence", 8, 57 38 25 8
  text "Hitpoints", 9, 56 48 25 8 
  text "Combat", 10, 105 53 25 8
  text "Mage", 11, 109 18 25 8
  text "Range", 12, 109 29 25 8
  text "Prayer", 13, 107 38 25 8
  edit "", 14, 80 27 20 10
  edit "", 15, 80 37 20 10 
  edit "", 16, 127 17 20 10 
  edit "", 17, 80 47 20 10
  edit "", 18, 133 52 20 10
  edit "", 19, 127 38 20 10 
  edit "", 20, 127 28 20 10
}

dialog combat.who {
  title "Enter RSN"
  size -1 -1 130 58
  option dbu
  edit "", 1, 15 14 83 10
  text "RSN:", 2, 16 6 25 8
  button "OK", 3, 13 28 37 12
  button "Cancel", 4, 59 28 37 12
}
dialog channels {
  title "Enter RSN"
  size -1 -1 108 58
  option dbu
  button "#[-God-]", 3, 13 10 37 12
  button "#RsTalk", 4, 13 25 37 12
  button "#FastPcw", 1, 13 40 37 12
  button "Back", 2, 57 10 37 12
}
dialog error.nonick {
  title "ERROR: no nick entered"
  size -1 -1 108 36
  option dbu
  button "Retry", 1, 12 10 37 12
  button "Cancel", 2, 57 10 37 12
}
on *:dialog:combat.main:sclick:3: {
  /combat.die
  unset %user
  unset %attack.search
  unset %strength.search
  unset %defence.search
  unset %hp.search
  unset %mage.search
  unset %range.search
  unset %prayer.search
unset %combat }

on *:dialog:combat.main:sclick:2: {
  /dialog -x combat.main combat.main
/dialog -m channels channels }

on *:dialog:combat.main:sclick:1: {
  /dialog -x combat.main combat.main
  unset %user
  unset %attack.search
  unset %strength.search
  unset %defence.search
  unset %hp.search
  unset %mage.search
  unset %range.search
  unset %prayer.search
  unset %combat
/dialog -m combat.who combat.who }

on *:dialog:channels:sclick:3: {
/join #[-God-] }

on *:dialog:channels:sclick:4: {
/join #RsTalk }

on *:dialog:channels:sclick:1: {
/join #FastPcw }

on *:dialog:channels:sclick:2: {
  /dialog -x channels channels
/dialog -m combat.main combat.main }

on *:dialog:combat.who:sclick:4: {
  /dialog -x combat.who combat.who
  /dialog -m combat.main combat.main
}

on *:dialog:combat.who:sclick:3: {
  if ($did(1) == $null) { 
    dialog -x combat.who combat.who
  dialog -m error.nonick error.nonick }
  else { 
    set %user $replace($did(1),$chr(32),_)
    sockopen combat www.slushpuppy.silverinterlocution.org 80
    /dialog -x combat.who combat.who
    /dialog -miedo combat.results combat.results
  }
}

on *:dialog:error.nonick:sclick:2: {
  /dialog -x error.nonick error.nonick
  /dialog -m combat.main combat.main
}

on *:dialog:error.nonick:sclick:1: {
  /dialog -x error.nonick error.nonick
  /dialog -m combat.who combat.who
}

on *:dialog:combat.results:sclick:1: {
  /dialog -x combat.results combat.results
  /dialog -m combat.main combat.main
}

alias combat.die {
  var %i 182
  while (%i >= 0) {
    dialog -srb combat.main -1 -1 %i %i
    var %t 1
    while (%t <= 79) inc %t
    dec %i
  }
  dialog -c combat.main
}

on *:SOCKOPEN:combat*:{
  sockwrite -nt $sockname GET /pestcontrol.php?pestcontrol= $+ %user HTTP/1.1
  sockwrite -nt $sockname Host: www.slushpuppy.silverinterlocution.org
  sockwrite -nt $sockname $crlf
}
on *:SOCKREAD:combat*:{
  var %sockread
  sockread %sockread
  if (<b> isin %sockread) {
    did -a combat.results 5 $gettok($htmlfree(%sockread),4,32)
    did -a combat.results 14 $gettok($htmlfree(%sockread),8,32)
    did -a combat.results 15 $gettok($htmlfree(%sockread),6,32)
    did -a combat.results 17 $gettok($htmlfree(%sockread),10,32)
    did -a combat.results 16 $gettok($htmlfree(%sockread),16,32)
    did -a combat.results 20 $gettok($htmlfree(%sockread),12,32)
  did -a combat.results 19 $gettok($htmlfree(%sockread),14,32) }
  if (<br> isin %sockread) {
    var %combat = $htmlfree(%sockread)  
    did -a combat.results 18 %combat
  } 
}
on *:Sockclose:combat*:{
  Sockclose $sockname
}


alias -l htmlfree {
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
return %x }