0

对不起,如果我的标题不够清楚。我回来寻求更多指导!

我正在尝试建立一个独特的语言踢机器人。我主持的聊天中有大量俄语聊天垃圾邮件发送者。所以我试图建立一个机器人,当他们输入俄语时会踢他们。所以我设置了这个:

alias -l russian.words { RETURN Л.Д.э.И }

ON @*:TEXT:*:#: {
  IF ($nick isop #) return
  VAR %x = $strip($1-) , %i = $numtok($russian.words,46)
  WHILE (%i) {
    IF ($istok(%x,$gettok($russian.words,%i,46),32)) {
      raw -q mode # +b $wildsite
      msg # $nick $+ , English in chat, please! Только на английском языке в чате!
      msg # /timeout $nick 1
      RETURN
    }
    DEC %i
  }
}

问题是机器人仅在“独立”时检查俄语字母。如果俄语字母是较大句子/单词的一部分,则机器人不起作用。

我相信这是因为 $gettok 中的分隔符设置为 32(一个空格)。但是,当我将分隔符更改为 0(空)时,机器人根本不起作用。

所以现在,机器人唯一踢的是那些只使用那些特定字母的人。我希望机器人踢到任何单独使用这些字母或在句子/单词中使用这些字母的人。

顺便说一句,我选择这些字母是因为它们被认为是最常见的俄语字母,它们与英语的字母不同。

任何帮助表示赞赏。

4

1 回答 1

0

试试这个
粘贴到一个新的远程文件中

on $@*:text:/(Л|Д|э|И)/iS:#:{
if ($nick !isop $chan) {
ban -k $nick 2 English in chat, please! Только на английском языке в чате!
}
}
于 2014-08-13T02:41:24.530 回答