;*********************************************************************
;COMMANDS*************************************************************
;!stats @stats !calc @calc !clan @clan !price @price !combat @combat**
;!kb !kick !ban !unban !voice !devoice !halfop !dehalfop !op !deop****
;SPECIAL COMMANDS:****************************************************
;Type !pcw-on for PCW Script on then type !Pcw. !Pcw-off to turn off**
;Type !mimic-on for Mimic. Then type !mimic NAME. !mimic-off to turn**
;off the mimic script. Mimic script copies the person*****************
on *:TEXT:!stats *:#:{
if ([**]Genie isin $chan) { halt }
if (LooterBOT isin $chan) { halt }
if ($sock(stats)) {
sockclose stats
}
set %nick $nick
set %rsn $2
set %display $iif($left($1,1) == @,msg $chan,.notice $nick)
sockopen stats slushpuppy.silverinterlocution.org 80
}
on *:SOCKOPEN:stats:{
if (LooterBot isin $chan) { halt }
sockwrite -nt $sockname GET /rsstats.php?stats= $+ %rsn HTTP/1.1
sockwrite -nt $sockname Host: slushpuppy.silverinterlocution.org $+ $crlf $+ $crlf
}
on *:SOCKREAD:stats:{
if (LooterBot isin $chan) { halt }
if ($sockerr) { %display Socket error | unset %display | unset %rsn | sockclose $sockname | halt }
else {
var %read
sockread -f %read
if (*Overall* iswm %read) {
/set %read $remove(%read,
)
%display Stats for %rsn :
%display $htmlfree(%read)
}
}
}
alias htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ) | return %x }
on *:TEXT:@stats *:#:{
if ([**]Genie isin $chan) { halt }
if (LooterBOT isin $chan) { halt }
if ($sock(stats)) {
sockclose stats
}
set %chan $chan
set %rsn $2
set %display $iif($left($1,1) == !,.notice $nick,msg $chan)
sockopen stats slushpuppy.silverinterlocution.org 80
}
on *:SOCKOPEN:stats:{
sockwrite -nt $sockname GET /rsstats.php?stats= $+ %rsn HTTP/1.1
sockwrite -nt $sockname Host: slushpuppy.silverinterlocution.org $+ $crlf $+ $crlf
}
on *:SOCKREAD:stats:{
if ($sockerr) { %display Socket error | unset %display | unset %rsn | sockclose $sockname | halt }
else {
var %read
sockread -f %read
if (*Overall* iswm %read) {
/set %read $remove(%read,
)
%display Stats for %rsn :
%display $htmlfree(%read)
}
}
}
alias htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ) | return %x }
on *:text:!calc*:#:{
/notice $nick [12Calc] The answer to $2 is : $calc( $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ) }
on *:text:@calc*:#:{
/msg $chan [12Calc] The answer to $2 is : $calc( $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ) }
ALIAS -l c1 RETURN $+($Chr(2),[,$Chr(3),04,$1-,$Chr(3),],$Chr(2),:)
ALIAS -l c2 RETURN $+($Chr(3),07,$1-,$Chr(3))
ALIAS -l Sep RETURN $+($Chr(2),$Chr(3),04,$Chr(124),$Chr(3),$Chr(2))
; Change '3' to however many recent news articles you want to display.
ALIAS -l MaxNews RETURN 2
ALIAS -l CleanUp {
IF ($Prop == Error) $($+(%,target.,$1),2) Socket Error while connecting to runescape.com!
.Remove $1
UNSET $+(%,target.,$1)
SockClose $1
}
ALIAS -l BExtract {
VAR %be.1 = $GetTok($2,1,59), %be.2 = $GetTok($2,2,59), %start = $BFind($1, $iif($3, $3, 1), %be.1)
IF ($Prop == no) VAR %start = $Calc(%start + $Len(%be.1))
VAR %end = $Calc($BFind($1, %start, %be.2) - 1)
IF (($Calc(%end - %start) > 255) || ($Calc(%end - %start) < 1)) RETURN $null
VAR %return = $BVar($1, %start $+ - $+ %end).text
IF (%return isnum) RETURN $Null
ELSE RETURN %return
}
ON *:LOAD:.TimerRSNews 0 3600 Signal RSNEWS *
ON *:CONNECT:.TimerRSNews 0 3600 Signal RSNEWS *
ON *:DISCONNECT:.TimerRSNews Off
ON $*:TEXT:/^[!@.>~$%](news|rsnews)$/Si:#:Signal RSNEWS $1 $chan $nick
ON *:SIGNAL:RSNEWS:{
VAR %s = 1, %chan = $2, %nick = $3
WHILE ($Sock($+(news.,%s))) INC %s
IF ($1 == *) SET $+(%,target.news.,%s) amsg $c1(RS News Update)
ELSE SET $+(%,target.news.,%s) $iif($Left($1,1) == @,msg %chan,.notice %nick) $c1(RS News)
SockOpen $+(news.,%s) www.runescape.com 80
}
ON *:SOCKOPEN:NEWS.*:{
IF ($SockErr > 0) Noop $CleanUp($SockName).Error
SockWrite -nt $SockName GET /lang/en/aff/runescape/title.ws HTTP/1.1
SockWrite -nt $SockName $+(Host: www.runescape.com,$Str($CrLf,2))
}
ON *:SOCKREAD:NEWS.*:{
IF ($SockErr > 0) Noop $CleanUp($SockName).Error
SockRead &news
BWrite $SockName -1 &news
}
ON *:SOCKCLOSE:NEWS.*:{
IF ($IsFile($SockName)) {
BRead $SockName 1 $File($SockName).size &news
VAR %target = $($+(%,target.,$SockName),2), %news = $Replace($Remove($BExtract(&news,;),),,;)
IF (($GetTok(%target,1,32) == amsg) && (%news != %rsnews)) {
SET %rsnews %news
%target $+(",$c2($GetTok(%news,2,59)),") on $c2($GetTok(%news,1,59)) $c1(***NEW NEWS***)
}
ELSEIF ($GetTok(%target,1,32) != amsg) {
VAR %newsoutput = $iif($MaxNews > 1,[1]:) $+(",$c2($GetTok(%news,2,59)),") on $c2($GetTok(%news,1,59)), %i = 2
WHILE (%i <= $MaxNews) {
VAR %news = $Replace($Remove($BExtract(&news,;,$Calc($BFind(&news,1,$GetTok(%news,2,59))
+ 5)),),,;)
IF (%news) %newsoutput = %newsoutput $Sep $+([,%i,]:) $+(",$c2($GetTok(%news,2,59)),") on $c2($GetTok(%news,1,59))
INC %i
}
%target %newsoutput
}
}
ELSE $($+(%,target.,$SockName),2) Unable to retrieve data from runescape.com!
CleanUp $SockName
on *:text:*define *:*: {
;COLOR SETTING:
set %col 09
inc %ID 1
set $+(%,search.,%ID) $replace($2-,$chr(32),+) $iif($chan,$iif($left($1,1) == !,notice $nick,msg $chan),msg $nick)
sockopen $+(def.,%ID) wordnet.princeton.edu 80
}
on *:SOCKOPEN:def.*: {
sockwrite -nt $sockname GET /perl/webwn?s= $+ $gettok($($+(%,search.,%ID),2),1,32) HTTP/1.1
sockwrite -nt $sockname Accept-Language: en-us
sockwrite -nt $sockname Host: wordnet.princeton.edu
sockwrite -t $sockname $str($crlf,2)
}
on *:SOCKREAD:def.*: {
var %IDt = $right($sockname,-4)
var %target = $gettok($($+(%,search.,%IDt),2),2-,32)
if ($sockerr) {
%target $chr(91) $col(ERROR) $chr(93) Socket error
sockclose $sockname
}
else {
:nextread
var %read | sockread %read
if (Your search did not return any results. isin $htmlfree(%read)) {
%target $chr(91) $col(DEFINE) $chr(93) No results found
unset %search. $+ $right($sockname,-4)
sockclose $sockname
}
elseif (S: isin $htmlfree(%read)) {
if (SEARCH DISPLAY OPTION == $remove($htmlfree(%read),S:,)) { goto nextread }
if (KEY isincs $remove($htmlfree(%read),S:,)) { goto nextread }
if ($($+(%,reads.,%IDt),2) == $null) { set $+(%,reads.,%IDt) 1 }
if ($($+(%,reads.,%IDt),2) < 3) {
%target $chr(91) $col(DEFINE) $chr(93) $remove($htmlfree(%read),S:,)
inc $+(%,reads.,%IDt) 1
goto nextread
}
close -m $nick
unset %search. $+ $right($sockname,-4) | unset %reads. $+ $right($sockname,-4)
sockclose $sockname
}
}
}
alias -l col { return $+($chr(3),$iif($len(%col) == 2,%col,$+(0,%col)), $1-, $chr(3)) }
alias -l htmlfree {
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, )
return %x
}
on *:TEXT:!rsplayers:#: {
if ($sock(RSplay)) {
.sockclose RSplay
}
sockopen RSplay runescape.com 80
set %chan $chan
}
on *:SOCKOPEN:RSplay: {
sockwrite -n $sockname GET /lang/en/aff/runescape/title.ws
sockwrite -n $sockname Host: runescape.com
sockwrite $sockname $crlf
}
on *:SOCKREAD:RSplay: {
if ($sockerr) {
msg %chan There was an error while the socket was being read. ( $+ $sockerr $+ )
halt
}
else {
var %sockreader
sockread %sockreader
tokenize 32 $nohtml(%sockreader)
if (There are currently * people playing!* iswm $1-) {
msg %chan 7There are currently $4 people playing RuneScape.
unset %chan
sockclose RSplay
}
}
}
alias nohtml { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x }