;********************************************************************* ;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 }