RPG Core
概览
RPG Core 是 BTC 服务器的成长层。它是一个大型扩展(以 RPGBundle 的名称构建),整合了属性系统、带有套装和宝石的自定义物品目录、带等级的职业、全局等级、背包和衣柜、拍卖行、安全的玩家交易、自定义合成工作站、自定义钓鱼、移动能力(爬行、翻越、攀爬)以及 Ether 腐化区域。
几乎所有内容都在一个条目 RPG Core Configuration 中配置,每个系统对应其中一个部分。其他条目是小型的构建单元:用于给予物品或更改属性的动作、用于读取它们的事实、用于打开的菜单,以及用于存储玩家数据的构件。
其核心理念是下文所述的属性模型:每位玩家都有数值属性(力量、生命值、暴击率、速度……),装备会为其增加加成,结果则驱动战斗、采集和原版属性。
功能
- 属性模型 — 77 种属性,每位玩家有基础值,并带有来自已装备物品的加成和具名约束。
- 物品目录 — 带有属性、稀有度、等级要求的自定义物品类别,以及带有套装加成的装备套装。
- 职业 — 等级、经验曲线、等级奖励(永久属性和触发器)、增益、比赛和职业菜单。
- 全局等级 — 由职业和任务计算得出的加权等级,用于限制移动能力等。
- 存储 — 保存在构件中的个人背包和衣柜(饰品和鞘翅)。
- 经济 — 拍卖行和安全的玩家间交易,带有滚动 24 小时的货币上限。
- 合成 — 自定义配方、铁砧、砂轮、织布机、炼金、堆肥桶、制图以及带有等级门槛的工作站。
- 移动 — 双击潜行爬行、自动翻越和攀墙,可选 BetterModel 动画。
- 腐化 — 会蔓延、可以被净化并生成腐化怪物的 Ether 腐化区域。
- 命令 — 用于属性、职业、物品、增益和物品栏的管理工具,以及用于拍卖、交易、回收和脱困的玩家命令。
安装
- 安装 GUI 扩展:菜单(职业、背包、衣柜、拍卖、交易)都使用它来渲染。
- 如果你在拍卖行或交易中使用默认经济,请安装与 Vault 兼容的经济插件(Vault)。
- 可选地安装 UiCore(菜单和成长 HUD)、BTCMobs(腐化怪物、怪物组)、Profiles、Party 和 BTC Sky,以使用读取它们的集成。
- 将 RPG Core 的 JAR 放入
plugins/Typewriter/extensions/并重启服务器。
快速上手
- 在 TypeWriter 网页面板中,打开一个**静态(static)**页面,添加一个 Player State 构件:它存储每位玩家的基础属性和效果。
- 如果你使用职业,请添加一个 Profession Data 构件。
- 添加 RPG Core Configuration 条目。在
stats中,将artifact设为 Player State 构件。将stats.stats留空以加载内置默认值,或添加项目来覆盖某个属性的显示名称、默认值、minValue、maxValue或displayFormat。在professions中,将artifact设为 Profession Data 构件并添加一个职业。 - 在
items中,添加一个类别和一个目录物品,带有STRENGTH和HEALTH等stats以及一个rarity。 - 发布。使用
/rpgitem give给自己该物品,穿戴它,并通过/rpgstat info <player> STRENGTH检查数值。 - 通过任务和 NPC 触发 Give BTC Item、Add Stat 或 Profession Grant XP 等动作。
只创建一个 RPG Core Configuration 条目,使所有部分保持唯一的数据来源。
工作原理
属性模型有四个层次。
- 定义。 每个属性都是一个固定的标识符(
STRENGTH、HEALTH、CRIT_CHANCE、SPEED、MINING_EFFICIENCY……)。每个属性都有一个作用域(PLAYER:只有玩家的基础属性可以持有它;ITEM:只有装备加成;BOTH)和一个说明其存储方式的单位:绝对的原版单位(生命值、护甲)、原版基础值的百分比(速度,100= 原版)、0 到 1 的分数(暴击率、抗性)、以 1 为中性值的倍率、累加的百分点,或纯点数。单位是该属性固有的;配置无法更改它。 - 基础值。 每位玩家对每个属性都有一个持久化的基础值,从该属性的
defaultValue开始,保存在 Player State 构件中。它通过 Add Stat、Remove Stat、职业等级奖励(stats)和/rpgstat改变。它会四舍五入到 2 位小数(INTEGER属性为整数),并限制在minValue和maxValue之间。 - 装备加成。 每当装备发生变化,扩展都会重新计算头盔、胸甲、护腿、靴子、主手、副手以及当前衣柜页的加成。对于每件穿戴的物品,它会加上其目录定义中的属性、存储在物品上的属性组件,以及映射为属性的原版附魔。不满足职业等级要求的物品不提供任何加成。作用域为
PLAYER的属性会忽略装备。这些加成是临时的,从不保存。 - 约束。 Constrain Stat 会在一个具名的
source下将某个属性保持在min和max之间,直到 Release Stat Constraint 解除它:例如限制攻击力的决斗竞技场,或降低防御的受诅咒大厅。多个约束会相互收紧(取最高的下限、最低的上限;冲突时上限优先)。
总值为 base + equipment,经过限制,然后再施加约束。与原版属性对应的属性(生命值、护甲、速度、攻击伤害、跳跃力量、触及距离……)会通过单位转换推送到该属性;其他属性则由需要它们的代码读取:暴击率和伤害、生命偷取、闪避、格挡、双倍掉落、采矿和伐木效率、钓鱼力量、职业经验加成等。
Temporary Stat 会在一段时间内增加某个属性(药水、增益)。在条件中通过 Player Stat 读取属性,它返回乘以 scale 并四舍五入后的值。
配置
下面的所有内容都是 RPG Core Configuration 的一个部分。
| 部分 | 配置内容 |
|---|---|
items | 物品目录(类别、物品、稀有度、要求)、装备套装和宝石。 |
stats | Player 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 | 临时增益、全局等级公式、有条件的重生、回收、树脂和岛屿信标。 |
etherCorruption | Ether 腐化区域。 |
combatFeedback、vanillaTooltip | 伤害数字、血条和隐藏的原版提示。 |
命令
所有命令都会在启动时连同其别名一起注册。管理员命令需要 borntocraft.rpg.admin。
| 命令(别名) | 权限 | 说明 |
|---|---|---|
/rpgstat(statadmin、btcstat) | borntocraft.rpg.admin | list、info <player> <stat>、set、add、remove <player> <stat> <value>、reset <player> <stat>。作用域为 ITEM 的属性无法直接更改。 |
/rpgadmin(rpgadm) | borntocraft.rpg.admin | stat <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.admin | addxp、removexp、setxp、addlevel、setlevel、reset、info、list、menu。 |
/rpgitem(btcitem、customitem) | borntocraft.rpg.admin | give、remove、list、info、menu。 |
/rpgcraft(craftadmin、btccraft) | borntocraft.rpg.admin | 用于配方的 list、inspect、preview、menu。 |
/rpginventory(btcinv、inventoryadmin) | borntocraft.rpg.admin | backpack <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
- BTC Backpack MenuBTC Backpack Menu
- BTC Effect ImmunityRend immunisé à des effets vanilla pendant une durée
- BTC Give Item ActionGive a BTC custom item to the player
- BTC Keep ExperienceConserve une part de l'expérience à la mort
- BTC Movement ActionTrigger an RPG Core movement action
- BTC Profession Grant XPGrant experience to a profession
- BTC Profession XP PotionAccélère l'expérience d'un métier pendant une durée
- BTC Remove Item ActionRemove a BTC custom item from the player
- BTC Reveal CreaturesFait luire les créatures proches d'une nature donnée
- BTC Slow RegenerationRend de la vie lentement pendant une durée
- BTC Stat Add ActionIncrease a player's BTC stat by the configured amount
- BTC Stat Remove ActionDecrease a player's BTC stat by the configured amount
- BTC Temporary StatApplique une statistique RPGCore pendant une durée, puis la retire
- BTC Wardrobe MenuBTC Wardrobe Menu
- Constrain Player StatHold a player statistic between bounds while they are somewhere
- Create Corruption ZoneCreate Corruption Zone
- Purify Corruption ZonePurify Corruption Zone
- Quest Reward MenuPersistent reward menu where players can claim items once
- Release Player Stat ConstraintLift a constraint held on a player statistic
- RPG Profession MenuRPG Core Profession Menu
- Spawn Corrupted MobSpawn Corrupted Mob
- Start Profession CompetitionDémarrer un concours de métier
- Stop Profession CompetitionArrêter un concours de métier
- Unlock RecipeUnlocks a specific crafting recipe for the player by its NamespacedKey
事件4
- On Corrupted Mob SpawnOn Corrupted Mob Spawn
- On Corruption PurifiedOn Corruption Purified
- On Corruption SpreadOn Corruption Spread
- On Player Corruption ExposureOn Player Corruption Exposure
事实6
- BTC Item Count FactCount custom BTC items in a player's inventory
- BTC Player Stat FactThe value of an RPGCore statistic for the player
- Corruption Level FactCorruption Level
- Corruption Zone Count FactCorruption Zone Count
- Profession Currency FactRevenus d'un métier
- Purification Progress FactPurification Progress
受众1
- BTC Quest Item AudienceForces players to keep an item in their inventory with full control
构件6
- Backpack Storage ArtifactEtat persistant des backpacks BornToCraft
- BTC Auction House ArtifactBTC Auction House
- BTC Player State ArtifactArtefact pour stocker l'état complet des joueurs (stats + effets)
- BTC Player Trade ArtifactBTC Player Trade Ledger
- Profession Data ArtifactArtifact unifié stockant les données de TOUTES les professions d'un joueur (niveaux, XP, boosts, etc.)
- Wardrobe Storage ArtifactEtat persistant de la wardrobe BornToCraft
清单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 和一个经济提供者,或配置该部分的经济适配器。