3
on *:text:@btag*:#: {
  if ( ## isin $2 ] {
    Set %Tag. [ $+ [ $nick ] ] $2 {
      Describe # $nick Has saved their Battletag
    }
    else {
       Describe # $nick $+ , Please enter your real Btag
     }
   }

这是我的代码。

我需要的是让代码查看文本,如果它包含符号 (#) 哈希标记,则仅将其保存为变量。

我发现这很难编码,因为 Hashtag (#) 是编码语言的一部分......

Lmk你们能为我做些什么

4

2 回答 2

1

mIRC 远​​程代码中的“#”字符被评估为事件触发的通道。

当你想明确表达哈希标签字符时,你应该使用 $chr(35),35 是标签 ascii 编号。

下面的代码将检查:
如果用户在任何频道中写入@btag some-text-contains-#-char ,如果是,它将在 tag-user 变量中保存包含#hash 标记的单词。然后将发送他has saved...
否则将发送他Nick, Please enter..

代码

on *:text:@btag*:#: {
  if ($chr(35) isin $2) {
    set %Tag. [ $+ [ $nick ] ] $2
    Describe # $nick Has saved their Battletag
  }
  else {
    Describe # $nick $+ , Please enter your real Btag
  }
}

当用户编写以下行时,代码并不完美并且也可以工作:
@btagBLA some-text-contains-#-char
@btagSOMETEXT some-text-contains-#-char
等等..要解决它,您应该将事件定义更改为

on *:text:@btag *:#: {
于 2013-05-24T00:39:40.480 回答
0

$chr()功能是您所需要的。它接受字符的 ASCII 值并生成有问题的字符。因此,例如,/echo -a $chr(35)将回显井号(即井号标签)。

您可能还想查看$asc()哪个将为您提供您键入的字符的 ASCII 代码。或者您可以在线搜索“ASCII 表”。

这两个函数都应该在 mIRC 帮助文件中得到充分的解释——或者至少在我上次使用它时是这样。

于 2013-05-21T04:29:43.373 回答