hi
u can use "sockmark" instead "set" then use var for $2/$nick
for sockread u can use a regex and hash tables also that an idea to better explain my comment
on $*:TEXT:/^[!.@]stats/Si:#:{
if ($2) var %rsn.nick $replace($2-,$chr(32),$chr(95))
elseif ($readini(Defnames.ini,DefRSN,$address($nick,3))) var %rsn.nick $v1
Else var %rsn.nick $nick
sockopen Stats. www.rscript.org 80
sockmark Stats. $iif($mid($1,1,1) == $chr(64),msg #,.notice $nick) |www.rscript.org| %rsn.nick
}
on *:SOCKOPEN:Stats.:{
tokenize 124 $sock($sockname).mark
sockwrite -n $sockname GET /lookup.php?type=stats&user= $+ $3 HTTP/1.1
sockwrite -n $sockname Host: $2
sockwrite -n $sockname $crlf
}
on *:SOCKREAD:Stats.:{
if ($sockerr) { halt }
Else {
tokenize 124 $sock($sockname).mark
var %stats | sockread %stats
if (%stats == STAT: not found) { $1 $lg(Error) $cc1($chr(40)) $cc2($2) $cc1($chr(41)) $cc2(was not found in the RuneScape Hiscores.) | sockclose $sockname }
elseif $regex($1-,/STAT\:(Overall|Attack|Defence|Strength|Hitpoints|Ranged|Prayer|Magic|Cooking|Woodcutting|Fletching|Fishing|Firemaking|Crafting|Smithing|Mining|Herblore|Agility|Thieving|Slayer|Farming|Hunter|Construction|Summoning|Runecraft)\s\w+\s(\d+)/i) {
hadd -m stats.x $regml(1) $cc2($regml(1) $+ :) $cc1($regml(2))
}
elseif $regex($1-,/STAT:(Dueling|FOG)\s\w+(\s(\d+))?/i) {
hadd -m stats.y $regml(1) $cc2($regml(1) $+ :) $cc1($iif($regml(3),$v1,N/R))
}
elseif (*DEBUG:* iswm %stats) {
$1 $lg($3) $regsubex($str(.,$hget(stats.x,0).data),/./g,$hget(stats.x,\n).data $+ $chr(32))
$1 $lg($3) $regsubex($str(.,$hget(stats.y,0).data),/./g,$hget(stats.y,\n).data $+ $chr(32))
sockclose $sockname
}
}
}
on *:sockclose:Stats.:hfree -w stats.*