AliceChat — File Browser
AliceChatv2.2 / AliceChatv2.2 / AliceChat-2.2 / alice.mrc
alice.mrc — 22.09 KB — Download this file
/*
A.L.I.C.E chatterbot, AliceChat v2.1 (socketbot version)
for J-Alice Engine [http://j-alice.org]
Copyright (C) 2004 bizkut
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Please read the Readme.html file
checkout http://www.malaynet.org
by bizkut@gamebox.net
*/
menu status,channel,query,menubar,@Alice.*,@Debug.*,@Monitor {
-
AliceChat
.$iif($sock(alicesock),$style(2)) Connect:alicechat
.$iif(!$sock(alicesock),$style(2)) Disconnect:alicedie
.View
..Monitor:$iif(!$window(@Monitor),alice.mon,window -a @Monitor)
..Debug:$iif(!$window(@Debug.Alice),alice.dbg,window -a @Debug.Alice)
.$iif(!$sock(alicesock),$style(2)) Command
..Status:.msg %alice.nick !status
..Join Chan:.msg %alice.nick !join $$?="Enter #chan the bot will join"
..Part Chan:.msg %alice.nick !part $$?="Enter #chan the bot will part"
..Start Chat:.msg %alice.nick !start $$?="#chan/nick to start chat"
..Stop Chat:.msg %alice.nick !stop $$?="#chan/nick to stop chat"
..Say:.msg %alice.nick !say $$?="#chan/nick to say" $$?="Message to say"
..Act:.msg %alice.nick !act $$?="#chan/nick to act" $$?="Message to act"
..Notice:.msg %alice.nick !notice $$?="#chan/nick to notice" $$?="Message to notice"
..Raw Cmd:.msg %alice.nick !raw $$?="Command to issue to IRC Server"
..Stop ALL!:alicestop
.$iif($sock(alicesock),$style(2)) Setting:alicesett
-
}
on *:load: {
echo -
echo AliceChat v2.1 (socketbot version)
echo for J-Alice Engine [http://j-alice.org]
echo Copyright (C) 2004 bizkut
echo -
echo This program is free software; you can redistribute it and/or modify
echo it under the terms of the GNU General Public License as published by
echo the Free Software Foundation; either version 2 of the License, or
echo (at your option) any later version.
echo -
echo This program is distributed in the hope that it will be useful,
echo but WITHOUT ANY WARRANTY; without even the implied warranty of
echo MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
echo GNU General Public License for more details.
echo -
echo You should have received a copy of the GNU General Public License
echo along with this program; if not, write to the Free Software
echo Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
echo -
echo Please read the Readme.html file
echo checkout http://www.malaynet.org
echo by bizkut@gamebox.net
echo -
}
on *:unload: { $iif($sock(alicesock),sockwrite -n alicesock QUIT I'm afraid not to see you again..) | unset %alice.* }
alias alicechat {
if ($status = disconnected) { echo -a 4ERROR You are Disconnected. Plz connect to IRC first! | return }
elseif ($sock(alicesock)) { echo -a 4ERROR Alice already online. Please type /msg %alice.nick !start #chan/nick to activate her. | return }
elseif (!%alice.nick) { alicesett | set %alice.ftime 1 | return }
sockopen alicesock %alice.ircs %alice.sport
echo -a AliceChat is connecting....
}
alias alicestop {
var %alice.stop $input(Are you sure to stop ALL AliceChat sessions?,w,Stop ALL Sessions)
if (%alice.stop) .msg %alice.nick !stopall
}
alias alicedie sockwrite -n alicesock QUIT Life is so short..
alias alicesett $iif(!$sock(alicesock),dialog -md aliceset aliceset,set %alice.err $input(AliceChat is already running! Plz disconnect her first,ho,AliceChat Setting))
dialog aliceset {
title "AliceChat :: Settings"
size -1 -1 130 100
option type dbu
box "", 1, 1 1 128 98
text "Bot Nick:", 2, 8 10 30 10
edit "", 3, 30 8 48 10, autohs
text "Pass:", 4, 81 10 15 10
edit "",5, 95 8 30 10, autohs password
text "Server:", 8, 11 25 30 10
edit "irc.malaynet.org", 9, 30 23 48 10, autohs
text "Port:", 10, 82 25 15 10
edit "6667", 11, 95 23 30 10, autohs
text "BotMaster:", 12, 3 40 30 10
edit "", 13, 30 38 48 10, autohs
box "J-Alice Setting", 14, 3 50 124 30
text "Address:", 15, 8 63 30 10
edit "localhost", 16, 32 61 30 10, autohs
text "Port:", 17, 65 63 20 10
edit "8000", 18, 78 61 20 10, autohs
button "Default", 19, 102 61 20 10, flat
button "Ok", 20, 25 83 30 12, ok
button "Cancel", 21, 75 83 30 12, cancel
}
on *:dialog:aliceset:init:0: {
if (%alice.nick) did -o aliceset 3 1 %alice.nick
if (%alice.auth) did -o aliceset 5 1 $decode(%alice.auth,m)
if (%alice.ircs) did -o aliceset 9 1 %alice.ircs
if (%alice.sport) did -o aliceset 11 1 %alice.sport
$iif(%alice.mstr,did -o aliceset 13 1 %alice.mstr,did -o aliceset 13 1 $me)
if (%alice.jal) did -o aliceset 16 1 %alice.jal
if (%alice.pjal) did -o aliceset 18 1 %alice.pjal
}
on *:dialog:aliceset:sclick:19: {
did -o aliceset 16 1 localhost
did -o aliceset 18 1 8000
}
on *:dialog:aliceset:sclick:20: {
set %alice.tmpnick $did(aliceset,3)
set %alice.nick $did(aliceset,3)
set %alice.auth $encode($did(aliceset,5),m)
set %alice.ircs $did(aliceset,9)
set %alice.sport $did(aliceset,11)
set %alice.mstr $did(aliceset,13)
set %alice.jal $did(aliceset,16)
set %alice.pjal $did(aliceset,18)
if (%alice.ftime) { alicechat | unset %alice.ftime }
}
on *:sockopen:alicesock: {
if ($sockerr > 0) { echo 4 AliceChat unable to connect IRC Server! | return }
.write -c $shortfn($scriptdirdata\debug.log)
sockwrite -n alicesock NICK %alice.tmpnick
sockwrite -n alicesock USER Alice "" " $+ %alice.ircs $+ " :Mirc Artificial Intelligent Relay Chat
}
on *:sockread:alicesock: {
if ($sockerr > 0) { echo 4 AliceChat Error on connect IRC Server! Plz open Debug window. | return }
sockread %alice.read
tokenize 32 $strip(%alice.read,burc)
if ($window(@Debug.Alice)) {
echo 4 @Debug.Alice $1-
.write $shortfn($scriptdirdata\debug.log) $1-
}
if ($1 == PING) { sockwrite -n alicesock PONG $2 }
elseif ($2 == 304) {
sockwrite -n alicesock PRIVMSG %alice.mstr :4 $+ $4-
}
elseif ($2 == 376) {
set %alice.nick %alice.tmpnick
;; need this? she is a bot...
;; sockwrite -n alicesock MODE %alice.nick +B
if (%alice.mstr != $me) .timer 1 1 alice.mstrchk
else alice.mstrinf
}
elseif ($2 == 401) {
if ($window(@Alice. $+ $4)) { echo 4 @Alice. $+ $4 $4- }
elseif ($4 == %alice.mstr) { set %alice.mstr $me }
else sockwrite -n alicesock PRIVMSG %alice.mstr :4ERROR $4-
}
elseif ($2 == 404) {
sockwrite -n alicesock PRIVMSG %alice.mstr :4ERROR $4-
}
elseif ($2 == 433) {
if (Nickname is already in use isin $3-) {
unset %alice.*nick
.timer 1 1 alice.autherr
}
}
elseif ($2 == JOIN) {
if ($readini($aldata,Channel,$gettok($1-,2,58)) == Enable) {
if ($gettok($gettok($1,1,58),1,33) == %alice.nick) {
.timerjoin 1 5 sockwrite -n alicesock PRIVMSG $gettok($1-,2,58) :hello all! :)
}
}
}
elseif ($2 == NICK) {
var %alice.ppl $gettok($gettok($1,1,58),1,33)
if (%alice.ppl == %alice.nick) {
set %alice.nick $gettok($1-,2,58)
sockwrite -n alicesock PRIVMSG %alice.mstr :My nick now is $gettok($1-,2,58)
}
elseif (%alice.ppl == %alice.mstr) {
set %alice.mstr $gettok($1-,2,58)
}
}
elseif ($2 == NOTICE) {
if ($gettok($gettok($1,1,58),1,33) == NickServ) {
if ($3 == %alice.nick) {
if (IDENTIFY isin $4-) {
if (!%alice.auth) .timer 1 1 alice.autherr
else sockwrite -n alicesock PRIVMSG Nickserv :IDENTIFY $decode(%alice.auth,m)
}
elseif (Password incorrect isin $4-) {
unset %alice.auth
.timer 1 1 alice.autherr
}
}
}
}
elseif ($2 == PRIVMSG) {
var %alice.ppl $gettok($gettok($1,1,58),1,33)
if (($3 == %alice.nick) && (%alice.ppl != %alice.nick)) {
if (:!* iswm $4) {
if (%alice.ppl == %alice.mstr) {
if ($4 == :!help) {
.timer 1 1 sockwrite -n alicesock PRIVMSG %alice.mstr :4!join <#chan> - Join me a channel.
.timer 1 2 sockwrite -n alicesock PRIVMSG %alice.mstr :4!part <#chan> - Part me joined channel.
.timer 1 3 sockwrite -n alicesock PRIVMSG %alice.mstr :4!start <#chan/nick> - Start AliceChat on #chan/nick
.timer 1 4 sockwrite -n alicesock PRIVMSG %alice.mstr :4!stop <#chan/nick> - Start AliceChat on #chan/nick
.timer 1 5 sockwrite -n alicesock PRIVMSG %alice.mstr :4!say <#chan/nick> <msg> - Make me saying on #chan/nick
.timer 1 6 sockwrite -n alicesock PRIVMSG %alice.mstr :4!act <#chan/nick> <msg> - Make me acting (action) on #chan/nick
.timer 1 7 sockwrite -n alicesock PRIVMSG %alice.mstr :4!notice <#chan/nick> <msg> - Make me notice on #chan/nick
.timer 1 8 sockwrite -n alicesock PRIVMSG %alice.mstr :4!raw <command> [string] - Issue custom command
.timer 1 9 sockwrite -n alicesock PRIVMSG %alice.mstr :4!stopall - Will Stop AliceChat on ALL #chan/nick
.timer 1 10 sockwrite -n alicesock PRIVMSG %alice.mstr :4!status - Show you some Status on AliceChat
}
elseif ($4 == :!join) {
if (!$5 || (#* !iswm $5)) sockwrite -n alicesock PRIVMSG %alice.mstr :Join which channel, BotMaster?
else {
sockwrite -n alicesock JOIN $5
.writeini $aldata Channel $5 Enable
sockwrite -n alicesock PRIVMSG %alice.mstr :Chat is automatically enable on $5 . Plz type !stop $5 to shut me up.
}
}
elseif ($4 == :!part) {
if (!$5 || (#* !iswm $5)) sockwrite -n alicesock PRIVMSG %alice.mstr :Part which channel, BotMaster?
else {
sockwrite -n alicesock PART $5
.remini $aldata Channel $5
sockwrite -n alicesock PRIVMSG %alice.mstr :I'm parting from $5
}
}
elseif ($4 == :!start) {
if (#* iswm $5) {
if ($ini($aldata,Channel,$5)) {
sockwrite -n alicesock PRIVMSG %alice.mstr :Chat on $5 is now enable.
.writeini $aldata Channel $5 Enable
}
else sockwrite -n alicesock PRIVMSG %alice.mstr :I can't start. It seems like I'm not on $5 . Plz !join $5 first!
}
elseif (#* !iswm $5) {
sockwrite -n alicesock PRIVMSG %alice.mstr :Query chat with $5 is now enable.
.writeini $aldata Query $5 Enable
window -ek[0] @Alice. $+ $5
echo @Alice. $+ $5 Plz enter a greeting to $5 to make he/she knows you are querying.
echo @Alice. $+ $5 Then, leave it alone.. Alice will answer any msg for you... :D
}
else sockwrite -n alicesock PRIVMSG %alice.mstr :Start chat with what, BotMaster?
}
elseif ($4 == :!stop) {
if (!$5) sockwrite -n alicesock PRIVMSG %alice.mstr :Stop chat with what, BotMaster?
elseif (#* iswm $5) {
if ($readini($aldata,Channel,$5)) {
sockwrite -n alicesock PRIVMSG %alice.mstr :Chat on $5 is now disable, but I'm still on that channel.
.writeini $aldata Channel $5 Disable
}
else sockwrite -n alicesock PRIVMSG %alice.mstr :I can't stop. It seems like I'm not on $5 . That's great!
}
elseif ($readini($aldata,Query,$5)) {
sockwrite -n alicesock PRIVMSG %alice.mstr :Query chat with $5 is now disable.
.remini $aldata Query $5
}
else sockwrite -n alicesock PRIVMSG %alice.mstr :I can't stop. It seems like I don't chat with $5 . That's great!
}
elseif ($4 == :!say) {
if (!$6) sockwrite -n alicesock PRIVMSG %alice.mstr :I need #chan/nick and a message to say!
else sockwrite -n alicesock PRIVMSG $5 : $+ $6-
}
elseif ($4 == :!act) {
if (!$6) sockwrite -n alicesock PRIVMSG %alice.mstr :I need #chan/nick and a message to act!
else sockwrite -n alicesock PRIVMSG $5 : $+ $chr(1) $+ ACTION $6- $+ $chr(1)
}
elseif ($4 == :!notice) {
if (!$6) sockwrite -n alicesock PRIVMSG %alice.mstr :I need #chan/nick and a message to notice!
else sockwrite -n alicesock NOTICE $5 : $+ $6
}
elseif ($4 == :!raw) {
if (!$5) sockwrite -n alicesock PRIVMSG %alice.mstr :Where is the command?
else sockwrite -n alicesock $5-
}
elseif ($4 == :!stopall) {
var %alice.stc 1
var %alice.stq 1
while (%alice.stc <= $ini($aldata,Channel,0)) {
.writeini $aldata Channel $ini($aldata,Channel,%alice.stc) Disable
inc %alice.stc
}
while (%alice.stq <= $ini($aldata,Query,0)) {
.writeini $aldata Query $ini($aldata,Query,%alice.stq) Disable
inc %alice.stq
}
sockwrite -n alicesock PRIVMSG %alice.mstr :All chat are Disable!
}
elseif ($4 == :!status) {
var %alice.stc 1
sockwrite -n alicesock PRIVMSG %alice.mstr :Channel:
while (%alice.stc <= $ini($aldata,Channel,0)) {
set %alice.stn $ini($aldata,Channel,%alice.stc)
.timer 1 %alice.stc sockwrite -n alicesock PRIVMSG %alice.mstr : $+ %alice.stn = $iif($readini($aldata,Channel,%alice.stn) == Enable,4Enable,14Disable)
inc %alice.stc
}
var %alice.stq 1
.timer 1 %alice.stc sockwrite -n alicesock PRIVMSG %alice.mstr :Query:
while (%alice.stq <= $ini($aldata,Query,0)) {
set %alice.stm $ini($aldata,Query,%alice.stq)
.timer 1 %alice.stc sockwrite -n alicesock PRIVMSG %alice.mstr : $+ %alice.stm = $iif($readini($aldata,Query,%alice.stm) == Enable,4Enable,14Disable)
inc %alice.stq
inc %alice.stc
}
.timer 1 %alice.stc sockwrite -n alicesock PRIVMSG %alice.mstr :Lines Received: %alice.rline
.timer 1 %alice.stc sockwrite -n alicesock PRIVMSG %alice.mstr :Lines Sent: %alice.sline
.timer 1 %alice.stc sockwrite -n alicesock PRIVMSG %alice.mstr :J-Alice is4 $iif($portfree(%alice.pjal),OFFLINE,ONLINE)
}
else sockwrite -n alicesock PRIVMSG %alice.mstr :4ERROR : No such command. Plz type !help for list of commands.
}
}
elseif ($4 == :VERSION) { sockwrite -n alicesock NOTICE %alice.ppl :VERSION AliceChat v2.1 (mIRC Artificial Intelligent Relay Chat) - bizkut - www.Malaynet.org }
;; Chat engine begin
elseif ($readini($aldata,Query,%alice.ppl) == Enable) {
inc %alice.rline 1
if (:ACTION * iswm $4-) {
set %alice.amsg $left($5-,-1)
set %alice.qnickac %alice.ppl
}
else {
set %alice.amsg $gettok($4-,1-,58)
set %alice.qnick %alice.ppl
}
if ($window(@Alice. $+ %alice.qnick)) echo @Alice. $+ %alice.qnick 4< $+ %alice.qnick $+ 4> %alice.amsg
if ($window(@Monitor)) echo @Monitor 4<-- [Private]< $+ %alice.qnick $+ > %alice.amsg
.timerqmsg 1 2 alice.opencon
}
elseif (!$readini($aldata,Query,%alice.ppl)) {
if ($window(@Monitor)) echo @Monitor 4<-- [4Stranger]< $+ %alice.ppl $+ > $gettok($4-,1-,58)
sockwrite -n alicesock PRIVMSG %alice.mstr :4Notice : %alice.ppl not in my chatter list, is trying to chat with me.
.writeini $aldata Query %alice.ppl Disable
}
else {
if ($window(@Monitor)) echo @Monitor 4<-- [4Stranger]< $+ %alice.ppl $+ > $gettok($4-,1-,58)
}
}
;; Chat engine begin
;; on channel, only 1 msg queue at anytime.
elseif (#* iswm $3) {
if ($readini($aldata,Channel,$3) == Enable) {
;;; too depricated...
if ((: $+ %alice.nick $+ : isin $4-) || (: $+ %alice.nick isin $4-)) {
set %alice.ch $3
set %alice.chnick %alice.ppl
set %alice.amsg $5-
inc %alice.rline 1
if ($window(@Monitor)) echo @Monitor 4<-- [ $+ %alice.ch $+ ]< $+ %alice.chnick $+ > %alice.amsg
.timercmsg 1 5 alice.opencon
}
elseif ((:ACTION * %alice.nick * iswm $4-) || (:ACTION * %alice.nick $+ $chr(1) iswm $4-) || (:ACTION %alice.nick * iswm $4-)) {
set %alice.chac $3
set %alice.chnick %alice.ppl
set %alice.amsg $left($5-,-1)
inc %alice.rline 1
if ($window(@Monitor)) echo @Monitor 4<-- [ $+ %alice.ch $+ ]< $+ %alice.chnick $+ >[ACTION] %alice.amsg
.timercmsg 1 5 alice.opencon
}
elseif ((* %alice.nick iswm $4-) || (* %alice.nick * iswm $4-) || (* %alice.nick $+ $chr(33) iswm $4-) || (* %alice.nick $+ $chr(63) iswm $4-)) {
set %alice.ch $3
set %alice.chnick %alice.ppl
set %alice.amsg $gettok($4-,1-,58)
inc %alice.rline 1
if ($window(@Monitor)) echo @Monitor 4<-- [ $+ %alice.ch $+ ]< $+ %alice.chnick $+ > %alice.amsg
.timercmsg 1 5 alice.opencon
}
}
}
}
}
on *:sockclose:alicesock: {
echo 4 -a AliceChat lost connection..
}
alias -l alice.mstrchk {
set %alice.mstr $input(%alice.mstr is my Master. Or plz change to your nick here,eoq,Confirm BotMaster,%alice.mstr)
alice.mstrinf
}
alias -l alice.mstrinf {
sockwrite -n alicesock PRIVMSG %alice.mstr :I'm Online, my BotMaster!
sockwrite -n alicesock PRIVMSG %alice.mstr :Please type !help for list of command.
sockwrite -n alicesock PRIVMSG %alice.mstr :type !raw MODE %alice.nick +B to mark me as a bot on IRC.
.writeini $aldata Query %alice.mstr Enable
}
alias -l alice.autherr {
if (!%alice.tmpnick) {
set %alice.tmpnick $$?="Alice nick already in use. Plz enter other nick"
sockwrite -n alicesock NICK %alice.tmpnick
}
elseif (!%alice.auth) {
set %alice.auth $encode($input(Plz enter Alice NickServ password or click Cancel to choose other nick,ep,NickServ Identify),m)
if (!%alice.auth) { set %alice.nick $$?="Enter bot nick" | set %alice.auth $encode($?*="Plz enter the NickServ password if the nick is registered",m) }
}
if (%alice.auth) {
sockwrite -n alicesock PRIVMSG Nickserv :IDENTIFY %alice.nick $decode(%alice.auth,m)
sockwrite -n alicesock NICK %alice.nick
}
}
alias -l alice.opencon sockopen alice %alice.jal %alice.pjal
on *:input:@Alice.*: {
if (/* !iswm $1) {
sockwrite -n alicesock PRIVMSG $gettok($target,2,46) : $+ $1-
echo $target 14 $+ %alice.nick $+ 4-->(manual) $1-
}
}
on 1:sockopen:alice: {
if ($sockerr > 0) {
echo -a 4ERROR: Alice unable to chat. Plz check the J-Alice server.
unset %alice.amsg
}
else {
;; some common http GET char replacement here
set %alice.smsg $replacex(%alice.amsg,%alice.nick,Anna,$chr(32),$chr(43),$chr(59),$chr(37) $+ 3B,$chr(34),$chr(37) $+ 22,$chr(39),$chr(37) $+ 27,$chr(63),$chr(37) $+ 3F,$chr(33),$chr(37) $+ 21,$chr(58),$chr(37) $+ 3A,$chr(44),$chr(37) $+ 2C,$chr(40),$chr(37) $+ 28,$chr(41),$chr(37) $+ 29,$chr(47),$chr(37) $+ 2F,$chr(36),$chr(37) $+ 24,$chr(37),$chr(37) $+ 25)
sockwrite -tn alice GET /?input= $+ %alice.smsg HTTP/1.1 $crlf $+ Accept: */* $crlf $+ Referer: %alice.ircs $crlf $+ Accept-Language: en-us $crlf $+ Accept-Encoding: gzip, deflate $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) $crlf $+ Host:localhost $crlf $+ Connection: Keep-Alive
}
}
on 1:sockread:alice: {
sockread %alice.readmsg
if (<html> isin %alice.readmsg) {
inc %alice.sline 1
set %alice.repmsg $replacex($deltok($gettok(%alice.readmsg,2,58),2-,60),Anna,%alice.nick)
;; The bot got time to speak out. Look more "human"
if (%alice.ch) {
inc %alice.que 1
if ($window(@Monitor)) echo @Monitor 4--> [ $+ %alice.ch $+ ]< $+ %alice.chnick $+ >14 %alice.repmsg
.timerer $+ %alice.que 1 $rand(5,20) sockwrite -n alicesock PRIVMSG %alice.ch : $+ %alice.chnick $+ : %alice.repmsg
if (%alice.que == 2) unset %alice.que
unset %alice.ch
}
elseif (%alice.chac) {
inc %alice.que 1
if ($window(@Monitor)) echo @Monitor 4--> [ $+ %alice.ch $+ ]< $+ %alice.chnick $+ >[ACTION]14 %alice.repmsg
.timerer $+ %alice.que 1 $rand(5,20) sockwrite -n alicesock PRIVMSG %alice.chac : $+ $chr(1) $+ ACTION %alice.chnick $+ : %alice.repmsg $+ $chr(1)
if (%alice.que == 2) unset %alice.que
unset %alice.chac
}
elseif (%alice.qnick) {
inc %alice.quen 1
if ($window(@Monitor)) echo @Monitor 4--> [Private]< $+ %alice.qnick $+ >14 %alice.repmsg
.timerar $+ %alice.quen 1 5 sockwrite -n alicesock PRIVMSG %alice.qnick : $+ %alice.repmsg
if ($window(@Alice. $+ %alice.qnick)) echo @Alice. $+ %alice.qnick 14 $+ %alice.nick $+ 4-->14 %alice.repmsg
if (%alice.quen == 2) unset %alice.quen
unset %alice.qnick
}
elseif (%alice.qnickac) {
inc %alice.quen 1
if ($window(@Monitor)) echo @Monitor 4--> [Private]< $+ %alice.qnick $+ >[ACTION]14 %alice.repmsg
.timerar $+ %alice.quen 1 5 sockwrite -n alicesock PRIVMSG %alice.qnickac : $+ $chr(1) $+ ACTION %alice.repmsg $+ $chr(1)
if ($window(@Alice. $+ %alice.qnick)) echo @Alice. $+ %alice.qnick 14 $+ %alice.nick $+ 4-->[ACTION]14 %alice.repmsg
if (%alice.quen == 2) unset %alice.quen
unset %alice.qnickac
}
sockclose alice
}
}
alias alice.mon {
window -e @Monitor /msg
}
alias alice.dbg {
window -e @Debug.Alice
}
alias -l aldata { return $shortfn($scriptdirdata\setting.ini) }
;EOF