【问题标题】:mIRC bot - copy/paste lines in 2 channelsmIRC bot - 在 2 个通道中复制/粘贴行
【发布时间】:2012-05-20 20:13:52
【问题描述】:

我是 mirc 脚本的菜鸟,我需要一些帮助。

  1. 有 2 个 irc 频道。然后我们调用#channel1 和#channel2;
  2. 有 2 个机器人。一个是我的,我们称他为“mybot”(我的机器人在两个频道中)。另一个机器人来自第三人,我们称他为“otherBot”;

我需要的是……让我举个例子更好地解释一下。

a) #channel1 中的一些用户类型:

[14:38:48] <@someuser> !user xpto

此时,“mybot”在两个频道中。他读取命令“!user*”并将其复制/粘贴到#channel2,“otherBot”将识别命令“!user*”并粘贴有关此命令的一些信息。

b) 所以,在#channel2 中它会附加如下内容:

[14:38:50] <@ mybot > !user xpto
[14:38:52] <@ otherBot > User name is xpto and he likes popatos.

现在我想让“mybot”读取“otherBot”提供的信息,然后将其粘贴到#channel1

c) 所以,在#channel1:

[14:38:54] <@ mybot > User name is xpto and he likes popatos.

到目前为止,我的遥控器中有打鸟代码:

on *:TEXT:!user*:#channel1 {
  /msg # channel2 $1-
}

on *:TEXT:User name*:#channel2 {
  if $address($nick,2) == *!*@otherBot.users.gameea {
    /msg # channel1 $1-
   }
 }

这工作正常,但有一个问题:如果其他人(不是“mybot”)在#channel2 中输入“!user kakaka”,“mybot”也会复制/粘贴“otherBot”提供的信息,然后粘贴它在#channel1 上。我只希望“mybot”只复制/粘贴“mybot”向“otherBot”询问的信息。

【问题讨论】:

    标签: irc mirc chatbot


    【解决方案1】:

    这样做的一个非常简单(但不是特别好)的方法可能是当有人在#channel1 中键入 !user 时设置一个全局变量,并检查是否在正在侦听的另一部分中设置了这个变量#通道 2。例如:

    on *:TEXT:!user *:#channel1: {
      set %repeatUser 1
      msg channel2 $1-
    }
    
    on *:TEXT:User name*:#channel2: {
      if ($address($nick,2) == *!*@otherBot.users.gameea && %repeatUser == 1) {
        unset %repeatUser
        msg #channel1 $1-
      }
    }
    

    这不是一个完美的解决方案,因为如果机器人在脚本发送 '!user' 到另一个频道和机器人响应的时间之间说了其他内容,那么它会打印出该回复而不是您的请求,但这仅在 #channel2 非常繁忙、otherbot 非常滞后或您的机器人和其他人在 #channel2 上的几分之一秒内键入 !user 时才相关彼此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-05
      • 2014-10-05
      • 1970-01-01
      相关资源
      最近更新 更多