mIRC聊天机器人不承认命令
问题描述:
下面是我为我不断增长的与鸟有关的聊天机器人写的一些代码。mIRC聊天机器人不承认命令
如果我使用mIRC CONSOLSE,我可以执行别名块(例如// fchirp [user]),但由于某些原因,bot不承认有人从主聊天窗口键入“!chirp” 。它甚至不执行on-text-event中的第一个// echo语句。
最奇怪的部分是:此代码之前工作过,我一直在使用它。除了用于调试的echo声明之外,我没有改变这里显示的任何部分。
addWorms和GiveWorms都是我自己编写和正确运行的别名。我遇到的主要问题是当某人输入“!chirp”时,让bot做任何事情。 (应当指出的是,其他无关的文本事件之前在代码的工作只是有相同的语法罚款。)
alias fchirp {
/writeini chirp.ini $1 First $adate
/writeini chirp.ini $1 Last $adate
/writeini chirp.ini $1 Count 1
msg $chan /w $1 Welcome to the Nest! Thanks for checking in! :D
addWorms $1
msg $chan /w $1 Type !worms to see how many you have!
//echo -a first chirp
}
alias chirp {
var %a $readini(chirp.ini, $1, Count)
var %count $calc(%a + 1)
if ($readini(worms.ini, $1, Breed) == $null) {
addWorms $1
//echo -a addWorms done
}
if ($readini(chirp.ini, $1, Last) === $adate) { msg $chan /w $nick You've already checked in today! BabyRage | halt }
/writeini chirp.ini $1 Last $adate
/writeini chirp.ini $1 Count %count
//echo -a last/count updated
if ($calc($readini(chirp.ini, $1, Count) % 5) == 0) {
giveWorms $1 10
msg $chan /w $1 Welcome back! Lucky day!
}
else {
giveWorms $1 5
msg $chan /w $1 Welcome back! Here's your worms! Don't forget to !hunt ! ^_^
}
//echo -a giveWorms
}
on *:TEXT:!chirp:#: {
//echo -a acknowledged
if ($readini(chirp.ini, $nick, First) != $null) {
//echo -a true
chirp $nick
}
else {
//echo -a false
fchirp $nick
}
msg $chan /w $nick Don't forget to !hunt for worms! :D
}
答
的事件捕捉可以由两个主要原因造成干扰。
错误
你必须在同一个远程文件的代码上面的错误。例如缺少括号或语法错误。其他事件已被抓获
的mIRC不会处理已经通过在同一个文件另一种模式匹配的事件。
example.ini
ON *:TEXT:* dog *: echo -ag This will be called if we wrote the word dog in a sentence.
ON *:TEXT:*:#: echo -ag This will be called
ON *:TEXT:*test*: echo -ag This will never be called. Even if we wrote the word test in sentence.
您可以合并您文本事件处理这两种行为,但如果他们不相关的逻辑,我就会把他们分开了另一个远程文件。
on *:TEXT:*:#: {
if ($1- == !chirp) {
; In here put your code.
}
; Another code over here..
; Count some stuff in here..
}
备注:/
是别名/弹出/远程代码无用,并且其仅仅是用于识别文本VS为控制台的mIRC窗口的命令。
你有什么'TEXT:!*:#:'?这可能是由于包含匹配的其他TEXT事件引起的。尝试将新发布的代码添加到新的mIRC远程文件中,如果这能解决此问题,那意味着上面的代码会干扰捕获TEXT事件(错误或其他TEXT事件包含匹配模式)。另外,'/'在远程代码中没有用处,它只是用于识别控制台mIRC窗口的文本与命令。 –
完美!谢谢。我有一个命令: – MrJerkBird
(续) ...有一个命令,当任何人输入任何东西时计数: on *:TEXT:*:#:{/ * do stuff * /} 有没有办法有两个? – MrJerkBird