模板 - woshiermuqwq/mythic-chinese GitHub Wiki
模板顾名思义, 令一个Mythic实体的各种元素继承到其它Mythic实体上
通俗而言, 将一个Mythic实体的各种选项(技能、伤害、生命、实体选项等)等通过一串字符应用到其它Mythic实体中.
模板顾名思义, 允许将一个Mythic实体的各种选项、技能等通过一小串字符应用到其它Mythic实体中
具体是什么样的? 见下方示例:
测试僵尸2:
Type: ZOMBIE
Display: "&2测试生物 &7[<caster.level> 级]&r"
Health: 30
Damage: 5
Faction: 怪物
Equipment:
- Iron_Helmet HEAD
- Iron_Chestplate CHEST
- Iron_Leggings LEGS
- Iron_Boots FEET
- Shield OFFHAND
Drops:
- exp 10-15 1
- rotten_flesh 1-2 1
- 僵尸剑 1 0.01
Options:
AlwaysShowName: true
PreventOtherDrops: true
PreventRandomEquipment: true
PreventSunburn: true
PreventItemPickup: true
PreventJockeyMounts: true
PreventTransformation: true
AITargetSelectors:
- clear
- attacker
- players
AIGoalSelectors:
- clear
- meleeattack
- randomstroll
DamageModifiers:
- PROJECTILE 1.15
- ENTITY_ATTACK 0.75
KillMessages:
- '<target.name> 被 <caster.name> 杀死了'
- '尽管 <target.name> 尽力, 仍无法与 <caster.name> 为敌'
Skills:
- skill:随机武器 @self ~onSpawn
- skill:撕咬 @target ~onTimer:60 0.4 ?targetwithin{d=10}
- skill:互换 @eir ~onTimer:180 0.6
这对于稍微接触过 MythicMobs 的人而言简直是入门课
上述的各种选项(如 Skills
, Options
, Display
) 与原文的 Elements
(元素) 对应, 因译者认为这一叫法过于复杂
若你擅长编程, 请将"选项"解读为"元素"
模板有什么用呢?其实这对于那些喜欢制作一堆副本的人而言很有用, 就是你可以将这个僵尸的各种选项应用到其它Mythic实体上
你可能觉得直接复制这僵尸配置的一部分到其它Mythic实体上, 不就好了?
但要是你以后想去调整, 是不是得一个个调整?这就是模板与过去方法最大的差距, 节省了时间与操作
举个例子, 现在我想要制作多个生物, 让它们共享阵营、实体选项、部分技能等出自 模板示例 Mythic实体身上的选项
测试僵尸:
Type: ZOMBIE
Faction: 怪物
Drops:
- exp 10-15 1
Options:
AlwaysShowName: true
PreventOtherDrops: true
PreventRandomEquipment: true
PreventSunburn: true
PreventItemPickup: true
PreventJockeyMounts: true
PreventTransformation: true
AITargetSelectors:
- clear
- attacker
- players
AIGoalSelectors:
- clear
- meleeattack
- randomstroll
DamageModifiers:
- PROJECTILE 0.75
- ENTITY_ATTACK 0.75
KillMessages:
- '<target.name> 被 <caster.name> 杀死了'
Skills:
- skill{s=随机武器} @self ~onSpawn
在创建"测试僵尸"后, 创建第二个Mythic实体(这里拿上文的"测试僵尸2"做示例)
测试僵尸2:
Template: 测试僵尸
Display: "&2测试生物 &7[<caster.level> 级]&r"
Health: 30
Damage: 5
Equipment:
- Iron_Helmet HEAD
- Iron_Chestplate CHEST
- Iron_Leggings LEGS
- Iron_Boots FEET
- Shield OFFHAND
Drops:
- rotten_flesh 1-2 1
- ZombieBrute_Hearth 1 0.01
DamageModifiers:
- PROJECTILE 1.15
KillMessages:
- '<target.name> 被 <caster.name> 杀死了'
- '尽管 <target.name> 尽力, 仍无法与 <caster.name> 为敌'
Skills:
- skill:撕咬 @target ~onTimer:60 0.4 ?targetwithin{d=10}
- skill:互换 @eir ~onTimer:180 0.6
现在, 因"测试僵尸2"的配置内包含了Template: 测试僵尸
, "测试僵尸" 的各种选项将被应用(继承)到"测试僵尸"中
那么, 选项具体是怎样继承/应用的呢?
当Mythic实体继承来自其它Mythic实体的选项时, 选项继承方式有三种:
- 模板生物的选项被 被继承选项的生物 所替代. (覆盖)
- 如:
测试僵尸
(模板) 与测试僵尸2
都有伤害调整:PROJECTILE
选项, 所以测试僵尸2
的伤害调整替换了测试僵尸
(模板) 的伤害调整
- 如:
- 模板生物的选项被 被继承选项的生物 所部分继承, 剩余部分则替代. (部分继承)
- 如:
测试僵尸2
未拥有阵营, 但测试僵尸
(模板) 的阵营为怪物
, 继承后的测试僵尸2
将为怪物
阵营 - 如:
测试僵尸2
与测试僵尸
(模板) 均有对 抛射物(PROJECTILE) 的伤害调整,测试僵尸
还拥有对平A(ENTITY_ATTACK_的25%减伤,测试僵尸2
合并后将仍额外受到15%抛射物伤害(测试僵尸
的 抛射物(PROJECTILE的伤害调整被测试僵尸2
所覆盖), 但测试僵尸2将获得对平A的25%减伤(测试僵尸
的 抛射物(PROJECTILE的伤害调整被测试僵尸2
所继承)
- 如:
- 模板生物的选项与 被继承选项的生物 相合并(当选项为一串列表). (合并)
- 如:
Skills
/KillMessages
是一个关于技能/关于击杀信息的列表, 所以被继承生物将同时拥有双方的技能与击杀信息 -
AIGoalSelectors
与AITargetSelectors
也如此, 值得一提的是, 模板生物的AI行动器与AI目标选择器优先级高于被继承生物- 通过在被继承的生物的AI行动器与AI目标选择器内定义
clear
以清除来自模板生物的AI
- 通过在被继承的生物的AI行动器与AI目标选择器内定义
- 如:
为了便于理解, 下表列出了模板可用的选项,
选项 (位于模板生物配置内) | 中文 | 如何继承 (若被继承生物也拥有该选项) |
---|---|---|
Type | 种类 | 覆盖 |
Display | 显示名 | 覆盖 |
Health | 生命 | 覆盖 |
Damage | 近身攻击伤害 | 覆盖 |
Armor | 额外生命 | 覆盖 |
Bossbar | BOSS血条 | 覆盖 |
Faction | 阵营 | 覆盖 |
Mount | 坐骑 | 覆盖 |
Options | 实体选项 | 部分继承 |
Modules | 威胁度与受伤间隔 | 部分继承 |
AIGoalSelectors | AI行动器 | 合并 |
AITargetSelectors | AI目标器 | 合并 |
Drops | 掉落物 | 合并 |
DamageModifiers | 伤害调整 | 合并 |
Equipment | 装备 | 合并 |
KillMessages | 击杀信息 | 合并 |
LevelModifiers | 等级 | 部分覆盖 |
Disguise | 伪装 | 覆盖 |
Skills | 技能配置 | 合并 |
Trades | 村民交易 | 部分覆盖 |
*
通过在被继承Mythic实体内使用下列语法以令其不继承指定选项
Exclude:
- 选项A
- 选项B
- ...
例如, 下方的 A生物 不会继承 B生物的 装备、AI目标器与技能
A:
Template:B
Exclude:
- Equipment
- AITargetSelectors
- Skills
模板也可以使用其它模板(套娃)
A:
Type: ZOMBIE
Faction: 怪物
Drops:
- exp 10-15 1
Options:
AlwaysShowName: true
PreventOtherDrops: true
PreventRandomEquipment: true
PreventSunburn: true
PreventItemPickup: true
PreventJockeyMounts: true
PreventTransformation: true
DamageModifiers:
- PROJECTILE 0.75
- ENTITY_ATTACK 0.75
KillMessages:
- '<target.name> 被 <caster.name> 杀死了'
B:
Template: A
Equipment:
- Iron_Helmet HEAD
- Iron_Chestplate CHEST
- Iron_Leggings LEGS
- Iron_Boots FEET
- Shield OFFHAND
AITargetSelectors:
- clear
- attacker
- players
AIGoalSelectors:
- clear
- meleeattack
- randomstroll
Skills:
- skill:测试 @self ~onSpawn
测试僵尸:
Template: B
Display: "&2测试生物 &7[<caster.level> 级]&r"
KillMessages:
- '<target.name> 被 <caster.name> 杀死了'
- '尽管 <target.name> 尽力, 仍无法与 <caster.name> 为敌'
Skills:
- skill:撕咬 @target ~onTimer:60 0.4 ?targetwithin{d=10}
- skill:互换 @eir ~onTimer:180 0.6
这样, 该僵尸将继承A、B生物的各种选项
多模板
A:
Type: ZOMBIE
Equip:
- Diamond_Helmet HEAD
- Diamond_Chestplate CHEST
- Diamond_Leggings LEGS
- Diamond_Boots FEET
B:
Template: A
Equipment:
- Iron_Helmet HEAD
- Iron_Chestplate CHEST
- Iron_Leggings LEGS
- Iron_Boots FEET
- Shield OFFHAND
AITargetSelectors:
- clear
- attacker
- players
AIGoalSelectors:
- clear
- meleeattack
- randomstroll
Skills:
- skill:测试 @self ~onSpawn
测试僵尸:
Template: A,B
Display: "&2测试生物 &7[<caster.level> 级]&r"
KillMessages:
- '<target.name> 被 <caster.name> 杀死了'
- '尽管 <target.name> 尽力, 仍无法与 <caster.name> 为敌'
Skills:
- skill:撕咬 @target ~onTimer:60 0.4 ?targetwithin{d=10}
- skill:互换 @eir ~onTimer:180 0.6
该僵尸将先继承A生物, 再继承B生物