All pastes #156694 Raw Edit

Miscellany

public text v1 · immutable
#156694 ·published 2006-08-31 22:44 UTC
rendered paste body
alias c1 { return $+(,$1-) } 
alias c2 { return $+(,$1-) } 
on *:text:!calc*:#:{ if ($2 == $null) { notice $nick Error - You Didn't Specify An Equasion To Solve | halt } 
  else { 
    notice $nick The answer to $2- is.. $calc($replace($2-,k,000,m,000000,c,00) $2- )) 
} } 
dialog hamLIST { 
  title "HamLIST Blacklist Script" 
  size -1 -1 294 215 
  option dbu 
  list 1, 20 32 238 90, size 
  box "Hostmasks:", 2, 11 17 259 124 
  button "Remove", 3, 98 124 37 12 
  button "Update", 4, 60 124 37 12 
  edit "", 5, 20 152 238 10 
  button "Add", 6, 22 124 37 12 
  box "Add Hostmask:", 7, 11 143 260 24 
  text "HamLIST Blacklist Script", 8, 15 4 121 12 
  button "OK", 9, 43 179 37 12, ok 
  button "Cancel", 10, 81 179 37 12, cancel 
} 

on *:DIALOG:HamLIST:sclick:6:{ 
  set %hlist.hmask $did(HamLIST,5).text 
  write HamLIST.txt %hlist.hmask 
  did -a HamLIST 1 %hlist.hmask 
  scanchannels 
} 

on *:DIALOG:HamLIST:sclick:3:{ 
  set %hlist.remove $did(HamLIST,1,1).sel 
  write -ds $+ $did(HamLIST,1,1).seltext HamLIST.txt 
  did -d HamLIST 1 %hlist.remove 
} 

on *:DIALOG:HamLIST:sclick:4:{ 
  set %hlist.update $did(HamLIST,5).text 
  write -ds $+ $did(HamLIST,1,1).seltext HamLIST.txt 
  write HamLIST.txt %hlist.update 
  did -o $did(HamLIST,1,1).sel %hlist.update 
} 

alias hamlist { 
  dialog -ma hamlist hamlist 
} 

on *:join:#:{ 
  if ( $nick == $me ) { 
    scanchannel $chan 
  } 
  else { 
    docheck $nick $chan 
  } 
} 

alias docheck { 
  var %hlist.read2 1 
  while (%hlist.read2 <= $lines(hamlist.txt)) { 
    if ( $mask($read(hamlist.txt,%hlist.read2),5) iswm $address($$1,5) ) { 
      mode $chan +b $read(hamlist.txt,%hlist.read2) 
      inc %kicks 1 
      kick $2 $$1 You have been HamLISTED) ( $+ %kicks dudes kicked 
    } 
    inc %hlist.read2 1 
  } 
} 
menu channel { 
  HamLIST:/HamLIST 
} 
menu status { 
  HamLIST:/HamLIST 
} 
menu query { 
  HamLIST:/HamLIST 
} 
menu menubar { 
  HamLIST:/HamLIST 
} 

menu nicklist { 
  HamLIST 
  .Add Address 
  ..$+ $address($$1,1) $+ :/hamlist | /set %hlist.hmask $address($$1,1) | /did -a HamLIST 5 %hlist.hmask 
  ..$+ $address($$1,2) $+ :/hamlist | /set %hlist.hmask $address($$1,2) | /did -a HamLIST 5 %hlist.hmask 
  ..$+ $address($$1,3) $+ :/hamlist | /set %hlist.hmask $address($$1,3) | /did -a HamLIST 5 %hlist.hmask 
  ..$+ $address($$1,4) $+ :/hamlist | /set %hlist.hmask $address($$1,4) | /did -a HamLIST 5 %hlist.hmask 
  ..$+ $address($$1,5) $+ :/hamlist | /set %hlist.hmask $address($$1,5) | /did -a HamLIST 5 %hlist.hmask 
} 

on *:DIALOG:hamLIST:init:0:{ 
  var %hlist.read 1 
  while (%hlist.read <= $lines(hamlist.txt)) { 
    did -a hamLIST 1 $read(hamlist.txt,%hlist.read) 
    inc %hlist.read 1 
  } 
} 

on *:text:*:#:{ 
  docheck $nick 
} 
on *:action:*:#:{ 
  docheck $nick 
} 
on *:mode:#:{ 
  docheck $nick 
} 

alias scanchannels { 
  var %sc 1 
  while (%sc <= $chan(0)) { 
    var %sn 1 
    while (%sn <= $nick($chan(%sc),0)) { 
      var %hlist.read2 1 
      while (%hlist.read2 <= $lines(hamlist.txt)) { 
        if ( $mask($read(hamlist.txt,%hlist.read2),5) iswm $address($nick($chan(%sc),%sn),5) ) { 
          mode $chan(%sc) +b $read(hamlist.txt,%hlist.read2) 
          inc %kicks 1 
          kick $chan(%sc) $nick($chan(%sc),%sn) You have been HamLISTED) ( $+ %kicks dudes kicked 
        } 
        inc %hlist.read2 1 
      } 
      inc %sn 1 
    } 
    inc %sc 1 
  } 
} 

alias scanchannel { 
  var %sn 1 
  while (%sn <= $nick($1,0)) { 
    var %hlist.read2 1 
    while (%hlist.read2 <= $lines(hamlist.txt)) { 
      if ( $mask($read(hamlist.txt,%hlist.read2),5) iswm $address($nick($1,%sn),5) ) { 
        mode $1 +b $read(hamlist.txt,%hlist.read2) 
        inc %kicks 1 
        kick $1 $nick($1,%sn) You have been HamLISTED) ( $+ %kicks dudes kicked 
      } 
      inc %hlist.read2 1 
    } 
    inc %sn 1 
  } 
} 
on *:TEXT:!kick *:#:{ 
  if (($nick isop $chan) || ($nick ishop $chan)) || ($nick isvoice $chan) { 
    if (!$($+(%,kick.,$2),2)) { 
      /set $+(%,kick.,$2) 1 
      /kick $chan $2 Reason: $3- (This is your first warning, twice more and you will be banned.) 
    } 
    elseif ($($+(%,kick.,$2),2) == 1) { 
      /inc $+(%,kick.,$2) 
      /kick $chan $2 Reason: $3- (You have already been warned, once more and you will be banned.) 
    } 
    elseif ($($+(%,kick.,$2),2) == 2) { 
      /mode $chan +b $address($2,2) | /kick # $2 Reason: $3- (You have been warned twice already. Kick-Banned) 
    /unset $+(%,kick.,$2) } 
  } 
} 
on *:text:!ns*:#:{ if ($nick isop $chan) || ($nick ishop $chan) { 
mode $chan +b ~q: $+ $address($2,2) } } 
on *:text:!nds*:#:{ if ($nick isop $chan) || ($nick ishop $chan) { 
mode $chan -b ~q: $+ $address($2,2) } } 
on *:text:!tb*:#:{ if ($2 isop $chan) || ($2 ishop $chan) { 
    notice $nick I have been forbidden to use this command on Operators and Half-Operators! 
    halt 
  } 
  else { 
    if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { 
      inc %kcount 
/ban -ku $+ $calc( $3 * 60 ) $chan $2 2 Reason: $4- - $3 Minute Ban - Noobs Pwnt: ( %kcount ) } } } 
on *:text:!time*:#:{ if ($2 == s) { notice $nick Converting $3 seconds into minutes... $calc( $3 / 60 ) minutes. } else { if ($2 == m) { notice $nick Converting $3 minutes into seconds... $calc( $3 * 60 ) seconds. } } } 
alias cbl { 
  dialog -ma cbl cbl 
} 
alias abl { 
  if ($1 == $null) { 
    if ($readini(cbl.ini,chans,$chan) == $null) { 
      writeini cbl.ini chans $chan $chan 
    } 
  } 
  elseif ( $left($1,1) == $chr(35)) { 
    if ($readini(cbl.ini,chans,$1) == $null) { 
      writeini cbl.ini chans $1 $1 
    } 
  } 
  else { 
    if ($readini(cbl.ini,chans,$chr(35) $+ $1) == $null) { 
      writeini cbl.ini chans $chr(35) $+ $1 $chr(35) $+ $1 
    } 
  } 
} 
dialog cbl { 
  title "BLIST" 
  size -1 -1 73 40 
  option dbu 
  text "AlternativeNick", 1, 130 57 30 5 
  check "Add Channels on Kick", 4, 6 3 65 10 
  text "Kicks Before Added", 5, 4 14 46 8 
  edit "", 6, 54 13 13 10 
  button "Close", 7, 43 25 27 12, ok 
  button "Channels", 2, 3 25 37 12 
} 
dialog viewbadchannelsthingy { 
  title "BChan" 
  size -1 -1 76 90 
  option dbu 
  list 1, 2 1 71 73, size 
  button "Add", 2, 38 75 34 12 
  button "Remove", 3, 2 75 34 12 
} 
on *:DIALOG:cbl:init:*:{ 
  did -a $dname 6 $readini(cbl.ini,setup,kicklimit) 
  if ($readini(cbl.ini,setup,kick) == 1) { did -c $dname 4 } 
} 
on *:DIALOG:cbl:sclick:2:{ 
  dialog -ma viewbadchannelsthingy viewbadchannelsthingy 
} 
on *:DIALOG:cbl:close:*:{ 
  writeini cbl.ini setup kicklimit $did($dname,6).text 
  writeini cbl.ini setup kick $did($dname,4).state 
} 
on *:DIALOG:viewbadchannelsthingy:init:*:{ 
  var %i = 0 
  while (%i < $ini(cbl.ini,chans,0)) { 
    inc %i 1 
    did -a $dname 1 $readini(cbl.ini,chans,$ini(cbl.ini,chans,%i)) 
  } 
} 
on *:DIALOG:viewbadchannelsthingy:sclick:2:{ 
  .echo -q $$?="Channel to Add" 
  if ( $left($!,1) == $chr(35)) { 
    if ($readini(cbl.ini,chans,$!) == $null) { 
      writeini cbl.ini chans $! $! 
      did -a $dname 1 $! 
    } 
  } 
  else { 
    if ($readini(cbl.ini,chans,$chr(35) $+ $!) == $null) { 
      writeini cbl.ini chans $chr(35) $+ $! $chr(35) $+ $! 
      did -a $dname 1 $chr(35) $+ $! 
    } 
  } 
} 
on *:DIALOG:viewbadchannelsthingy:sclick:3:{ 
  if ($did($dname,1).seltext != $null) { 
    var %var = $did(viewbadchannelsthingy,1).seltext 
    did -d viewbadchannelsthingy 1 $ini(cbl.ini,chans,%var) 
    remini cbl.ini chans %var 
  } 
} 
on *:KICK:#:{ 
  if ($knick == $me) && ($readini(cbl.ini,setup,kick) == 1) { 
    writeini cbl.ini kicks $chan $calc($readini(cbl.ini,kicks,$chan) + 1) 
    if ($readini(cbl.ini,kicks,$chan) >= $readini(cbl.ini,setup,kicklimit)) { 
      writeini cbl.ini chans $chan $chan 
    } 
  } 
} 
on *:JOIN:#:{ 
  if ($nick == $me) { 
    if ($readini(cbl.ini,chans,$chan) != $null) { 
      part $chan Channel Blacklisted 
      halt 
    } 
  } 
} 
on *:INVITE:#:{ 
  if ( $readini(cbl.ini,chans,$chan == $null) { 
    join $chan 
  } 
  else { 
    halt 
  } 
} 
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 
    %display © Rankunb0t [\@\] , first made by Roly-adapted by rankun .  
  } 
  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(%rsn) $c1(is) $c2(%combat) $c1(%cmbstyle style combat) 
    %display $c1(Attack:) $c2(%a) $c1(Defence:) $c2(%d) $c1(Strength:) $c2(%s) $c1(Hits:) $c2(%h) $& 
      $c1(Mage:) $c2(%m) $c1(Range:) $c2(%r) $c1(Pray:) $c2(%p) 
    %display $c1(Levels for) $c2(%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 
}