差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 | |||
插件手册:mythicmobs:技能_skills [2021/08/30 13:39] – [目标对象] duangfafa | 插件手册:mythicmobs:技能_skills [2021/08/30 13:44] (当前版本) – 移除 duangfafa | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== 技能 ====== | ||
- | ---- | ||
- | {{: | ||
- | |||
- | 技能是 MythicMobs 的一个组成部分。所有生物(或物品,如果您有Artifacts附加组件)都能够拥有各种类型的技能,这些技能可以在不同情况下的不同条件下触发。MythicMob 的技能系统很简单,一旦你习惯了它并且非常灵活,甚至可以用来从 Minecraft 中最流行的 MMORPG 中重新创建 Boss。 | ||
- | 技能组(包括许多技能链)必须存储在'' | ||
- | 技能由几个不同的部分组成: | ||
- | * [[插件手册: | ||
- | * [[插件手册: | ||
- | * [[插件手册: | ||
- | * [[插件手册: | ||
- | * [[插件手册: | ||
- | |||
- | ===== 入门 ===== | ||
- | 那么什么是技能呢? | ||
- | 技能由技能机制或“基础技能”组成,它们是 MythicMobs 自带的简单的基本技能。每个技能机制都在生物的'' | ||
- | <code yaml [enable_line_numbers=" | ||
- | FieryZombie: | ||
- | Type: ZOMBIE | ||
- | Display: 'Fiery Zombie' | ||
- | Health: 50 | ||
- | Skills: | ||
- | - mechanic 1 | ||
- | - skill{skill=Skill group name} | ||
- | - skill{s=Skill group name} | ||
- | - skill:Skill group name} | ||
- | - etc | ||
- | </ | ||
- | 每个技能机制都分配给列表中的生物,例如上面的列表。但是真正的技能会是什么样子呢?这是一个真实的例子: | ||
- | <code yaml [enable_line_numbers=" | ||
- | FieryZombie: | ||
- | Type: ZOMBIE | ||
- | Display: 'Fiery Zombie' | ||
- | Health: 50 | ||
- | Skills: | ||
- | - ignite{ticks=100} @target ~onAttack <50% 0.5 | ||
- | </ | ||
- | 哟嚯!这啥玩意儿?让我们来看看是什么构成了这个技能: | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - mechanic{option=value} @[targeter] ~on[trigger] [health_modifier] [chance] | ||
- | </ | ||
- | 这可能看起来仍然很吓人,但每个部分本身都非常简单,有些甚至是可选的。让我们分别分解每个部分! | ||
- | |||
- | ===== 技能机制 ===== | ||
- | 技能的第一个也是最重要的部分是机制。这就是您想要发生的事情,这是您正在执行的基本技能。它可能造成伤害,或使某些东西着火,或引起闪电……您可以使用[[插件手册: | ||
- | 大多数技能也有选择。它们直接出现在技能名称之后,并用花括号 {} 括起来。每个选项由分号 (;) 分隔。 | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - mechanic{option=value; | ||
- | </ | ||
- | 如果您愿意,您也可以扩展语法以提高可读性,< | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - mechanic{ | ||
- | option=value; | ||
- | option=value; | ||
- | option=value; | ||
- | } | ||
- | </ | ||
- | 设置机制就像确定您要使用的机制并插入您想要的选项一样简单。大多数选项都有默认值并且是可选的。所以如果你想让某人着火 5 秒,你可以使用点燃机制并将'' | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - ignite{ticks=100} | ||
- | </ | ||
- | |||
- | ===== 目标对象 ===== | ||
- | 目标是实施技能的另一个核心部分。目标是“您希望技能命中的目标”。定位器的类型很多,大多数可以分为定位“实体”或“位置”。为您想要做的事情选择正确的目标是很重要的。这是[[插件手册: | ||
- | |||
- | 瞄准器会直接跟随技能线中的机制,并且总是以 @ 符号为前缀。有些人也可以有自己的选择,也可以在瞄准器之后用花括号括起来。 | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - mechanic{option=value} @targeter{options=value} | ||
- | </ | ||
- | 回到我们之前的例子,假设你想让生物的目标着火。你只需这样做... | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - ignite{ticks=100} @target | ||
- | </ | ||
- | 或者您可能希望它让附近的所有玩家着火。让我们说在 5 码半径内...... | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - ignite{ticks=100} @PlayersInRadius{r=5} | ||
- | </ | ||
- | 请记住,目标 是您想要定位的对象。 | ||
- | |||
- | ===== 技能触发器 ===== | ||
- | 触发器也是技能中非常重要的一部分。触发器确定“是什么导致此技能发生”。 | ||
- | 触发器还与特定的目标对象 @trigger交互,后者与由其他实体触发的某些目标对象一起使用。 | ||
- | 触发器直接在目标之后,通常以~on和触发器名称开头。 | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - mechanic{option=value} @targeter{options=value} ~onTrigger | ||
- | </ | ||
- | 回到我们之前的示例,假设您希望该触发器在生物攻击其目标时触发,因此它的近战攻击也会触发。 | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - ignite{ticks=100} @target ~onAttack | ||
- | </ | ||
- | 注意:项目有一组不同的触发器。< | ||
- | |||
- | ===== Health Modifiers ===== | ||
- | 血量修正是一种特殊类型的条件,出现在触发器之后。这些使您可以轻松设置技能仅执行的范围,并且完全是可选的。血量修正有几种简单的形式。这里有些例子: | ||
- | |||
- | * ** =90%** - 生物在达到 90% 生命值后会触发一次技能 | ||
- | * **<50%** - 生物只会触发低于 50% 生命值的技能 | ||
- | * **=30%-50%** - 生物只会在 30% 到 50% 生命值之间触发技能 | ||
- | * **< | ||
- | * **>500** - 生物只会在 HP>500 触发技能 | ||
- | |||
- | Health Modifiers 直接在触发器之后,并以'' | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - mechanic{option=value} @targeter{options=value} ~onTrigger =HealthModifier | ||
- | </ | ||
- | 回到我们之前的例子,假设您希望该技能仅在生物低于 50% 的生命值时起作用: | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - ignite{ticks=100} @target ~onAttack <50% | ||
- | </ | ||
- | |||
- | ===== 概率/ | ||
- | 机会是另一个可以添加到技能线的简单且可选的条件。机会总是放在技能线上的最后一件事,是一个简单的十进制数,其中 1.0 是 100%,0.5 是 50%,0 是 0%。 | ||
- | |||
- | 所以总结一下这个例子,假设你希望这个触发器只在 50% 的近战攻击中触发: | ||
- | <code yaml [enable_line_numbers=" | ||
- | Skills: | ||
- | - ignite{ticks=100} @target ~onAttack <50% 0.5 | ||
- | </ | ||
- | |||
- | ===== 技能参数(高级功能) ===== | ||
- | 技能参数是一项新功能,可让您更轻松地创建通用技能并将参数从其他技能传递给它们。如果这听起来令人困惑,这里有一个例子! | ||
- | 目前大多数人有很多类似的伤害技能,只是针对他们所有不同的怪物稍微调整了一下伤害的轻微差异,但除此之外他们做的事情基本上是一样的。 | ||
- | |||
- | **这样做的旧方法:** | ||
- | <code yaml [enable_line_numbers=" | ||
- | ShadowDamage20: | ||
- | Skills: | ||
- | - damage{amount=20} | ||
- | - some shadowy effect | ||
- | |||
- | Mob1: | ||
- | Skills: | ||
- | - skill: | ||
- | </ | ||
- | **通过技能参数,我们可以将所有这些组合成一个技能!新方式:** | ||
- | <code yaml [enable_line_numbers=" | ||
- | ShadowDamage: | ||
- | Skills: | ||
- | - damage{amount=< | ||
- | |||
- | Mob1: | ||
- | Skills: | ||
- | - skill: | ||
- | </ | ||
- | 这个小怪仍然会对目标造成20点伤害。 | ||
- | “技能参数”系统会将技能/ | ||
- | |||
- | **把它全部包起来!** | ||
- | 如您所见,虽然原始技能看起来令人生畏,但将其分解成碎片会使事情变得简单得多。 | ||
- | 一旦您掌握了使用单个基本技能的窍门,您就可以使用高级技能将它们组合成更复杂的技能。这将在后面的文章中介绍。 |