跳到主要内容

RPG Core

属性、装备加成、专业、物品、背包、拍卖行、交易和移动。

私有v0.1.1RPG 与成长
依赖TypeWriter0.9.0-beta-177 (BTC build)GUIVaultUiCore可选BTCMobs可选Profiles可选Party可选

专为 BornToCraft 服务器网络打造。此扩展仅作参考文档,不对外分发。

概览​

RPG Core 是 BTC 服务器的成长层。它是一个大型扩展(以 RPGBundle 的名称构建),整合了属性系统、带有套装和宝石的自定义物品目录、带等级的职业、全局等级、背包和衣柜、拍卖行、安全的玩家交易、自定义合成工作站、自定义钓鱼、移动能力(爬行、翻越、攀爬)以及 Ether 腐化区域。

几乎所有内容都在一个条目 RPG Core Configuration 中配置,每个系统对应其中一个部分。其他条目是小型的构建单元:用于给予物品或更改属性的动作、用于读取它们的事实、用于打开的菜单,以及用于存储玩家数据的构件。

其核心理念是下文所述的属性模型:每位玩家都有数值属性(力量、生命值、暴击率、速度……),装备会为其增加加成,结果则驱动战斗、采集和原版属性。

功能​

  • 属性模型 — 77 种属性,每位玩家有基础值,并带有来自已装备物品的加成和具名约束。
  • 物品目录 — 带有属性、稀有度、等级要求的自定义物品类别,以及带有套装加成的装备套装。
  • 职业 — 等级、经验曲线、等级奖励(永久属性和触发器)、增益、比赛和职业菜单。
  • 全局等级 — 由职业和任务计算得出的加权等级,用于限制移动能力等。
  • 存储 — 保存在构件中的个人背包和衣柜(饰品和鞘翅)。
  • 经济 — 拍卖行和安全的玩家间交易,带有滚动 24 小时的货币上限。
  • 合成 — 自定义配方、铁砧、砂轮、织布机、炼金、堆肥桶、制图以及带有等级门槛的工作站。
  • 移动 — 双击潜行爬行、自动翻越和攀墙,可选 BetterModel 动画。
  • 腐化 — 会蔓延、可以被净化并生成腐化怪物的 Ether 腐化区域。
  • 命令 — 用于属性、职业、物品、增益和物品栏的管理工具,以及用于拍卖、交易、回收和脱困的玩家命令。

安装​

  1. 安装 GUI 扩展:菜单(职业、背包、衣柜、拍卖、交易)都使用它来渲染。
  2. 如果你在拍卖行或交易中使用默认经济,请安装与 Vault 兼容的经济插件(Vault)。
  3. 可选地安装 UiCore(菜单和成长 HUD)、BTCMobs(腐化怪物、怪物组)、Profiles、Party 和 BTC Sky,以使用读取它们的集成。
  4. 将 RPG Core 的 JAR 放入 plugins/Typewriter/extensions/ 并重启服务器。

快速上手​

  1. 在 TypeWriter 网页面板中,打开一个**静态(static)**页面,添加一个 Player State 构件:它存储每位玩家的基础属性和效果。
  2. 如果你使用职业,请添加一个 Profession Data 构件。
  3. 添加 RPG Core Configuration 条目。在 stats 中,将 artifact 设为 Player State 构件。将 stats.stats 留空以加载内置默认值,或添加项目来覆盖某个属性的显示名称、默认值、minValue、maxValue 或 displayFormat。在 professions 中,将 artifact 设为 Profession Data 构件并添加一个职业。
  4. 在 items 中,添加一个类别和一个目录物品,带有 STRENGTH 和 HEALTH 等 stats 以及一个 rarity。
  5. 发布。使用 /rpgitem give 给自己该物品,穿戴它,并通过 /rpgstat info <player> STRENGTH 检查数值。
  6. 通过任务和 NPC 触发 Give BTC Item、Add Stat 或 Profession Grant XP 等动作。
一个配置条目

只创建一个 RPG Core Configuration 条目,使所有部分保持唯一的数据来源。

工作原理​

属性模型有四个层次。

  1. 定义。 每个属性都是一个固定的标识符(STRENGTH、HEALTH、CRIT_CHANCE、SPEED、MINING_EFFICIENCY……)。每个属性都有一个作用域(PLAYER:只有玩家的基础属性可以持有它;ITEM:只有装备加成;BOTH)和一个说明其存储方式的单位:绝对的原版单位(生命值、护甲)、原版基础值的百分比(速度,100 = 原版)、0 到 1 的分数(暴击率、抗性)、以 1 为中性值的倍率、累加的百分点,或纯点数。单位是该属性固有的;配置无法更改它。
  2. 基础值。 每位玩家对每个属性都有一个持久化的基础值,从该属性的 defaultValue 开始,保存在 Player State 构件中。它通过 Add Stat、Remove Stat、职业等级奖励(stats)和 /rpgstat 改变。它会四舍五入到 2 位小数(INTEGER 属性为整数),并限制在 minValue 和 maxValue 之间。
  3. 装备加成。 每当装备发生变化,扩展都会重新计算头盔、胸甲、护腿、靴子、主手、副手以及当前衣柜页的加成。对于每件穿戴的物品,它会加上其目录定义中的属性、存储在物品上的属性组件,以及映射为属性的原版附魔。不满足职业等级要求的物品不提供任何加成。作用域为 PLAYER 的属性会忽略装备。这些加成是临时的,从不保存。
  4. 约束。 Constrain Stat 会在一个具名的 source 下将某个属性保持在 min 和 max 之间,直到 Release Stat Constraint 解除它:例如限制攻击力的决斗竞技场,或降低防御的受诅咒大厅。多个约束会相互收紧(取最高的下限、最低的上限;冲突时上限优先)。

总值为 base + equipment,经过限制,然后再施加约束。与原版属性对应的属性(生命值、护甲、速度、攻击伤害、跳跃力量、触及距离……)会通过单位转换推送到该属性;其他属性则由需要它们的代码读取:暴击率和伤害、生命偷取、闪避、格挡、双倍掉落、采矿和伐木效率、钓鱼力量、职业经验加成等。

Temporary Stat 会在一段时间内增加某个属性(药水、增益)。在条件中通过 Player Stat 读取属性,它返回乘以 scale 并四舍五入后的值。

配置​

下面的所有内容都是 RPG Core Configuration 的一个部分。

部分配置内容
items物品目录(类别、物品、稀有度、要求)、装备套装和宝石。
statsPlayer State 构件、按属性的覆盖设置、全局选项(再生、暴击、生命偷取、效率、怪物组、额外战利品)以及命令消息。
professions职业列表、等级、经验曲线和奖励、职业菜单和消息。
inventory背包和衣柜的布局与存储。
auction拍卖行的税费、持续时间、经济和菜单。
trade安全交易:距离、请求有效期、堆叠上限、24 小时货币上限、账本构件、经济和菜单。
movement爬行、翻越和攀爬等级、全局等级门槛、BetterModel 动画。
crafting、specialRecipes、anvil、enchantment、alchemy、grindstone、loom、cartography、cartographyCrafting、composter、workstations、industrial配方和自定义工作站,每个都受等级或延迟的限制。
fishing、gathering、mobTrap自定义钓鱼(包括岩浆和虚空)、统一的资源采集(经验、战利品、门槛)和怪物捕获。
boosts、globalLevel、respawn、recycling、divers、beacon临时增益、全局等级公式、有条件的重生、回收、树脂和岛屿信标。
etherCorruptionEther 腐化区域。
combatFeedback、vanillaTooltip伤害数字、血条和隐藏的原版提示。

命令​

所有命令都会在启动时连同其别名一起注册。管理员命令需要 borntocraft.rpg.admin。

命令(别名)权限说明
/rpgstat(statadmin、btcstat)borntocraft.rpg.adminlist、info <player> <stat>、set、add、remove <player> <stat> <value>、reset <player> <stat>。作用域为 ITEM 的属性无法直接更改。
/rpgadmin(rpgadm)borntocraft.rpg.adminstat <player> <stat> <get|set|reset> [value]、profession <player> <profession> <get|setlevel|reset> [value]、boost <player> <stat> <amount> <seconds>、corruption <create|remove|list>、mana <player> <set|give|get>、reload(重新应用在线玩家的属性)、debug <player>。
/rpgprofession(profes、prof)borntocraft.rpg.adminaddxp、removexp、setxp、addlevel、setlevel、reset、info、list、menu。
/rpgitem(btcitem、customitem)borntocraft.rpg.admingive、remove、list、info、menu。
/rpgcraft(craftadmin、btccraft)borntocraft.rpg.admin用于配方的 list、inspect、preview、menu。
/rpginventory(btcinv、inventoryadmin)borntocraft.rpg.adminbackpack <list|open|reset>、wardrobe <open|info>、list。
/rpgboost(boost、xpboost)borntocraft.rpg.admin职业经验增益的 give、clear、list。
/questrewardreset(qrr、resetquestreward)btc.admin.questrewardreset<menuId> <player|all>:重置某个 Quest Reward Menu 的领取记录。
/rpgauction(ah、auction)无browse、management、sellmenu、collection、list <price> <minutes> [buyout]、bid <id> <amount>、buy <id>、cancel <id>、claim、finalize(管理员)。
/rpgtrade(trade、p2ptrade)无<player> 打开一个请求;accept <id>、deny <id>、money <amount>、confirm、cancel。
/rpgrecycling(recycling、recycle)无打开回收菜单。
/unstick(rollback)无触发 id 为 action:system_unstick 的条目;如果该条目不存在,则返回错误。

权限​

权限授予
borntocraft.rpg.admin上述所有管理员命令。
btc.admin.questrewardreset/questrewardreset。

占位符​

RPG Core 注册了 MiniPlaceholders 扩展 btc。完整列表请参见占位符。

条目​

42 个条目,由扩展源码生成。

动作24
事件4
事实6
受众1
构件6
清单1
  • BTC Rpgcore ConfigurationConfigure BornToCraft RPG core systems (Items, Stats, Professions, Inventory, Crafting, Commands, Fishing, Auction, Movement, Trade)

故障排查​

No btc_rpgcore_configuration entry found! Create one in TypeWriter UI. 没有配置条目就不会加载任何内容。请添加一个并发布。

属性被重置或没有被保存。 stats.artifact 为空或指向一个不存在的构件:此时基础属性只保存在内存中。请链接一个 Player State 构件。professions.artifact 对于职业进度同样适用。

物品没有提供任何属性。 请检查属性 id(接受 ATTACK_DAMAGE 或 MAX_HEALTH 等别名)、物品是否穿戴在盔甲、手部或当前衣柜槽位中、玩家是否满足其职业 requirements,以及该属性的作用域不是 PLAYER。配置中列出的、带有 displayFormat 的属性必须包含 {value},并且 minValue 不得超过 maxValue,否则配置将加载失败。

加载时出现 percentageMultiplier must be ...。 对于单位固定的属性(例如分数和倍率使用 100,原版百分比属性使用 1),会检查显示倍率。请移除该覆盖设置,或使用错误中给出的值。

/rpgstat set 拒绝某个属性。 它会提示该属性仅限物品:其作用域为 ITEM,因此只有装备可以持有它。请使用物品或临时属性。

/unstick 提示该动作未配置。 请创建一个 id 为 action:system_unstick 的可触发条目。

拍卖行或交易无法转移金钱。 默认经济是 Vault:请安装 Vault 和一个经济提供者,或配置该部分的经济适配器。

相关扩展​

  • UiCore — 渲染成长、衣柜和存储面板。
  • Profiles 和 Party — 档案切换和队伍经验共享。
  • BTC Sky — 感知岛屿的机制。