on *:input:*:{ if ($left($1,1) isin /~) && ($regex($right($1,-1),/^track(er)?$/i)) { if (!%defname) { if ($?("What is your rsn?")) set %defname $replace($v1,$chr(32),-,-,_) else { echo -agt $c1(Specify a default rsn.) halt } } var %style = $iif(/* iswm $1,echo -agt,msg $target), %sock = 1 while ($sock(track.*,%sock)) inc %sock if ($numtok($1-,64) > 1) var %time = $iif($gettok($1-,$v1,64) isnum,$v1,$duration($v1)) else var %time = $duration(1wk) tokenize 32 $gettok($1-,1,64) if ($2-) { if ($setskill($2)) { var %skill = $v1, %time.temp = $sorttok($duration(1day) $duration(1wk) $duration(4wks) %time,32,n) if ($findtok(%time.temp,%time,2,32)) %time.temp = $deltok(%time.temp,$v1,32) %time = $replace(%time.temp,$chr(32),$chr(44)) if ($3-) var %rsn = $replace($v1,$chr(32),-,-,_) else var %rsn = %defname } else var %rsn = $replace($2-,$chr(32),-,-,_), %skill = all } else var %rsn = %defname, %skill = all if (%rsn) && (%skill) && (%time) { sockopen $+(track,.,%sock) rscript.org 80 sockmark $+(track,.,%sock) %style %rsn %skill %time } haltdef } } on *:sockopen:track.*:{ tokenize 32 $gettok($sock($sockname).mark,3-,32) sockwrite -nt $sockname GET $+(/lookup.php?type=track&user=,$1,&skill=,$2,&time=,$3) HTTP/1.1 sockwrite -nt $sockname Host: rscript.org sockwrite -nt $sockname $crlf } on *:sockread:track.*:{ if ($sockerr) return tokenize 32 $sock($sockname).mark var %sock, %style = $1-2, %rsn = $3, %skill = $4, %time = $5 sockread %sock tokenize 58 %sock if ($setskill(%skill)) { if (%sock == PHP: Invalid argument supplied for foreach()) %style $c2(%rsn) $c1(does not appear in the highscores for) $+($c2(%skill),$c1(.)) if ($1 == 0) sockmark $sockname $sock($sockname).mark $2 if ($1 == started) { var %a = 1, %b while ($gettok(%time,%a,44)) { if ($v1 > $2) { %b = $+(%b,$iif(%b,$chr(44)),$2) break } %b = $+(%b,$iif(%b,$chr(44)),$gettok(%time,%a,44)) inc %a } sockmark $sockname $puttok($sock($sockname).mark,%b,5,32) } if ($findtok(%time,$remove($1,*),1,44)) { var %xp.b = $gettok($sock($sockname).mark,6,32), %xp.a = $calc(%xp.b - $2), %level.a = $rxp(%xp.a), %level.b = $rxp(%xp.b) if ($2) sockmark $sockname $sock($sockname).mark $c1($duration($iif($remove($1,*) > $duration(1hr),$calc($v1 - ($v1 % $v2)),$v1))) $c2($+(+,$bytes($2,b))) $c2($iif(%skill != Overall,$iif($calc(%level.b - %level.a),$+($chr(40),%level.a,-,%level.b,$chr(41)),$+($chr(40),%level.a,$chr(41))))) if ($findtok(%time,$remove($1,*),1,44) == $numtok(%time,44)) { if ($gettok($sock($sockname).mark,7-,32)) %style $c2(%skill) $c1(gains for) $+($c2(%rsn),$c1(:)) $gettok($sock($sockname).mark,7-,32) else %style $c2(%rsn) $c1(has gained) $c1(no) $c2(%skill) $iif(%skill != Overall,$c2($+($chr(40),%level.a,$chr(41)))) $c1(exp in the past) $+($c2($duration($iif($remove($1,*) > $duration(1hr),$calc($v1 - ($v1 % $v2)),$v1))),$c1(.)) } } } else { if (%sock == 0:-1) { %style $c2(%rsn) $c1(does not appear in the highscores for any skills.) sockclose $sockname } if ($1 == started) && ($2 < %time) sockmark $sockname $puttok($sock($sockname).mark,$2,5,32) if ($setskill($2)) { if (start == $1) sockmark $sockname $sock($sockname).mark $2-3 if (gain == $1) && ($findtok($sock($sockname).mark,$2,1,32)) { var %pos = $v1, %temp = $deltok($sock($sockname).mark,$+(%pos,-,$calc(%pos + 1)),32) if ($4) var %xp.b = $gettok($sock($sockname).mark,$calc(%pos + 1),32), %xp.a = $calc(%xp.b - $4), %level.a = $rxp(%xp.a), %level.b = $rxp(%xp.b), %fin = $iif($calc(%level.b - %level.a),$+(%level.a,-,%level.b),%level.a), %temp = $instok(%temp,$c1($2) $iif($2 != Overall,$c2($+($chr(40),%fin,$chr(41)))) $c2($+(+,$bytes($4,b))),%pos,32) sockmark $sockname %temp } } if ($1 == END) { tokenize 32 $sock($sockname).mark var %a = 0 while ($setskill(%a)) { if ($findtok($1-,$v1,1,32)) tokenize 32 $deltok($1-,$+($v1,-,$calc($v1 + 1)),32) inc %a } var %fin, %fin.a = $6- if ($6) %fin = $c1(Experience gains for) $c2(%rsn) $c1(in the past) $+($c2($duration($iif(%time > $duration(1hr),$calc($v1 - ($v1 % $v2)),$v1))),$c1(:)) else %fin = $c2(%rsn) $c1(has gained) $c2(no) $c1(experience in the past) $+($c2($duration($iif(%time > $duration(1hr),$calc($v1 - ($v1 % $v2)),$v1))),$c1(.)) while ($len(%fin.a) >= $calc(450 - $len(%fin))) var %fin.b = $gettok(%fin.a,-3-,32) %fin.b, %fin.a = $deltok(%fin.a,-3-,32) while ($len(%fin.b) >= 450) var %fin.c = $gettok(%fin.b,-3-,32) %fin.c, %fin.b = $deltok(%fin.b,-3-,32) %style %fin %fin.a if (%fin.b) %style $v1 if (%fin.c) %style $v1 } } } alias rxp { var %a = 1 while ($1 >= $xp(%a)) inc %a return $calc(%a - 1) }