0

我正在寻找一种方法来踢用户洪水。这个想法是:

on [lessthanhalfop]:text:*:#chan: {
  If [timer$nick] !== 0 {
    set %kickstate$nick +1
    if %kickstate$nick < 4 {
      kick $nick #chan [reason:flood]
      echo > kickedlist.txt
      delete [timer$nick]
    delete [timer$nick]
    makenew timer with 4 seconds
    }
  Set timer$nick 5seconds
}

任何人都可以帮我解决这个问题,以便每个 $nick 都可以使用唯一的计时器,这样它们就不会覆盖每个用户。我想要它做的就是通过在特定时间段内(在本例中为 2 秒)内输入来踢那些充斥着聊天的人。谁能帮我解决这个问题?

我正在使用 mIRC,但如果有人想知道,该频道在 swiftirc 网络中。

4

1 回答 1

1

解决方案:
A. 我们正在使用以下格式“cTxtFlood.USER-ADDRESS”设置一个变量和增量(生存时间为 2 秒)。这使我们能够在我们的系统中跟踪每一个新的洪水 + 它会清理那些说话但不是洪水的人。

B. 我们正在检查变量计数器是否超过 X 行(示例中为 5)

C. 如果泛滥,那么我们会以 300 秒的禁令跨度禁止和踢用户。

小资料:

chan - 你要保护的频道

@* - 仅当我在频道获得操作-u2 =
在 2 秒内取消设置变量
禁止 -ku300 = 踢并禁止 300 秒

完整代码(未经测试)

on @*:text:*:#chan: {
  inc -u2 % [ $+ [ $+(cTxtFlood.,$wildsite) ] ]
  if (% [ $+ [ $+(cTxtFlood.,$wildsite) ] ] == 5) {
    echo -ag ban -ku300 # $nick 2 Channel Flood Protection (5 lines at 2 sec's)
  }
}
于 2013-05-02T09:52:19.760 回答