MMOItems伤害调整 - woshiermuqwq/mythic-chinese GitHub Wiki
SCConflict 是国人开发的一款插件 购买请 +Q: 1360197420, 价格50r 兼容高版本 MythicMobs 与 MMOItems 其功能为实现游戏内常有的元素克制
/scc check 使执行者进入或退出查看模式,在查看模式下右键任何实体都会显示其所有的伤害调整(包含已过期的伤害调整以及未过期伤害调整的剩余时间)。
只需参考下面的配置语法,在怪物根节点下的 Reduction 字段下进行配置,就可以非常轻松的为怪物设置默认伤害调整。
注:在此处定义的伤害调整的标识符为 config
测试实体:
Type: 任意实体种类
Display: ...
Reduction:
- 伤害匹配器 算法 数值
- 伤害匹配器 算法 数值
- ...
几乎所有由玩家造成的伤害总是包含 Magic 和 Physical 中的至少一个;也总是包含 Unarmed、Weapon、Skill 和 Projectile 中的至少一个。
匹配器名 匹配规则 Magic 魔法伤害 Physical 物理伤害 Unarmed 空手伤害 Weapon 武器伤害 Skill 技能伤害 Projectile 弹射物伤害 El_<元素ID> 匹配一种元素伤害 ANY 匹配任何伤害
该版本将伤害匹配器分为简单伤害匹配器与复杂伤害匹配器,在该版本之前的所有你编写的伤害匹配器均为简单伤害匹配器。复杂伤害匹配器通过 &、|、! 三种运算符连接简单伤害匹配器,可以让你根据多条简单伤害匹配器匹配伤害。
# 将既是武器伤害又是火元素伤害的伤害降低至 20%
# 将技能伤害和魔法伤害提升至 500%
# 将非冰属性伤害提升至 200%
Reduction:
- 'WEAPON & EL_FIRE 0.2'
- 'SKILL | MAGIC 5'
- '! el_ICE 2'
忽略:将所受到的该伤害类型的伤害乘以该数值 add 数值:将所受到的该伤害类型的伤害加上该数值
# 这只僵尸将减免 80% 物理伤害
# 但会额外受到 4 倍魔法伤害
坚硬盔甲僵尸:
Type: ZOMBIE
Display: '坚硬盔甲僵尸'
Reduction:
- Physical 0.2
- Magic 5
# 这只僵尸免疫一切非魔法伤害
# 并将魔法伤害降低至 5 点
魔导师:
Type: ZOMBIE
Display: '魔导师'
Reduction:
- ANY 0
- Magic add 5
# 这只僵尸受到的火元素伤害会降低至十分之一
# 但会受到十倍的冰元素伤害
岩浆僵尸:
Type: ZOMBIE
Display: '岩浆僵尸'
Reduction:
- el_FIRE 0.1
- el_ICE 10
添加 MMOItems 伤害调整 但变更的伤害调整针对 MMOItems 伤害类型 若使用该技能创建多个算法为mt且对应伤害类型相同的伤害调整, 与On Damaged一致 这些伤害调整将以乘法形式叠加
修改项:
修改项 | 描述 | 默认值 |
---|---|---|
key | 所创建伤害调整的标识符, 用于在删除伤害调整时选取该伤害调整 | default |
mt | 算法, mul: 乘法; add: 加法(详细算法与上文一致) | mul |
dt | 所创建伤害调整对应的伤害类型 | Physical |
s | 所创建伤害调整对应的调整数值 | 0.9 |
d | 所创建伤害调整的持续时间(秒) | 无限制 |
测试:
Type: ZOMBIE
Display: '物防僵尸'
Health: 40
Damage: 10
Skills:
- adm{dt=Physical;mt=mul;s=0.9;d=200;delay=100} @self ~onSpawn
生成的 10 秒后, 在 200 秒内减免 10% MMOItems 物理伤害
移除 MMOItems 伤害调整
修改项:
修改项 | 描述 | 默认值 |
---|---|---|
key | 所移除伤害调整的标识符。 | default |
num | 若有多个符合该标识符的伤害调整,则移除多少个。 | mul |
reverse | 是否倒序查找符合的标识符,若为否则可理解为移除最早获得的。 | Physical |
测试:
Type: ZOMBIE
Display: '物防僵尸'
Health: 40
Damage: 10
Skills:
- adm{key=dzf;mt=mul;s=0.1} @self ~onSpawn
- ddm{key=dzf} @self ~onDamaged 0.1
# 初始减免 90% MMOItems 物理伤害
# 但受伤有 10% 几率移除该减伤效果
注意:阅读该板块需要您有一定 Java 基础
你需要继承 SimpleMatcher 并将这个类注册到 SimpleMatcherManager
除了实现父类的抽象方法以外,你还必须实现以下方法
static Boolean is(String key)
用于快速检测伤害匹配器主键是否属于该类
static SimpleMatcher getInst(String key)
用于实例化伤害匹配器
graph TD
M{{"Matcher"}} -->|超接口| SM(SimpleMatcher) & CM(ComplexMatcher);
subgraph LR Manager[SimpleMatcherManager]
TM(TypeMatcher) & EM(ElementMatcher) & AM(AnyMatcher);
end
SM -->|超类| TM & EM & AM;
TM -->|实例化| Type_P([PhysicalMatcher]) & Type_AndMore([....]);
EM -->|实例化| El_F([FireMatcher]) & El_AndMore([....]);
AM -->|实例化| AnyMatcher([AnyMatcher]);