构建任何你能想象的 RPG
Martian 是一个基于 Spigot 开发的强大且灵活的 RPG 框架插件,提供多个官方组件,可以用于自定义任何原版 RPG 服务器。
# 仍在积极开发中,联系小明体验测试版
核心组件 · Martian Core
Martian Spigot 的核心,包含属性和修改器的接口及通用属性定义、安全且完全客制化的流式伤害处理系统、灵活的过程抽象使得可以在任何地方执行自定义逻辑。
命名修改器
只需使用极其简洁的语法定义一次修改器,即可快速复用到任何对象(玩家、物品),让属性变化逻辑以模块化方式统一管理,大幅减少重复配置与维护成本。
strength_buff:
- stats: attack_damage
operation: ADD
value: 2.0>
物品拓展 · Martian Items
一个颠覆性的物品库系统,所有物品属性既不依靠 Lore 也不依靠 nbt 直接读取,插件会追踪所有独特物品的每一个副本,重新定义了 RPG 服务器的物品架构,提供了难以置信的灵活性。
定义物品
灵活的物品定义系统让你能够以结构化方式描述任意装备、武器或道具,并为其绑定属性、变量与能力。你可以在一个文件中完整定义物品的外观、基础数值、触发技能与持久化数据,让物品行为可配置、可扩展、可组合。
当你修改配置时,任何过去的装备(即使他不是独特的)都会自动被更新到最新版本且不会丢失任何修改。
metadata:
id: example_sword
unique: true
stats:
material: DIAMOND_SWORD
item_type: sword
on_equip_stats:
attack_damage: 10.0
critical_chance: 0.4
ability_map:
- trigger: AFTER_RIGHT_CLICK
id: mythicmobs:example_sword_skill
variables:
kill_count: 0神话拓展 · Martian Myth
将所有 Mythic Mobs 技能转换为 Martian 兼容的过程以在任何地方进行集成,这使得即使没有代码开发能力的用户同样可以自定义所有逻辑。
Myth 过程
只要你掌握 MythicMobs 的 Skills 编写,你可以通过该功能实现任何自定义逻辑,甚至更加灵活,右侧展示了两端完全一致的过程逻辑。
- skill{s=[
- martian:setVariable{k="kill_count";value="<target.statable.variable.kill_count> + 1"}
- martian:modify{m="example_sword_upgrade_1"} ?varEquals{var=skill.kill_count;value="60.0"}
]} @Statable{path="global.player.<skill.determine./caster>.slots.mainhand"}function main(parameters, determines) {
var statable = Statable.location('global.player.' + determines.caster + 'slots.mainhand');
var kill_count = statable.getVariable('kill_count') + 1;
statable.setVariable('kill_count', kill_count)
if (kill_count == 60) statable.addModifier('example_sword_upgrade')
return determines;
}</> 更多组件同样在开发中...
Martian Spigot 保留了高度的可拓展性并提供了大量对外 API,任何有能力的开发者都可以轻易的进行拓展。