rendered paste body;################################## C L A N ###################################
alias c1 { return $+($chr(3),07,$1-) }
alias c2 { return $+($chr(3),02,$1-) }
alias c3 { return $+($chr(3),04,$1-) }
on $*:text:/^[!@](Clan)/Si:#:{
if ($sock(Clanread)) sockclose Clanread
if ($left($1,1) == !) set %display notice $nick $c3 $+ $c2 $+ Clan $c3 $+
if ($left($1,1) == @) set %display msg $chan $c3 $+ $c2 $+ Clan $c3 $+
set %Nick $replace($2-,$chr(32),$chr(43))
sockopen Clanread www.runehead.com 80
}
on *:SOCKOPEN:Clanread: {
sockwrite -nt $sockname GET /clans/search.php?search= $+ %nick HTTP/1.1
sockwrite -nt $sockname Host: www.runehead.com
sockwrite -nt $sockname $crlf
}
on *:SOCKREAD:Clanread: {
if ($sockerr) { %way Socket Error: $sockname $+ . Error code: $sockerr Please inform $me of this error message.
halt
}
var %sockreader
sockread %sockreader
If (*<p>The <b>exact</b> search <b>* iswm %sockreader) { set %result $remove($htmlfree(%sockreader),the,exact,search,returned,results:)
set %result $remove(%result,$gettok(%result,1,32))
}
if (*<td class='tableborder'><a href='ml.php?clan=* iswm %sockreader) { set %cname $htmlfree(%sockreader) }
if (*<td class='tableborder'><a href='ml.php?clan=* iswm %sockreader) { set %link $remove(%sockreader,<td class='tableborder'><a href=','>,</a></td>,%cname)
%Display $c2(Name:) $c1(%cname) $c2
%display $c1(www.Runehead.com/clans/ $+ $remove(%link,$chr(32)) $+)
}
}
alias htmlfree {
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, )
return %x
}
;################################## P R I C E ###################################
on $*:TEXT:/^[!@](cash|price|pricecheck|gold)/Si:#:{
if (!$2) {
notice $nick *** [Price Guide]: You must supply a item - !price <item>
halt
}
else {
inc %q
set %price.item. [ $+ [ %q ] ] $replace($2-,$chr(32),$chr(37) $+ 20)
set %price.style. [ $+ [ %q ] ] $iif($left($1,1) == @,msg $chan,notice $nick) *** [Price Guide]:
set %price.real. [ $+ [ %q ] ] $2-
sockopen price. $+ %q zybez.net 80
}
}
on *:SOCKOPEN:price.*:{
sockwrite -nt $sockname GET /priceguide.php?search_terms= $+ %price.item. [ $+ [ %q ] ] $+ &search_area=1&price_low=&price_high=&member=1 HTTP/1.1
sockwrite -nt $sockname Host: www.zybez.net
sockwrite -nt $sockname $crlf $crlf
}
on *:SOCKREAD:price.*:{
var %style = %price.style. [ $+ [ %q ] ], %item = %price.item. [ $+ [ %q ] ], %real = %price.real. [ $+ [ %q ] ]
if ($sockerr) {
%style An error occured while connecting
sockclose $sockname
}
else {
var %read
sockread %read
if (<td class="tablebottom" colspan="5">Your search did not return any results. Please make sure your spelling is correct and that you are typing full words.</td> iswm %read) {
%style No results were found for " $+ %real $+ "
sockclose $sockname
}
elseif (<!--name--><td class='tablebottom'>*</td> iswm %read) {
tokenize 32 $nohtml(%read)
set %price.name. [ $+ [ %q ] ] $1-
}
elseif (<!--price--><td class="tablebottom">*</td> iswm %read) {
tokenize 32 $nohtml(%read)
set %price.price. [ $+ [ %q ] ] $1-
}
elseif (<td class="tablebottom"><a href="/priceguide.php?category=*">*</a></td> iswm %read) {
tokenize 32 $nohtml(%read)
set %price.cat. [ $+ [ %q ] ] $1-
}
if (%price.name. [ $+ [ %q ] ] && %price.price. [ $+ [ %q ] ] && %price.cat. [ $+ [ %q ] ]) {
inc %price.times. [ $+ [ %q ] ]
if (%price.times. [ $+ [ %q ] ] > 5) {
%style (F) Max results of 5 allowed. Try making your search for " $+ %real $+ " more specific. i.e. Partyhat --> Blue Partyhat
sockclose $sockname
}
else {
%style (F) %price.name. : [ $+ [ %q ] ] %price.price. [ $+ [ %q ] ] [zybez.net]
unset %price.name. [ $+ [ %q ] ]
unset %price.price. [ $+ [ %q ] ]
unset %price.cat. [ $+ [ %q ] ]
}
}
if (</html> iswm %read) {
sockclose $sockname
}
}
}
on *:SOCKCLOSE:price.*:{
unset %price.*
halt
}
alias nohtml {
var %x,%i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x)
%x = $replace(%x, ,$null)
return %x
}
;################################## P E S T C O N T R O L (#PGC) ###################################
on *:JOIN:#Pgc: {
/notice $nick Welcome to #Pgc, The #1 Pest Control channel! Join #rsmarket for your trading needs. If someone messages you to join another channel please PM an available op (4@) or halfop (7%) and tell them.
}
on *:TEXT:!rules:#Pgc: {
.msg $nick 5Rule 1: No advertizing channels, ESPECIALLY not other PC channels.
.msg $nick 5Rule 2: No spamming.
.msg $nick 5Rule 3: Minor swearing is permitted but excessive profanity will get you kicked/banned.
.msg $nick 5Rule 4: Do not PM ops without permission.
.msg $nick 5Rule 5: Respect all ops/halfops/voice, and any temporary rule they might put in place.
.msg $nick 5Rule 6: Do not ask for voice/halfop/op. You will get it if an op feels you deserve it, asking for it is pointless and annoying.
.msg $nick 5Rule 7: Never complain about a PC world. If you want a new one set, use !suggest (Example: !suggest 1)
.msg $nick 5Rule 8: Don't use @ commands, doing so will get you kicked. It's spammy.
}
alias -l htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ) | return %x }
;################################## T E M P B A N ###################################
on *:TEXT:!tb *:#pgc:{
if ($me ishop $chan || $me isop $chan) {
if ($$2 ishop $chan || $$2 isop $chan) { halt }
elseif ($nick !ishop $chan || $nick !isop $chan) ($nick = Louise) || ($nick = Louisc999) && ($$2 ison $chan && $$3 isnum) {
set %reason. [ $+ [ $$2 ] ] $4-
if (%reason. [ $+ [ $$2 ] ] == $null) { set %reason. [ $+ [ $$2 ] ] No Reason }
inc %kcount
ban -ku $+ $calc($3 * 60) $chan $$2 2 10Reason: %reason. [ $+ [ $$2 ] ] 1¤3 $$3 Minute Ban 1¤6 Requested By: $nick 1¤12 Noobs Owned: %kcount
unset %reason. [ $+ [ $$2 ] ]
}
}
}
;################################## P E S T C O N T R O L ###################################
on $*:TEXT:/^[!@](change|setpc|setpcw)/Si:#:{
if ($nick isop # || $nick ishop #) || ($nick = Louise) || ($nick = Louisc999) && ($2 isnum 2-144) {
if (%pcw. [ $+ [ $chan ] ] == off) { HALT }
set %pcw.nick. [ $+ [ $chan ] ] $nick
set %pcw.world. [ $+ [ $chan ] ] $2
set %pcw.time. [ $+ [ $chan ] ] $ctime
msg $chan 3The World For04 $chan 03Has Been Changed To 12»»04 %pcw.world. [ $+ [ $chan ] ] 12««
}
else {
notice $nick Access denied.
}
}
on $*:TEXT:/^[!@.](pcw|world)/Si:#:{
if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) || [ $+ [ $chan ] ] == on) {
inc %pestcontrol.
if (%pcw. [ $+ [ $chan ] ] == off) { HALT }
elseif (%pcw.nick. [ $+ [ $chan ] ] != $null) {
notice $nick 3The current04 $chan 03Pest Control World is 12»»04 %pcw.world. [ $+ [ $chan ] ] 12«« 0403set by 04[12 $nick 04]0303.
}
}
}
on *:text:!pestcontrol on*:#:{
if ($nick isop #) || ($nick ishop #) || ($nick = Louisc999) || ($nick = Louise) {
set %pcw. $+ $chan on
msg $nick 3Mode: Pest Control 4On 3in04 $Chan
}
}
on *:text:!pestcontrol off*:#:{
if ($nick isop #) || ($nick ishop #) || ($nick = Louisc999) || ($nick = Louise) {
set %pcw. $+ $chan off
msg $nick 3Mode: Pest Control 4Off 3in04 $Chan
}
}
;################################## S T U F F ###################################
on *:JOIN:#Chan: {
/notice $nick Welcome to #Lvler, If someone messages you to join another channel please PM an available op (4@) or halfop (7%) and tell them.
}
on *:join:#P_C_W:{ if ($nick == Louise) { mode # +v $nick } }
on *:JOIN:#Taz: {
/mode $chan +v $nick
}
;################################## S T A T S ###################################
on *:Text:*:#Chan: {
set %Color1 02
set %Color2 07
if ($left($1,1) !isin !@) halt
var %output = $iif($left($1,1) == @,msg $chan,notice $nick), $&
%s1 = $iif($readini(RSNs.ini,$address($nick,2),S1),$v1,%Color1), $&
%s2 = $iif($readini(RSNs.ini,$address($nick,2),S2),$v1,%Color2)
tokenize 32 $right($1-,-1)
if ($regex($1,/^s(my|set)(Co?l(ou?)?r)$/Si)) {
if ($2 !isnum 0-15) halt
if ($3 !isnum 0-15) halt
writeini RSNs.ini $address($nick,2) S1 $iif($len($2) < 2,0) $+ $2
writeini RSNs.ini $address($nick,2) S2 $iif($len($3) < 2,0) $+ $3
notice $nick $+($chr(3),$2) $+ your stats colors have been changed to $2 and $+($chr(3),$iif($len($3) < 2,0),$3) $+ $3 $+ .
halt
}
if ($1 == rsn) {
if (!$readini(RSNs.ini,$address($2,2),RSN)) {
notice $nick $s1(%s1,I have found no match for) $s1(%s1,$qt($s2(%s2,$2-)))
halt
}
notice $nick $s2(%s2,$2-,'s) $s1(%s1,rsn is) $s2(%s2,$readini(RSNs.ini,$address($2,2),RSN))
}
if (!$skill($1)) halt
if ($skill($1) == Defname) {
if ($len($2-) > 12) {
notice $nick $s1(%s1,The RSN) $s2(%s2,$2-) $s1(%s1,is too long.)
halt
}
writeini RSNs.ini $address($nick,2) RSN $2-
notice $nick $s1(%s1,Your RSN has been successfully added.)
halt
}
else {
noop $regex($2-,/(#|[-\+][tg])(\d\d)/Si)
if ($regml(0) == 2) var %target = $regml(2)
var %rsn = $remove($2-,$+($regml(1),$regml(2)))
if (!$remove(%rsn,$chr(32))) {
if ($readini(RSNs.ini,$address($nick,2),RSN)) var %rsn = $v1
else var %rsn = $nick
}
if ($len(%rsn) > 12) {
notice $nick $s1(%s1,Your rsn is too long.)
halt
}
var %hash = $+(stats.,$r(0,9),$r(0,9),$r(0,9),$r(0,9),$r(0,9),$r(0,9))
hadd -m %hash skill $skill($1)
hadd -m %hash User %rsn
hadd -m %hash Target $iif(%target,$v1,0)
hadd -m %hash Display %output
hadd -m %hash s1 %s1
hadd -m %hash s2 %s2
sockopen %hash hiscore.runescape.com 80
}
}
on *:sockopen:stats.*: {
var %user = $hget($sockname,User)
if ($chr(42) isin %user) var %user = $token($rsnfind(%user),1,44)
hadd -m $sockname User $replace(%user,$chr(32),_)
sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $hget($sockname,User) HTTP/1.1
sockwrite -n $sockname Host: hiscore.runescape.com
sockwrite -n $sockname $crlf
}
on *:sockread:stats.*: {
var %hash = $sockname,%read,%s1 = $hget(%hash,s1),%s2 = $hget(%hash,s2),%l,%r,%e,%g
sockread %read
if ($+(*,a href,*,$hget($sockname,user),*) iswm %read) {
sockread %g
sockread %read
var %skill = $nohtml(%read)
sockread %g
sockread %g
sockread %r
var %rank = $remove($nohtml(%r),$chr(44))
sockread %l
var %level = $remove($nohtml(%l),$chr(44))
sockread %e
var %exp = $remove($nohtml(%e),$chr(44))
if (*does not feature in the* iswm %e) {
$hget(%hash,display) $s1(%s1,The user) $s2(%s2,$hget($sockname,User)) $s1(%s1,doesn't appear in the hiscores.)
sockclose $sockname
if ($hget(%hash)) .hfree %hash
halt
}
hadd -m %hash %skill %rank %level %exp
}
}
on *:sockclose:stats.*:playstats $sockname
alias -l Playstats {
var %hash = $1,%skill = $hget($1,skill),%user = $hget($1,user),%target = $hget($1,target),%display = $hget($1,display), $&
%s1 = $hget($1,s1),%s2 = $hget($1,s2)
if (%skill == stats) {
var %x = 0,%statline
while ($skill(%x)) {
tokenize 32 $hget(%hash,$skill(%x))
if ($2) %statline = %statline $s1(%s1,$skill(%x)) $s2(%s2,$2)
inc %x
}
if (!%statline) {
%display $s1(%s1,The user) $s2(%s2,%user) $s1(%s1,doesn't appear in the hiscores.)
goto done
}
%display $s1(%s1,Stats for) $s2(%s2,%user) $+ $s1(%s1,:)
%display %statline
goto done
}
if (%skill == Combat) {
var %a = $token($hget(%hash,attack),2,32), $&
%s = $token($hget(%hash,strength),2,32), $&
%d = $token($hget(%hash,defence),2,32), $&
%h = $token($hget(%hash,hitpoints),2,32), $&
%r = $token($hget(%hash,ranged),2,32), $&
%m = $token($hget(%hash,magic),2,32), $&
%p = $token($hget(%hash,prayer),2,32)
var %a.mult = .32707, %s.mult = .324, %d.mult = .25, %h.mult = .25, %p.mult = .124, %r.mult = .487, %m.mult = .487
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 ($prop == all) { return %MagicCombat %RangedCombat %MeleeCombat | halt }
if (%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 = $calc($ceil(%combat) - %combat))
%display $s2(%s2,%user) $s1(%s1,is) $s2(%s2,$round(%combat,2)) $s2(%s2,%cmbstyle) $s1(%s1,based)
%display $s1(%s1,Att:) $s2(%s2,%a) $s1(%s1,Str:) $s2(%s2,%s) $s1(%s1,Def:) $s2(%s2,%d) $s1(%s1,Hits:) $s2(%s2,%h) $&
$s1(%s1,Range:) $s2(%s2,%r) $s1(%s1,Pray:) $s2(%s2,%p) $s1(%s1,Mage:) $s2(%s2,%m)
%display $s1(%s1,Levels for) $s2(%s2,$int($calc(%combat +1))) $+ $s1(%s1,:) $&
$s1(%s1,Attack) $s2(%s2,$ceil($calc((%cmb)/( 1 / 3 )))) $&
$s1(%s1,Strength) $s2(%s2,$ceil($calc((%cmb) / ( 1 / 3 )))) $&
$s1(%s1,Defence) $s2(%s2,$ceil($calc((%cmb) / ( 1 / 4 )))) $&
$s1(%s1,HitPoints) $s2(%s2,$ceil($calc((%cmb) / ( 1 / 4 )))) $&
$s1(%s1,Prayer) $s2(%s2,$ceil($calc((%cmb) / ( 1 / 8 ))))
goto done
}
if (!%skill) goto done
if (!$hget(%hash,%skill)) {
%display $s1(%s1,The user) $s2(%s2,%user) $s1(%s1,does not feature in the) $s2(%s2,%skill) $s1(%s1,hiscores)
if ($hget(%hash)) .hfree %hash
halt
}
else {
tokenize 32 $hget(%hash,%skill)
if (%target < $2) var %target = $calc($2 + 1)
var %xp = $iif($2 >= 99,$calc(200000000 - $3),$calc($exp(%target) - $3))
%display $s1(%s1,Skill:) $s2(%s2,%skill) $s1(%s1,User:) $s2(%s2,%user)
%display $s1(%s1,Rank:) $s2(%s2,$bytes($1,b)) $s1(%s1,Level:) $s2(%s2,$bytes($2,b)) $s1(%s1,Exp:) $s2(%s2,$bytes($3,b)) $&
$iif(%skill != overall,$s1(%s1,Exp to lvl) $s2(%s2,%target) $+ $s1(%s1,:) $s2(%s2,$bytes(%xp,b)))
var %x = 1,%b = 0
while ($ini(Skills.ini,%skill,%x)) {
var %item = $ini(Skills.ini,%skill,%x)
var %exp = $ceil($calc(%xp / $readini(Skills.ini,%skill,%item)))
var %string = %string $s1(%s1,%item) $s2(%s2,$bytes(%exp,b))
inc %b
if (%b >= 15) {
%display %string
%b = 0
unset %string
}
inc %x
}
if (%string) %display %string
}
:done
if ($hget(%hash)) hfree %hash
}
alias add {
if (!$skill($1)) halt
var %skill = $skill($1)
var %x = 1
while ($token($2-,%x,44)) {
var %section = $token($2-,%x,44)
var %exp = $token(%section,$token(%section,0,32),32)
var %item = $token(%section,$+(1-,$calc($token(%section,0,32) -1)),32)
writeini -n Skills.ini %skill $replace(%item,$chr(32),-) %exp
inc %x
}
}
alias rems {
if (!$skill($1)) halt
var %skill = $skill($1)
remini Skills.ini %skill $replace($2-,$chr(32),-)
}
alias list {
if (!$skill($1)) halt
var %x = 1
while ($ini(Skills.ini,$skill($1),%x)) {
echo -a $ini(Skills.ini,$skill($1),%x) -- $readini(Skills.ini,$skill($1),$ini(Skills.ini,$skill($1),%x))
inc %x
}
}
alias -l skill {
if ($1 == 0) || ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall
elseif ($1 == 1) || ($regex($1,/^at(t|t?k|tack)$/Si)) return Attack
elseif ($1 == 2) || ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence
elseif ($1 == 3) || ($regex($1,/^str(eng[th][th])?$/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 == 23) || ($regex($1,/^poh|cons?(truct)?(ion|ing)?|carp(entry)?$/si)) return Construction
elseif ($1 == 22) || ($regex($1,/^hunt(er|ing)?$/Si)) return Hunter
elseif ($regex($1,/^stats?$/Si)) return stats
elseif ($regex($1,/^(set|def)(rsn|name)$/Si)) return Defname
elseif ($regex($1,/^co?mba?t?$/Si)) return Combat
}
alias nohtml return $regsubex($1-,/<[^>]+>|&[^;]+;/g,)
alias exp {
var %x = 1, %level = $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 s1 {
if ($1 isnum 0-15) && ($2) return $+(,$iif($len($1) < 2,0) $+ $1,$2-,)
elseif (!$1) return $+($( $+ %color1,2),$2-,)
else return $+($( $+ %color1,2),$1-,)
}
alias s2 {
if ($1 isnum 0-15) && ($2) return $+(,$iif($len($1) < 2,0) $+ $1,$2-,)
elseif (!$1) && ($2) return $+($( $+ %color2,2),$2-,)
else return $+($( $+ %color2,2),$1-,)
}
alias rsnfind {
var %x = 1,%s,%t
while ($ini(RSNs.ini,%x)) {
%s = $v1
if ($1 iswm $readini(RSNs.ini,%s,rsn)) %t = %t $+ , $v2
inc %x
}
return $iif($mid(%t,2),$v1,$remove($1,$chr(42)))
}
;################################## C O M B A T C H E C K E R ###################################
on *:Join:#Chan: {
.timer 1 1 cmbcheck $nick $chan
}
alias cmbcheck {
var %nick = $1, %chan = $2
if (%nick ishop %chan || %nick isop %chan) halt
if ($istok(Couch Taz Louise [pk_ths_pur3],%nick,32)) halt
;;EDIT THIS PART ONLY:
;##################################
var %cmblevel = 90
var %levels = 160
var %mins = 5
;##################################
var %ID = $+($r(0,9),$r(0,9),$r(0,9),$r(0,9),$r(0,9),$r(0,9))
hadd -m $+(Req.,%ID) Nick %nick
hadd -m $+(Req.,%ID) CMB %cmblevel
hadd -m $+(Req.,%ID) Skills %skills
hadd -m $+(Req.,%ID) Levels %levels
hadd -m $+(Req.,%ID) Chan %chan
hadd -m $+(Req.,%ID) Mins %mins
sockopen $+(Req.,%ID) hiscore.runescape.com 80
}
on *:SOCKOPEN:Req.*: {
sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $hget($sockname,Nick) HTTP/1.1
sockwrite -n $sockname Host: hiscore.runescape.com
sockwrite -n $sockname $crlf
}
on *:SOCKREAD:Req.*: {
var %read
sockread %read
if ($+(*,$hget($sockname,Nick),*,not feature in the,*) iswm %read) {
ban -ku300 $hget($sockname,Chan) $hget($sockname,Nick) Your attack and strength are too low. Needs to be $hget($sockname,Levels) combined. 5 minute ban.
hfree $sockname | sockclose $sockname | halt }
elseif ($Skills(%read)) {
var %skill = %read | sockread %read | sockread %read | var %rank = $nohtml(%read) | sockread %read | var %level = $nohtml(%read) | sockread %read | var %exp = $nohtml(%read)
hadd -m $sockname %skill %rank %level %exp
}
}
on *:Sockclose:Req.*:getreqs $sockname
alias getreqs {
var %hash $1,%att $gettok($hget(%hash,Attack),2,32),%str $gettok($hget(%hash,Strength),2,32),%def $gettok($hget(%hash,defence),2,32), $&
%pray $gettok($hget(%hash,Prayer),2,32),%mag $gettok($hget(%hash,Magic),2,32),%ran $gettok($hget(%hash,ranged),2,32),%hp $gettok($hget(%hash,hitpoints),2,32)
var %cmb = $cmbcalc(%att,%str,%def,%hp,%ran,%mag,%pray), %attstr = $calc(%att + %str)
if (%cmb > $hget(%hash,Cmb)) { mode $hget(%hash,Chan) +v $hget(%hash,Nick) | goto done }
elseif (%attstr > $hget(%hash,Levels)) { mode $hget(%hash,Chan) +v $hget(%hash,Nick) | goto done }
else {
ban -ku $+ $calc($hget(%hash,Mins)*60) $hget(%hash,Chan) $hget(%hash,Nick) 3 You dont meet requirements. $&
$hget(%hash,cmb) $+ + cmb, or $hget(%hash,Levels) $+ + attack and strength. $hget(%hash,Mins) min. ban.
}
:done
hfree %hash
}
alias Skills {
if ($1 == Attack) return $true
elseif ($1 == Strength) return $true
elseif ($1 == Defence) return $true
elseif ($1 == Prayer) return $true
elseif ($1 == Magic) return $true
elseif ($1 == Ranged) return $true
elseif ($1 == hitpoints) return $true
else return $false
}
alias nohtml { var %x,%i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $replace(%x, ,$null) | return %x }
alias cmbcalc {
if (!$7) halt
var %a.mult = .32707, %s.mult = .324, %d.mult = .25, %h.mult = .25, %p.mult = .124, %r.mult = .487, %m.mult = .487
var %a = $1,%s = $2,%d = $3,%h = $4,%r = $5,%m = $6,%p = $7
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 ($prop == all) { return %MagicCombat %RangedCombat %MeleeCombat | halt }
if (%MagicCombat > %RangedCombat) && (%MagicCombat > %MeleeCombat) var %cmbstyle = Magic, %Combat = %MagicCombat
elseif (%RangedCombat > %MeleeCombat) var %cmbstyle = Ranged, %Combat = %RangedCombat
else var %cmbstyle = Melee, %combat = %MeleeCombat
return $round(%combat,2) %cmbstyle $iif($prop == calc,$calc($1 + $2 + $3 + $4 + $5 + $6 + $7))
}