转载插件 [管理]AutoBroadcast —— 自动发布公告与执行指令 [2.1]

英文名称
AutoBroadcast
中文名称
自动公告
插件来源
转载
API类型
TerrariaServerAPI
插件类型
  1. 综合
  2. 信息
语言支持
  1. 简体中文
  2. English
  3. 非官方汉化
适用版本
  1. 1.3.5.3
前置Mod/插件
TShock 汉化版 4.3.25
下载地址
https://tshock.co/xf/index.php?resources/autobroadcast.66/download&version=858 英文原版下载地址
原帖地址
https://tshock.co/xf/index.php?resources/autobroadcast.66/

nnt

Lv4
创意家
LV
0
 
IP属地
未知
2019/07/04
113
123
勋章
2
  • · 发布于未知
Autobroadcast

AutoBroadcast可以自动广播消息。更有各种触发器可以触发广播,可以根据指定的时间间隔将消息自动广播给所有用户,或者利用触发器进行广播





插件特点
自动广播多条消息或命令。
广播无限多。
可设置要向其广播消息的组。
可设置要广播消息的颜色。
可设置广播之间的间隔。

指令
Relaod -> 从配置文件重新加载设置.

权限

备注
时间单位为秒,可用的区域触发类型有none(无)all(全部)region(区域)self(单一)

插件可用在4.3.25的汉化版本,其他版本的TShock可能会报错或些许功能无法使用


本插件由Scavenger3Simon311制作完成,Zaicon升级维护,本人能力有限仅仅只做了汉化,如果喜欢本插件请多多支持原作者
有文本bug或者表达错误请及时@nnt

原帖地址: https://tshock.co/xf/index.php?resources/autobroadcast.66/
开源地址: https://github.com/Zaicon/AutoBroadcast
 

附件

  • AutoBroadcast.dll
    13.5 KB · 查看: 352
由版主最后编辑:

nnt

Lv4
创意家
LV
0
 
IP属地
未知
2019/07/04
113
123
勋章
2
  • · 发布于未知
简易使用指南
AutoBroadcast是一个非常实用的插件,不仅可以自动广播消息,还可以根据设定好的时间间隔将消息自动广播给所有用户或指定用户组,亦或者利用触发器进行广播,例如用户聊天中的词或用户进入的区域都可以使广播触发。

如何编辑AutoBroadcastConfig.json
在此之前你需要了解一下TShock的插件使用与安装,插件安装完成后将会在"/tshock"文件夹中生成一个"AutoBroadcastConfig.json"文件,若要进行任何广播编辑,必须在此文件中进行,完成以上步骤后,现在可以对其进行修改。使用任意文本编辑器打开配置文件,将看到示例代码。如下:
代码:
{
  "Broadcasts": [
    {
      "名字": "示例广播",
      "是否启用": true,
      "广播内容": [
        "这是一个示例广播",
        "这个广播每5分钟发送一次",
        "广播也可以执行命令",
        "例如/time noon"
      ],
      "RGB颜色代码": [
        255.0,
        0.0,
        0.0
      ],
      "间隔": 300,
      "开始延迟": 60,
      "触发区域": [],
      "区域触发类型": "none",
      "组": [],
      "触发词": [],
      "作用到整个组": false
    }
  ]
}

代码解析
为了更好地理解上面那段代码,我将把这些信息分解成一种易于理解的格式。本节将解释如何阅读和理解这段代码,使刚开始建立服务器主机的新手管理员更容易操作。
查看上面的代码,可以看到它被分成了四个部分 :广播信息、广播文本、文字颜色和触发信息,当游戏编译这些信息时,整个代码看起来就会像以下的方式进行分解:
代码:
{"Broadcasts":[{broadcast text information[message],"color info":[RGB values],"Interval":rate,"StartDelay":delay,"TriggerRegions":[info],"RegionTrigger": "region info","Groups": [group info],"TriggerWords":[info],"TriggerToWholeGroup": true/false}]}

看起来有些复杂,那是因为使用的语法是获取此信息串并将其分成更小的组,仔细观察你会发现每个小组有两个部分,变量及它的值,就像这样:
代码:
"variable": "value",
"variable": "value"
然后,利用方括号将其进一步组合为一个值数组或列表:
代码:
"variable": [
    value1,
    value2,
    value3
],
所有这些代码信息就像“Broadcasts”:[]代码中的一个数值组。因此,文件中的所有内容都可以这样分解:
代码:
{
    "Broadcasts":[
        {
        data for message 1,
        data for message 2,
        data for message 3
        }
    ]
}
本指南的其余部分将进一步分解解释配置信息,使用此语法来创建自动广播

如何配置一个自动广播
首先,可以设置一条基本信息,例如:“欢迎来到XX服务器,如果您需要帮助,可以通过我们的QQ群与我们联系,Enjoy!” 然后将其插入到代码中:
代码:
{
    "Broadcasts": [
    {
      "名字": "欢迎广播",
      "是否开启": true,
      "广播内容": [
        "欢迎来到XX服务器 .",
        "如果您需要帮助,可以通过我们的QQ群与我们联系 .",
        "Enjoy!"
      ],
...
把这个代码分解一下,我们在列表中添加了一个名为“欢迎广播”的项目,下一行的“是否启用”改为了true,这意味着此广播已按设定开始自动广播。在“广播内容 ”列表中放置了三条消息。这三行信息将在游戏中逐行显示:
516
至此一个最基本的广播配置就算完成,需要注意的是在设置广播内容的最后一行时,末尾不需要逗号(,)

下面进行广播颜色代码设置,RGB颜色代码主要上是从0到255的三组数值,每一组代表红色、绿色和蓝色,一个 RGB 颜色值指定红、绿、蓝三原色的相对亮度,生成一个用于显示的特定颜色。各组中,数值越小,亮度越低,数值越大,亮度越高。为了方便操作这里推荐直接使用在线颜色选择器
520
如上图,这里选择的橙色RGB颜色为(255, 150, 0),然后再把数值输入到配置文件中:
代码:
   ...
    "ColorRGB": [
        255.0,
        150.0,
        0.0
      ],
   ...
设置到这,一个橙色的自动广播就配置完成,如果还需要更多功能,请参照下表配置
数据类型描述
间隔时间单位为秒重复发送广播的时间间隔,如果不希望广播重复发送,请设置为0。
开始延迟时间单位为秒触发广播后的广播发送延迟。例:A用户满足条件触发广播B延迟N秒后广播发送
触发区域数组/列表根据TShock区域设置(region)的触发器。例:A用户进入X区域触发广播B
区域触发类型"none""all","region","self"如果设置了此选项,将向所有在线用户(all)、区域中的所有玩家(region)或触发该广播的单个玩家(self)广播消息。
[]/[*]/[用户名]/[组名]选项留空广播消息将不会作用到用户,设置为*将作用到所有用户,设置组名和用户名同理。设置用户名时不要带{}号
触发词数组/列表游戏聊天中用户发送的词将触发自动广播。例:A用户发送聊天X触发广播B
作用到整个组true 或 false设置为true后,将向触发此广播的组的所有成员发送自动广播或执行命令
广播内容里也可以设置命令,如果在广播内容中添加/kick或/ban命令,这些设置非常重要

如何配置多个自动广播
设置多个自动广播,按以下格式进行编辑:
代码:
{
"Broadcasts": [
        {
            "名字" : "广播1",
            "是否开启": true,
            ...
        }, (记着别忘了逗号)
        {
            "名字" : "广播2",
            "是否开启": true,
            ...
        } (设置的最后一个广播项目不需要添加逗号)   
    ] (别忘了方括号)
} (也别忘了大括号)
这样一个简易的广播文件就配置完成,只要你能理解这些语法,你就可以无限地设置添加自动广播。

示例广播
在广播中添加命令这是自动广播的进阶功能,下面是一个添加了命令的广播示例

这是一个来自TShock论坛用户Kojiro_S的示例,用户在聊天中抱怨服务器太卡?使用/kill将其杀死然后/kick出服务器,卡机这事就当无事发生:
代码:
{
      "名字": "卡机",
      "是否启用": true,
      "广播内容": [
        "卡是不可能卡的! {player}",
        "/kill {player}",
        "/kick {player} 这样就无事发生啦!"
      ],
      "RGB颜色代码": [
        255.0,
        150.0,
        150.0
      ],
      "间隔": 0,
      "开始延迟": 0,
      "触发区域": [],
      "区域触发类型": "none",
      "组": [
        "guest",
        "default"
      ],
      "触发词": [
        "卡",
        "卡死",
        "卡爆",
        "卡飞天",
        "垃圾服务器"    
      ],
      "作用到整个组": false
}

这是一个来自TShock论坛用户Rhapso的示例,用户火把不够了怎么办,直接聊天发送“火把”,5个火把立马获取:
代码:
{
      "名字": "torchKit",
      "是否启用": true,
      "广播内容": [
        "/give 8 {player} 5"
      ],
      "RGB颜色代码": [
        255.0,
        130.0,
        0.0
      ],
      "间隔": 0,
      "开始延迟": 0,
      "触发区域": [],
      "区域触发类型": "none",
      "组": [
        "default",
        "vip",
        "vip10",
        "vip20",
        "supervip",
        "Administration",
        "spy",
        "SA",
        "superadmin",
        "Moderator"
      ],
      "触发词": [
        "火把"
      ],
      "作用到整个组": false
    }

结束
插件功能很强大,本指南只能作为一个简易广播设置参考,这个插件可以在很多情况下使用,可使用任何其他插件的指令,在插件混搭和组合方面你可以利用这个插件发挥你的创造力,创建一个更智能不平庸的服务器吧!
 
最后编辑:

duanjian

Lv3
LV
0
 
IP属地
浙江省
2019/08/06
10
1
  • · 发布于未知
求助一下 如何设置 玩家进入某个领地后 触发指令?
 

nnt

Lv4
创意家
LV
0
 
IP属地
未知
2019/07/04
113
123
勋章
2
  • · 发布于未知
广播内容 里写上命令
区域触发类型 改为self或region(区域中的所有玩家”region“ 触发该广播的单个玩家“self”)
触发区域 写上触发的区域
间隔 改为0(触发一次后不循环)
开始延迟 改为0(马上触发)
触发组 改为要触发的组(*不识别)
 
最后编辑:

duanjian

Lv3
LV
0
 
IP属地
浙江省
2019/08/06
10
1
  • · 发布于未知
楼中楼回复 显示有点问题 我在这再问一下大佬 我重新配置了文件后 (并重启了服务器) 在我首先触发这个广播后 以后无论什么玩家触发 指令都是用在我身上 这是什么问题?

并且经过我的测试 无论是谁先触发了这个指令(重启服务器之后),指令都是用在我身上!!这就很玄乎了 难道我是第一个进入服务器的玩家?

二次测试,更加玄乎 在我退出游戏之后 其他玩家触发 指令还是用在我身上 如图三

三次测试 在我退出游戏后 二号玩家重新进入游戏 那么他应该变成了服务器第一号玩家 但是指令居然还是用在DuanJian这个ID上 如图4

上传的附件可能有点多。。。请见谅 解决完问题就删掉
 

附件

  • QQ截图20190807165502.png
    QQ截图20190807165502.png
    128.9 KB · 查看: 100
  • QQ截图20190807165606.png
    QQ截图20190807165606.png
    29.4 KB · 查看: 95
  • QQ截图20190807170508.png
    QQ截图20190807170508.png
    16.2 KB · 查看: 97
  • QQ截图20190807170942.png
    QQ截图20190807170942.png
    15.3 KB · 查看: 67
最后编辑:

duanjian

Lv3
LV
0
 
IP属地
浙江省
2019/08/06
10
1
  • · 发布于未知
楼上回复编辑了一下 大佬那边可能没有提醒 LOL 我这边再顶一下
 

nnt

Lv4
创意家
LV
0
 
IP属地
未知
2019/07/04
113
123
勋章
2
  • · 发布于未知
代码问题
最快速的解决方法是在 指令后加进入 /reload
1.png
如果需要区域触发指令 最好用专门的区域触发插件
 

duanjian

Lv3
LV
0
 
IP属地
浙江省
2019/08/06
10
1
  • · 发布于未知
我每次调配置都用了/reload
 

duanjian

Lv3
LV
0
 
IP属地
浙江省
2019/08/06
10
1
  • · 发布于未知
噢 刚才眼抽看错了 我尝试在配置里加入了reload指令 但是这样他就会进入一个循环 在领地内就无限使用指令
 

duanjian

Lv3
LV
0
 
IP属地
浙江省
2019/08/06
10
1
  • · 发布于未知
我试过Smartregion 但是他的指令会分玩家识别 就是说每个玩家都有自己的触发时间 而不是总的触发时间
我想做一个类似于起床战争的资源点
 

nnt

Lv4
创意家
LV
0
 
IP属地
未知
2019/07/04
113
123
勋章
2
  • · 发布于未知
这个需要改下代码
现成的插件的话 你可以试一下增加延迟
 

从此以后

Lv3
LV
0
 
IP属地
福建省
2019/08/19
10
0
  • · 发布于未知
如果角色名字中间有空格,那么有些指令就没法使用了,比如 /warp send {player} pve ,我用了名称有空格的角色,然后服务器就无法识别这条指令了。
那该怎么办?
 

nnt

Lv4
创意家
LV
0
 
IP属地
未知
2019/07/04
113
123
勋章
2
  • · 发布于未知
如果角色名字中间有空格,那么有些指令就没法使用了,比如 /warp send {player} pve ,我用了名称有空格的角色,然后服务器就无法识别这条指令了。
那该怎么办?
尝试使用双引号
例如用户名n n t 输入则为"n n t"
 

从此以后

Lv3
LV
0
 
IP属地
福建省
2019/08/19
10
0
  • · 发布于未知
尝试使用双引号
例如用户名n n t 输入则为"n n t"
我试过,但是如果加上双引号的话,插件重新加载后就会出错了
 

nnt

Lv4
创意家
LV
0
 
IP属地
未知
2019/07/04
113
123
勋章
2
  • · 发布于未知
我试过,但是如果加上双引号的话,插件重新加载后就会出错了
或者试试< >小括号,因为电脑不在身边,具体解决方法之后再告诉你
 

TheLastPrism

Lv6
管理成员
版主
创意家
LV
0
 
IP属地
湖北省
2019/10/25
1,027
341
勋章
5
  • · 发布于未知
???加引号是对的
 

TheLastPrism

Lv6
管理成员
版主
创意家
LV
0
 
IP属地
湖北省
2019/10/25
1,027
341
勋章
5
  • · 发布于未知
使用英文引号不要用中文引号,如果在插件的配置文件里写的话用\"表示引号
 

从此以后

Lv3
LV
0
 
IP属地
福建省
2019/08/19
10
0
  • · 发布于未知
使用英文引号不要用中文引号,如果在插件的配置文件里写的话用\"表示引号
我用的就是英文引号啊。
然后整条广播内容就变成了:" /warp send "{player}" pve " 然后插件就无法识别了
 

TheLastPrism

Lv6
管理成员
版主
创意家
LV
0
 
IP属地
湖北省
2019/10/25
1,027
341
勋章
5
  • · 发布于未知
尝试带上右斜杠
 
  • 标签
    tshock 汉化插件
  • * 这是一则由 Google AdSense 自动推荐的广告,与本站无关,不对其真实性与可靠性负责

    顶部