runescape DM bot script

By GAWD on Aug 03, 2007

THIS IS NOT THE SCRIPT!!!!! THE SCRIPT CAN BE FOUND AT THIS URL http://pastebin.com/f21c2cf50

;;;; ragex stats script ;;;;

alias c1 { return $+(,$1-) } 
alias c2 { return $+(,$1-) } 

on *:text:*:#: { 
  tokenize 32 $strip($1-) 
  if ($left($1,1) !isin @!.) halt 
  if ($right($1,-1) == stats) var %style = astats 
  elseif ($regex($1,/co?mb(at)?/Si)) var %style = combat 
  elseif ($setskill($remove($1,@,!,.))) var %style = istat, %skill = $setskill($remove($1,@,!,.)) 
  elseif ($right($1,-1) == setrsn) && ($2) { 
    if ($2 == -h) { 
      writeini DefRSN.ini RSNs $mask($fulladdress,3) $replace($3-,$chr(32),-) 
      .notice $nick You're default RSN for the host $mask($fulladdress,3) has been set to $3- 
    } 
    else { 
      writeini DefRSN.ini RSNs $nick $replace($2-,$chr(32),-) 
      .notice $nick You're default RSN for the nick $nick has been set to $2- 
    } 
    halt 
  } 
  else halt 

  inc %ID 
  if ($len($2-) > 12) { 
    $($+(%,stats.display.,%ID),2) $c1(The nick) $c2($2-) $c1(is too long) 
    cleanup %ID 
    halt 
  } 
  elseif ($2) set $+(%,stats.rsn.,%ID) $replace($2-,$chr(32),-) 
  elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,stats.rsn.,%ID) $ifmatch 
  elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,stats.rsn.,%ID) $ifmatch 
  else set $+(%,stats.rsn.,%ID) $nick 

  set $+(%,stats.style.,%ID) %style 
  set $+(%,stats.skill.,%ID) %skill 
  set $+(%,stats.display.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) 
  sockopen $+(stats.,%ID) hiscore.runescape.com 80 
} 

on *:sockopen:stats.*: { 
  var %id = $gettok($sockname,2,46) 
  sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,stats.rsn.,%ID),2) HTTP/1.1 
  sockwrite -n $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf 
} 
on *:sockread:stats.*: { 
  sockread &Incoming 
  bwrite $sockname -1 -1 &Incoming 
  if ($bfind(&Incoming, 1, </html>).text) makehash $sockname 
  elseif ($bfind(&Incoming, 1, does not feature in the hiscores.).text) { 
    $($+(%,stats.display.,%ID),2) $c1(The nick) $c2($($+(%,stats.rsn.,%ID),2)) $c1(Does not appear in the hiscores) 
    cleanup $gettok($sockname,2,46) 
  } 
} 
alias -l makehash { 
  var %file = $1 
  bread %file 1 $file(%file).size &stats 
  var %currentstat, %x = 1 
  while (%x) { 
    var %x = $bfind(&stats,$calc(%x + 1),<a href="overall.ws?table=) 
    var %currentstat = $striptags($bvar(&stats,%x,200).text) 
    tokenize 10 %currentstat 
    hadd -m %file $1 $2 $3 $4 $xp2next($3,$4) 
  } 
  process %file 
} 
alias process { 
  var %table = $1, %id = $gettok($1,2,46), %x = 0, $& 
    %display = $($+(%,stats.display.,%ID),2), $& 
    %rsn = $($+(%,stats.rsn.,%ID),2), $& 
    %skill = $($+(%,stats.skill.,%ID),2), $& 
    %style = $($+(%,stats.style.,%ID),2) 

  if (%style == astats) { 
    while (%x <= 22) { 
      tokenize 32 $hget(%table,$setskill(%x)) 
      if ($2) var %statline = %statline $c1($setskill(%x)) $c2($2) 
      inc %x 
    } 
    %display $c1(Stats for) $c2(%rsn) $+ $c1(:) 
    %display %statline 
  } 
  elseif (%style == istat) { 
    if (!$hget(%table,%skill)) %display $c1(The nick) $c2(%rsn) $c1(does not appear in the hiscores for) $c2(%skill) 
    else { 
      tokenize 32 $hget(%table,%skill) 
      %display $c2(%skill) $c1(stats for) $c2(%rsn) $+ $c1(:) 
      %display $c1(Rank:) $c2($1) $c1(Level:) $c2($bytes($2,b)) $c1(Exp:) $c2($3) $& 
        $iif(%skill != Overall,$c1(Exp to lvl) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($4,b))) 
    } 
  } 
  elseif (%style == combat) { 
    var %a.mult = .32707, %s.mult = .324, %d.mult = .25, %h.mult = .25, %p.mult = .124, %r.mult = .487, %m.mult = .487 
    var %a = $iif($gettok($hget(%table,attack),2,32),$v1,-), $& 
      %s = $iif($gettok($hget(%table,strength),2,32),$v1,-), $& 
      %d = $iif($gettok($hget(%table,defence),2,32),$v1,-), $& 
      %h = $iif($gettok($hget(%table,hitpoints),2,32),$v1,-), $& 
      %r = $iif($gettok($hget(%table,ranged),2,32),$v1,-), $& 
      %m = $iif($gettok($hget(%table,magic),2,32),$v1,-), $& 
      %p = $iif($gettok($hget(%table,prayer),2,32),$v1,-) 

    var %meleecombat  = $calc(%a * %a.mult + %s * %s.mult + %d * %d.mult + %h * %h.mult + %p * %p.mult), $& 
      %RangedCombat = $calc(%r * %r.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult), $& 
      %MagicCombat  = $calc(%m * %m.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult) 

    if (%MagicCombat == %RangedCombat) && (%MagicCombat == %RangedCombat) { 
      %display $c1(The nick) $c2(%rsn) $c1(does not appear in the hiscores for any combat skills) 
      cleanup %id 
      halt 
    } 
    elseif (%MagicCombat > %RangedCombat) && (%MagicCombat > %MeleeCombat) var %cmbstyle = Magic, %Combat = %MagicCombat 
    elseif (%RangedCombat > %MeleeCombat) var %cmbstyle = Ranged, %Combat = %RangedCombat 
    else var %cmbstyle = melee, %combat = %MeleeCombat 

    var %cmb.temp = $abs($calc($int($calc(%combat +1)) - %combat)), $& 
      %a.2lvl = $ceil($calc(%cmb.temp / %a.mult)), %s.2lvl = $ceil($calc(%cmb.temp / %s.mult)), $& 
      %d.2lvl = $ceil($calc(%cmb.temp / %d.mult)), %m.2lvl = $ceil($calc(%cmb.temp / %m.mult)), $& 
      %r.2lvl = $ceil($calc(%cmb.temp / %r.mult)), %p.2lvl = $ceil($calc(%cmb.temp / %p.mult)) 

    if (%cmbstyle == magic) var %dynamic.2lvl = $c1(Magic:) $c2(%m.2lvl) 
    elseif (%cmbstyle == Ranged) var %dynamic.2lvl = $c1(Ranged:) $c2(%r.2lvl) 
    else var %dynamic.2lvl = $c1(Att:) $c2(%a.2lvl) $c1(Str:) $c2(%s.2lvl) 
    var %combat = $round(%combat,2), %next = $ceil(%combat) 

    %display $c2(13 %rsn) $c1( is) $c2(7 %combat) $c1(12 %cmbstyle based combat) 
    %display $c1(Attack:) $c2(13 %a) $c1( Defence:) $c2(13 %d) $c1( Strength:) $c2(13 %s) $c1( Hits:) $c2(13 %h) $& 
      $c1( Mage:) $c2(13 %m) $c1( Range:) $c2(13 %r) $c1( Pray:) $c2(13 %p) 
    %display $c1(Levels for) $c2(13 %next) $+ $c1( :) %dynamic.2lvl $& 
      $c1(Def/Hp:) $c2(%d.2lvl) $c1(Prayer:) $c2(%p.2lvl) 
  } 
  cleanup %id 
} 

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

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 xp2Next { 
  var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) 
  return $calc(%nextxp - %xp) 
} 

alias -l striptags { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x } 
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,/^(construct)(ion|ing)?$/si)) return Construction 
}

Comments

Sign in to comment.
koutrelakosn   -  Aug 04, 2007

it doesnt work

 Respond  
vegeto079   -  Aug 04, 2007

someone please delete this, i have posted a newer version of MY dm script, this one, which he claims to be his, when it is mine.

 Respond  
vegeto079   -  Aug 04, 2007

and you copied MY dm script and used it and claimed it as yours, i see... thats not very nice.
that DOES give me an idea to put MY dm script in a pastebin instead of actual snippet since it doesnt fit.

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.