mIRC 'null' 分隔符表示$gettok



很抱歉我的标题不够清楚。我回来寻求更多的指导!

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

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 (null)时,bot根本不起作用。

所以现在,机器人只会踢那些只使用这些特定字母的人。我想让机器人把那些单独使用这些字母或在句子/单词中使用这些字母的人踢出去。

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

try this
粘贴到新的远程文件

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

最新更新