对比 MMOCore
MMOCore 更新很慢,下面这些问题在最新的 1.13.1 仍然存在。与其等它修,我们自己做了一个职业插件,并且持续维护。
星月天职的目标:MMOCore 职业系统的每个配置参数都照原样支持,MMOCore 的配置文件可以直接放进来用;再把 MMOCore 长期存在的麻烦和问题解决掉。
下表按 MMOCore 1.13.1 的源码逐项整理。
一张表看差异
| MMOCore 1.13 | StarVocation 星月天职 | |
|---|---|---|
| 职业 / 技能 / 属性 / 技能树 / 经验表文件 | ✅ | ✅ 同样格式,直接复制即可使用 |
| 技能文件放子文件夹、中文文件名 | ❌ 文件名就是技能 ID,只能用英文、全部挤在一起 | ✅ 任意子文件夹、中文文件名,ID 可另外写 id: |
| 技能界面顺序 | 按解锁等级排序,同级别时顺序不固定 | ✅ 照职业文件的顺序,也可以 slot: 指定格子 |
| 接上 MythicMobs 技能 | 要在 MythicLib 的 skill/ 另写一份,与 MMOCore 技能文件分开维护 | ✅ 技能文件里直接写 mythicmobs-skill-id;也可用 mythiclib-skill 接 MythicLib 自带技能 |
技能读不到参数(<modifier.xxx>) | 抛出 Could not find parameter 错误,每次施放都写一份错误日志 | ✅ 当作 0,只在后台提示一次是哪个技能缺哪个参数 |
| 职业介绍里的「每级 +N 攻击」 | 手写,常与实际数值不同 | ✅ {stat_lines} 按职业属性自动生成 |
| 经验来源 | 21 种,写在职业或 exp-sources.yml | ✅ 21 种全部支持;另有经验组写法,一组怪物同一个经验值 |
| 经验加成 | 只有全服加成(/mmocore booster),重启服务器就消失 | ✅ 全服 / 指定职业 / 指定玩家,可限时、存数据库、多服同步;另有按权限加成 |
| 升级给点数 | 用 command{format="mmocore admin skill-points give ..."} 绕一圈 | ✅ 这种指令自动变成内置给点数,也可以直接写 points: skill 1 |
| 子职业 | ✅ | ✅ 同样规则:保留进度、清空技能槽、消耗 1 职业点 |
| 施放模式 | 技能栏 / 按键组合 / 滚动选择 | ✅ 三种都有,键名与选项相同 |
| 技能树 | 自定义 / 邻接,前置、子节点上限、点数上限、按状态与形状换图标 | ✅ 同样的状态算法;另有 auto-paths 自动画路径 |
%mmocore_*% 变量 | ✅ | ✅ 全部兼容(没装 MMOCore 时自动注册),另有 %starvocation_*% |
/mmocore admin ... 指令 | ✅ | ✅ 同样语法(没装 MMOCore 时自动注册),商店、NPC、脚本里的指令不用改 |
| MMOItems 等级 / 职业需求、技能魔力消耗 | ✅ | ✅ 自动成为 MMOItems 的 RPG 核心 |
| 跨服 | MySQL,is_saved 标记 | ✅ MySQL,服务器锁,换服时自动等待上一个子服保存 |
| 从对方迁移 | — | ✅ /sv admin import mmocore config 与 /sv admin import mmocore data |
| 云介面 CloudUI | — | ✅ 职业 / 技能 / 天赋点 / 技能树画面,个人资讯显示职业与职业经验 |
| 维护 | 更新慢,问题长期没修 | ✅ 持续维护,问题回报后修正并发布新版 |
| 价格 | — | ✅ 永久免费(星系列) |
修正的 MMOCore 问题
以下是实际读 MMOCore 1.13.1 源码时确认的问题,星月天职照设计意图实现,不照抄:
| MMOCore 的问题 | 星月天职 |
|---|---|
climb / move / eat / play / resource / ride / damagetaken / projectile 经验来源不检查职业,写在一个职业里,所有职业都会拿到经验 | 只有写了这个来源的职业才拿经验 |
projectile 经验来源检查的是「被打的实体是不是投射物」,永远不会触发 | 正常按投射物伤害 × 距离给经验 |
play 经验来源在 /mmocore reload 后旧的计时器不停止,重复发经验 | 只有一个计时器 |
booster remove 删的是复制出来的列表,实际上没有删除 | 正常删除 |
经验全息字把 exp 换掉而不是 {exp},画面上会留下 {12.5} 的括号 | 正常显示 |
职业事件 on-hit-damage 因为键名转换不一致,永远不会触发 | 正常触发 |
reset skills 解除技能槽的循环只检查第 0 格,技能槽不会清空 | 正常清空 |
attribute give 对没有 max-points 的属性会把点数设成 0 | 正常增加 |
| 滚动选择模式在技能被移除后选择位置越界,施放时报错 | 自动换回有效的位置 |
建表程序每次开服都报 Duplicate column name 'is_saved' | 不会 |
目前不包含
星月天职专注在职业系统。以下 MMOCore 的功能不包含,建议使用专门的插件:
- 任务、队伍、好友、公会、传送点
- 生活职业(挖矿、钓鱼、炼金等专业)与依赖它们的自定义挖矿、钓鱼掉落、炼金经验基础值(
brewpotion/enchantitem/repairitem经验来源改用amount指定) - 战利品箱、掉落表、存取款(金币物品)、PvP 模式
- MMOCore 的
gui/*.yml界面格式(星月天职使用menus/*.yml,选项见菜单) - MythicLib 角色档案插件(Profiles)的强制选择职业流程(
force-class-selection改为对所有玩家有效:还是默认职业时进服打开选择界面) - 自动为每个 MythicLib 技能生成
skills/样板文件(这正是 MMOCore 技能文件夹杂乱的原因)
完整的参数对照见各配置页面,每个与 MMOCore 同名的选项都标注了。