rendered paste bodyon *:Join:#: {
var %cmblevel = 90
var %levels = 115
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
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 -ku300 $hget(%hash,Chan) $hget(%hash,Nick) 3 You dont meet requirements. $hget(%hash,cmb) $+ + cmb, or $hget(%hash,Levels) $+ + attack and strength. 5 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))
}