McLists一周年快乐
服务器已经添加了详细介绍信息板块
服主可以在管理后台来提交自己服务器介绍信息。
服务器介绍信息提交后,管理人员会进行审核
审核通过后会在服务器详细页面进行显示
提交服务器介绍信息会让新玩家更好的了解你的服务器哦~
添加图片信息,也会让百度等搜索引擎更好的收录您的服务器哦~
管理平台地址:传送门
Cobblemon Trainer Battle Commands

Cobblemon Trainer Battle Commands - Cobblemon 训练师对战指令

提供用于管理训练师和开始对战的命令,可作为其他模组(例如 Easy NPC)的接口。
fabric / neoforge 作者 hd42 支持版本 1.21.1 - 1.21.1
下载量
124,146
关注数
25
数据来源
Modrinth
模组详细介绍

Cobblemon Trainer Battle Commands (TBCS)

提供用于管理训练家并开始对战的命令,也可作为其他模组(例如 Easy NPC)的接口。

> 此模组主要面向地图制作者和整合包开发者。

Supported By

bisecthosting

Commands

  • tbcs
  • attach :将给定训练家附加到指定实体上(一个训练家始终只会附加到一个实体)。
  • `battle

... vs

... [rules ] [onwin ]`:以指定的对战格式、规则和胜利命令在给定参与者之间开始一场对战(后两者为可选)。

> 所有命令都需要 2 级权限。

Battle Rules

对战规则由一个 json 对象描述,包含以下属性:

  • maxItemUses:指定每位参与者在一场对战中可使用道具的次数。

> 是的,目前就只有这一个属性。

Win Commands

胜利命令同样由一个 json 对象描述,不过其结构会更动态一些。一个胜利命令对象可以为每个对战方(即 12)定义一个属性,其中包含一个命令数组;当对应对战方获胜时,就会执行这些命令(见下方示例)。

此外,任意胜利命令都可以访问特殊的选择器(类似于 @s@e),它允许你在命令中选择任意对战参与者。这些选择器的结构如下:@,其中 `` 指定的是对战参与者的一个位置,并且该位置是相对于执行该胜利命令的一方而言的。

说到命令时,有两个重要问题需要考虑:谁在执行该命令?以及该命令在哪里执行?

胜利命令通常由服务器在一场对战所有参与者的中心位置执行。不过,也可以让对战中的任意参与者成为某条命令的执行者;在这种情况下,该命令也会在该参与者所在的位置执行。

好了,形式化描述说完了,接下来进入……

示例

重要: 以下命令中使用的训练家(例如 tbcs:mytrainer1)都只是示例。你需要自行提供训练家,或者安装另一个提供训练家的模组(见下方 Trainers 部分)。


tbcs attach tbcs:mytrainer1 @e[type=minecraft:villager,limit=1,sort=nearest]

tbcs:mytrainer1 附加到最近的村民上。


tbcs battle GEN9SINGLES @s vs tbcs:mytrainer1

在执行该命令的玩家与 tbcs:mytrainer1 之间开始一场对战(该训练家必须已附加到某个实体上)。


tbcs battle GEN9SINGLES @s vs tbcs:mytrainer1 rules {maxItemUses: 1}

与上面类似,但将每一方可使用道具的次数限制为 1


tbcs battle GEN9SINGLES @s vs tbcs:mytrainer1 rules {maxItemUses: 1} onwin {1: ['give @1 minecraft:diamond']}

还是类似的例子,但这次玩家在获胜时会获得一颗钻石(第一方的第一个参与者)。


tbcs battle GEN9SINGLES @s vs tbcs:mytrainer1 onwin {1: ['loot spawn ~ ~ ~ loot minecraft:chests/simple_dungeon']}

这是使用 give 的一种替代方案(通常奖励会更多一些,不过也取决于战利品表)。该胜利命令将由服务器在所有对战参与者的中心位置执行。若要让玩家来执行该命令(即直接把战利品生成在玩家头顶),可以在 loot 命令前加上 @1(也见下方示例)。


tbcs battle GEN9MULTI @s tbcs:mytrainer1 vs tbcs:mytrainer2 tbcs:mytrainer3 onwin {1: ['give @1 minecraft:diamond', '@2 say We got them!']}

这是一个位置选择器的示例。当第一方获胜时(即玩家一方),玩家会获得一颗钻石,而 tbcs:mytrainer1 会说出 “We got them!”。这也展示了命令如何由服务器之外的其他来源执行(第二条命令将由 tbcs:mytrainer1 所附加到的实体执行)。


tbcs battle GEN9MULTI @s tbcs:mytrainer1 vs tbcs:mytrainer2 tbcs:mytrainer3 onwin {1: ['give @1 minecraft:diamond', '@2 say We got them!'], 2: ['@3 tp ~ ~10 ~']}

我们可以在上一个示例的基础上扩展,为另一方添加胜利命令;也就是说,当玩家一方失败时,就会执行这些命令。再次提醒,位置参数是相对于执行胜利命令的一方而言,并按照从左到右的顺序排列。因此,对于从第二方执行的命令,选择器映射如下:

  • @1 -> tbcs:mytrainer2
  • @2 -> tbcs:mytrainer3
  • @3 -> @s
  • @4 -> tbcs:mytrainer1

作为参考,从第一方执行的命令中,选择器映射如下:

  • @1 -> @s
  • @2 -> tbcs:mytrainer1
  • @3 -> tbcs:mytrainer2
  • @4 -> tbcs:mytrainer3

因此,第二方的胜利命令会在玩家一方失败时(即第二方获胜)惩罚玩家:将玩家相对于当前位置向上瞬移 10 格(该命令由玩家执行)。


tbcs battle GEN9SINGLES @s vs tbcs:mytrainer1 onwin {1: ['@2 say Not bad, but are you ready for this?!', 'tbcs attach tbcs:mytrainer2 @2', 'tbcs battle GEN9SINGLES @1 vs tbcs:mytrainer2 onwin {1: [\'give @1 minecraft:diamond\']}']}

这个示例会把一场对战接在另一场对战之后。来拆解一下(以下内容都会在玩家获胜时执行):

  • 第一条命令会让 tbcs::mytrainer1 的训练家实体说出 “Not bad, but are you ready for this?!”
  • 第二条命令会把另一个训练家 tbcs:mytrainer2 附加到与 tbcs:mytrainer1 相同的实体上
  • 第三条命令会紧接着开始玩家与 tbcs:mytrainer2 的另一场对战。该对战也带有它自己的胜利命令定义,玩家获胜时会得到一颗钻石。

查看该命令的实际效果:

Battle Chain Demo

> 这可以无限重复。请注意,胜利命令嵌套得越深,就需要更多反斜杠(\)来对包围命令的单引号(')进行转义


tbcs battle GEN9SINGLES @s vs tbcs:mytrainer1 onwin {2: ['@1 say You need to practice more @2!'], 1: ['@2 say You got me. Take this @1', 'loot spawn ~ ~ ~ loot minecraft:chests/endcitytreasure']}

这里没有新内容。这是我测试中的一条命令。

Easy NPC Example

Easy NPC Demo

> 注意:视频来自较旧版本,训练家 id 的结构现在稍微有所不同(可查看游戏内命令建议),但功能是一样的。你可以在 repository 中找到完整视频。

Trainers

Structure

训练家可以使用 json 来定义,训练家模式由 RCTApi 提供,因此其结构基本与我的另一个模组 Radical Cobblemon Trainers 相同(唯一的例外是 identity,它在此模组中同样不存在,以及 battleFormatbattleRules,这两者都是命令参数)。你可以在对应的文档中找到更多信息和一个示例。

Location

每当一个世界被加载时,系统都会在所有 trainerPaths 中搜索训练家文件;这是一个相对于世界目录的路径列表。所有训练家都会以一个由文件名派生出的id 进行注册。比如,假设我们有如下 Minecraft 安装目录(已简化):

mods
config
trainers
  bug_catcher.json
saves
  My Cool World
    Strong Trainers
      Ash Ketchum.json
  Boring World
...

其中 trainerPaths 定义为:["Strong Trainers", "../../trainers"]

  • 加载 My Cool World 将注册训练家 tbcs:bugcatchertbcs:ashketchum
  • 加载 Boring World 只会注册训练家 tbcs:bug_catcher

> 如果具有相同 id 的训练家(即位于不同文件夹但文件名相同)被注册了多次,之后注册的训练家会在其 id 后附加一个计数器(_n)。

Compat

该模组与其他同样依赖 RCTApi 的模组兼容。若这些模组也已安装,则这些模组中的训练家副本可以自动注册到 tbcs 中(见配置)。

Configuration

配置文件位于 config/tbcs-server.toml

[Trainers]
  #━━━━━━━━━━
  #相对于世界目录、在(重新)加载世界时搜索训练家
  #json 文件的路径列表。
  #
  #Default: ["trainers", "../trainers", "../../trainers"]
  trainerPaths = ["trainers", "../trainers", "../../trainers"]
  #━━━━━━━━━━
  #同样依赖 RCTApi 来定义训练家的模组 id 列表。
  #来自所列模组的训练家副本也会被注册到 TBCS。
  #
  #Default: ["rctmod"]
  trainerMods = ["rctmod"]

[Commands]
  #━━━━━━━━━━
  #胜利命令的权限等级。
  #
  #Default: 2
  #Range: 1 ~ 4
  winCommandsPermission = 2

Dependencies

License

本项目的源代码采用 [GNU-LGPL](LICENSE.md) 许可。

基本信息
模组名称Cobblemon Trainer Battle Commands
作者hd42
下载量124,146
关注数25
支持版本1.21.1 - 1.21.1
加载器fabric / neoforge
客户端required
服务端required

友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作

历史访问人数:1,315,616  |  历史访问人次:1,628,324

今日访问人数:2,717  |  今日访问人次:2,893

昨日访问人数:26,708  |  昨日访问人次:29,775

Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.

Powered by GermMC 京ICP备17023959号-6