1

我是一个编程技能为零的人,因此与编程相关的一切似乎都是最难的事情。

如果匹配预定义的单词,我想使用 mIRC 在不同网络上的不同频道之间自动复制粘贴。例如:

我预定义的词是:hello

如果#channelA(在network1上)或#channelB(在network2上)或#channelC(在network3上)中的某人打招呼,它将在#channel4(在network4上)上显示为:said "hello"没有频道名称或任何内容,并且与其余部分没有重复网络(如果也在那里打招呼)将出现在网络 4 的频道上,即每个关键字只会出现第一个。

我曾尝试寻找解决方案并发现了这一点:

但这对我没有帮助。任何指导将不胜感激。

4

2 回答 2

0

通常我们从不为某人编写脚本,而是询问他到目前为止所做的事情,然后指出他的失败或帮助他一点点。

但是因为你提到的脚本听起来不错,所以我冒昧地自己实现了它。

如果您不熟悉 mSL,我建议您只触摸以下标识符:
FromNetworkFromChannelToNetworkToChannel

代码

;###
;### TextPublisher v1
;### Author: Orel Eraki
;### Email: orel.eraki@gmail.com
;###
;### Usage:
;### - Pretty simple, just edit the identifier settings.
;### - For enable/disable change "TextPublisherEnable" identifier to 1 or 0

;### Settings
alias -l TextPublisherEnable return 1
alias -l TextPublisherFormat return &timestamp < &+ &nick &+ > &1-
alias -l TextPublisherMatchText return *text*
alias -l TextPublisherFromNetwork return Network1
alias -l TextPublisherFromChannel return #Channel1
alias -l TextPublisherToNetwork return Network2
alias -l TextPublisherToChannel return #Channel2

;### Functions
alias -l FindNetworkCid {
  if ($1) {
    var %i = 1, %n = $scon(0), %temp
    while (%i <= %n) {
      if ($scon(%i).status == connected && $scon(%i).network == $1) {
        return $scon(%i).cid
      }
      inc %i
    }
  }
  return
}

;### Events
on *:text:$($TextPublisherMatchText):$($TextPublisherFromChannel): {
  if ($TextPublisherEnable && $network == $TextPublisherFromNetwork) {
    var %networkId = $FindNetworkCid($TextPublisherToNetwork)
    if (%networkId) {
      scid -t1 %networkId if ($TextPublisherToChannel ischan) { msg $TextPublisherToChannel $eval($replace($TextPublisherFormat, &, $chr(36)), 2) }
    }
  }
}
于 2013-08-17T12:38:37.167 回答
0

这可能会有所帮助,它取自我的尼克提及,并且可以使用您想要的任何单词。它会出现在您所在的房间中并突出显示,还会打开一个新窗口并记录说了什么/谁和时间。如果它不完全是您正在寻找的东西,它可能会引导您朝着您正在寻找的方向前进。

;; Word mention ;;

on *:START: {
  window -De @WordMention
 echo @WordMention Your word mentioned and what was said goes here
}
on *:text:*:#:{
  if (# == $active) halt
  if  (%me isin $strip($1-)) || ($me isin $strip($1-)) {
     if (%mention. [ $+ [ $nick ] ] == $true) halt
     echo -a 2,4 # $nick said : $1-
     echo @WordMention  =======================================
     echo @WordMention  0,4 $+ $timestamp  $nick said your word at $asctime(h:nn:sstt) in # 
     echo @WordMention  $nick said: $1-
     echo @WordMention  =======================================
     set -u10 %mention. [ $+ [ $nick ] ] $true
   }
}

menu channel {
  .Word mention ( $+ %mynick $+ )
  ..Set My word $iif(%me == $null,(no word set),( $+ %me $+ )):/set %me $$?="Enter word eg =     word to watch for" | echo -a %me Set
   ..$iif(%myword == on,$style(2),$style(0)) On:/set %mynick on
  ..$iif(%myword == off,$style(2),$style(0)) Off:/set %mynick off
}
于 2014-07-12T02:54:55.150 回答