本 Wiki 字数统计为 39134 字
Wiki 的文档版在这里下载
使用 MythicMobs 创建自己的生物甚至是Boss是很简单的,这些是你需要了解的: · 如何配置 YAML 文件 · 你的文件到哪里去了 · MythicMobs 拥有的设置选项 YAML-文件 YAML 格式的文件常用于保存配置。这些文件易于读写,并且加载的很快。绝大多数的 Minecraft 插件都使用 YAML 文件来作为他们的配置文件,MythicMobs 也不例外。 如果你想要深入了解YAML是什么,那么请前往 YAML Wiki 条目(英文)(中文,需过墙) 然而更多关于 YAML 的知识对于配置 MythicMobs 的生物来说,是不需要的。 但是使用 YAML 时有一点需要注意:不要使用 Tab 键 编辑 YAML 文件的最好的软件是 Notepad++
你的文件到哪里去了 在加载 MythicMobs 到你的服务器之后,它的文件夹将会像大部分 Minecraft 插件一样,在 /plugins 文件夹内,你甚至会找到很多的子文件夹。 将配置文件放入正确的文件夹始终是非常重要的。 错误的放置配置文件将会被插件读取为其他东西,比如你讲生物配置放进了技能文件夹,插件就将试图将它读取为生物的技能,当然这会报错并输出到你的服务器控制台。 记住:将文件放进正确的文件夹,否则你的创造物将不会运行。
ExampleXXX.yml这些示例文件无法被删除,它们将会在下次重启时重新生成,如果你不想加载里面的配置,只需要删除里面的内容。
MythicMobs 设置 确实,MythicMobs 有很多的配置可供修改,但是你不应该就这样去做了,你修改的东西越多,就越容易犯错误,也就会最终变得困惑不解、不知所措,被水淹没。说到这里,我建议你做几件事,这将让你更加得心应手: 创建一个本地服务器 在你自己的电脑上创建一个 Spigot 服务器,这是创建和测试最便捷的方法了。只需要安装服务器,创建一个超平坦世界。接着载入 MythicMobs 和其他你想测试的插件,这样做有以下优势: · 你可以按下 Tab 切换 Minecraft 和 Notepad++ · 安全的测试环境 · 崩溃不打扰其他人 · 速度快捷 如果你的电脑足够久远,并且你担心性能什么的,不用担心,Spigot 足够轻量,并且如果你的电脑可以胜任原版的单人游戏,那么我想你的电脑也可以开着 Spigot 玩服务器。(相信我,我用着一颗上古双核处理器,但是表现令人尖叫)
选择正确的版本 突然有了问题?请确保你使用了对应你版本的 MythicMobs,兼容列表也可以在下载页面找到。 MythicMobs 不止能创建自定义生物,它也可以改变原版 Minecraft 生成的生物。实现这个太简单了,你需要做的只是将想要改变的生物写入自动生成的 VanillaMobs.yml 文件,位于/MythicMobs/Mobs 文件夹。接着你就可以做你想做的了。 一般来说,覆盖原版生物可以使用整个 MythicMobs 的技能和选项。如果你在某个地方跌倒了,请确认你使用了正确的格式并爬起来,如果爬不起来,那么请到我们的 Bug提交论坛 寻求帮助! 完全移除一个原版生物(知道你讨厌苦力怕) 让我们轻松地开始,你可能在寻找这个:如何阻止一个特定的生物生成。 我们猜你狠苦力怕入骨,而且你还想让他们见鬼去吧。第一件事我们要做的是找到苦力怕的正确种类代号,我们可以在这个页面(见生物|生物种类)找到正确的种类代号为... “CREEPER”。 VanillaMobs.yml CREEPER: 由于一些显而易见的原因,确定一个生物种类不是必要的(难道不是吗2333)。剩下需要做的是添加一个移除机制到这个生物,这样当它出生时就会移除。 CREEPER:
Skills:
- remove @self ~onSpawn
就是这样!任何生成的苦力怕会马上删除! 如果你想阻止更多生物生成,那么你就无限重复上面的过程,就像这样: CREEPER:
Skills:
- remove @self ~onSpawn
ENDERMAN:
Skills:
- remove @self ~onSpawn
ZOMBIE:
Skills:
- remove @self ~onSpawn
...
给生物添加5毛特效(可爱的僵尸) 僵尸没那么吓人是吧?或者你想让你的服务器的年龄限制下降一些?让我们给你的休闲小怪加上一些爱。第一步,找到生物种类,接着还是像这样: VanillaMobs.yml: ZOMBIE: 接着,我们要使用粒子机制(见技能|机制|粒子),选择我们想要的爱心粒子(“heart” <3),从粒子类型选择。 ZOMBIE:
Skills:
- effect:particles{particle=heart;amount=1;hs=0.1;vs=0.1;y=1.5} @self ~onTimer:20 0.25
然后又一次,我们成功了。显而易见,我们有了一个完全自定义的生物。这个例子将会生成一颗红心粒子,平均每 4 秒一颗。 更改生物选项(爬行的末影人) 你可以在原版生物上更改生物选项,让我们把服务器里的末影人变得更加可怕,同时也会丧失它们的基础能力。 ENDERMAN:
Options:
PreventTeleporting: true
Skills:
- potion{type=INVISIBILITY;duration=630720000;level=0} @self ~onSpawn
这个示例将会阻止你的服务器的末影人使用传送能力,注意这些设置只会对 Minecraft 生成的生物有效。你创建的其他自定义的生物(比如末影人)不会受到原版覆盖带来的影响。 并且,末影人在生成时会对自己使用药水机制,这样让他们隐形 63072000 ticks。这看起来可能像个随机数,然而这相当于游戏内的 1 年,为什么不呢? 但是末影人并不会永久隐形。你仍然会看到他们的眼睛,就像隐形的蜘蛛一样,末影人也是。
更改属性 这个该不用多说什么了吧,你可以更改原版覆盖生物的属性。就像这样: ZOMBIE:
Health: 200
Damage: 20
Armor: 5
Options:
MovementSpeed: 0.25
FollowRange: 137
Silent: true
Skills:
- jump{v=0.5} ~onTimer:140
示例 1:大多数普通生物,一个稀有的 Boss 场景 作为一个腐竹,你的玩家有一个采矿世界,用于挖掘各种矿物到他们的地皮。你想通过 MythicMobs 偶尔产生一些稀有的强大的生物而不是普通的生物,来让玩家的生存更加刺激。这个 Boss 可能掉落一些有趣的装备,或者掉落罕见的金块和钻石块。 要求 1. 我们希望在地面上生成普通怪物,在地下生成 Boss 2. 所有的其他的生物是自然的生物 世界名: MiningWorld 外界生成 · Skeletal Fire Wizard (1% chance) 内部生成 · Skeletal Necromancer (1% chance) 步骤 1. 我们使用 RandomSpawners 所以第一件事是确认当前世界开启了生物生成。 · 如果你已经有了自然生成的野怪,那么你已经开启了。 · 如果没有,请做这些事:打开 server.properties 文件,检查 Spawn-Monsters 为 true。重启你的服务器,下一步是使用 /gamerule doMobSpawning true 来保证规则执行。 2. 接下来我们需要设置两个强大的Boss生物,使用MythicMobs手册的其他配置Boss。对于这个例子,很好地使用我们的 Skeletal Fire Wizard 生物为地面的 Boss, Skeletal Necromancer 为地下的Boss。这两个生物都可以在例子中找到。 3. 创建 RandomMobSpawner 设置 SkeletalFireWizard:
Mobname:SkeletalWizard_Fire
Worlds: MiningWorld
Chance: 0.01
Priority: 1
SpawnMethod: replace
Conditions:
- outside true
分析 1. Minecraft 会决定在 MiningWorld 世界生成生物 2. MythicMob 的 RandomSpawner 开始运行,决定生成的生物 3. 如果生成器决定生成 SkeletalFireWizard,随机刷怪点会掷骰决定生成。 4. 如果生成器决定生成 SkeletalNecromancer,随机刷怪点会掷骰决定生成。 5. 如果都没有,那么生成普通小怪 示例 2:密集的冒险区(仅 MythicMobs)
场景 作为腐竹,你设置了一片用于冒险的区域,让玩家杀死 MythicMobs 并掉落稀有物品。你只想让 MythicMobs 生成,自然生物不能生成。这片区域附近包括了一片森林群系和下雪的群系。 要求 1. 只生成 MythicMobs 2. 应该有几率生成 Boss 3. 如果没有生成 Boss,每个区域都应该随机生成一个生物 冒险区域 · 世界名: world · 区域: AdvRegion 冒险区域生物 · Abominable Snowman (1% 几率) 森林群系生物 · Large Spider (25% 几率) · Minor Earth Elemental (25% 几率) · Greater Earth Elemental (25% 几率) · Black Wolf (25% 几率,默认生成) 雪地生物 · Frost Spider (25% 几率) · Minor Frost Elemental (25% 几率) · Greater Frost Elemental (25% 几率) · White Wolf (25% 几率,默认生成) 步骤 1. 我们使用 RandomSpawners 所以第一件事是确认当前世界开启了生物生成。 · 如果你已经有了自然生成的野怪,那么你已经开启了。 · 如果没有,请做这些事:打开 server.properties 文件,检查 Spawn-Monsters 为 true。重启你的服务器,下一步是使用 /gamerule doMobSpawning true 来保证规则执行。 2. 下一步我们使用 WorldEdit 创建区域。选择一片区域,使用 /region define AdvRegion 定义一片区域。 3. 设置 8 个普通生物和一个 Boss,仿照下方的教程 4. 创建 RandomMobSpawner 配置: 整个冒险区域 AbominableSnowman:
Mobname: AbominableSnowman
Worlds: world
Chance: 0.01
Priority: 100
SpawnMethod: replace
Conditions:
- inregion AdvRegion
仅森林区域 LargeSpider:
Mobname: LargeSpider
Worlds: world
Chance: 0.25
Priority: 2
SpawnMethod: replace
Conditions:
- inregion AdvRegion
- biome forest
MinorEarthElemental:
Mobname: MinorEarthElemental
Worlds: world
Chance: 0.25
Priority: 2
SpawnMethod: replace
Conditions:
- inregion AdvRegion
- biome forest
GreaterEarthElemental:
Mobname: GreaterEarthElemental
Worlds: world
Chance: 0.25
Priority: 2
SpawnMethod: replace
Conditions:
- inregion AdvRegion
- biome forest
BlackWolf:
Mobname: BlackWolf
Worlds: world
Chance: 1
Priority: 1
SpawnMethod: replace
Conditions:
- inregion AdvRegion
- biome forest
仅下雪区域 FrostSpider:
Mobname: FrostSpider
Worlds: world
Chance: 0.25
Priority: 2
SpawnMethod: replace
Conditions:
- inregion AdvRegion
- biome snowy
MinorFrostElemental:
Mobname: MinorFrostElemental
Worlds: world
Chance: 0.25
Priority: 2
SpawnMethod: replace
Conditions:
- inregion AdvRegion
- biome snowy
GreaterFrostElemental:
Mobname: GreaterFrostElemental
Worlds: world
Chance: 0.25
Priority: 2
SpawnMethod: replace
Conditions:
- inregion AdvRegion
- biome snowy
WhiteWolf:
Mobname: WhiteWolf
Worlds: world
Chance: 1
Priority: 1
SpawnMethod: replace
Conditions:
- inregion AdvRegion
- biome snowy
分析 这个设置更加复杂了,让我们看看发生了什么: 1. Minecraft 会决定在 AdvRegion 区域生成生物 2. MythicMob 的 RandomSpawner 开始工作,决定生成什么生物 3. 所有的 RandomMobSpawners 会掷骰决定生成哪个生物 4. 如果 AbominableSnowman (优先度 100) 轮到了,将会立刻生成而跳过下一个生物,因为它拥有最高的优先度 5. 如果生物在森林中生成,那么只会考虑森林的突变种群 6. 对于森林群系,将会掷优先度为 2 的生物(Large Spider 和 elementals) 7. 任意掷到的生物都会生成 8. 如果没有生物被掷到,那么就会生成 Black Wolf,因为它有最低的优先度,并且几率 100% 9 如果生物在雪地中生成,那么只会考虑雪地的突变种群 10. 对于雪地群系,将会掷优先度为 2 的生物(Frost Spider 和 elementals) 11. 任意掷到的生物都会生成 12. 如果没有生物被掷到,那么就会生成 Whitek Wolf,因为它有最低的优先度,并且几率 100% 13. 请注意,这种设置将会保证 MythicMobs 一定生成。许多人认为将几率设置为 100% 会让自然生物不会生成、这不是插件工作原理导致的,这是因为总是有很小的几率,所有生物都没有掷到,Minecraft 就会生成原版生物,这就是为什么要添加一个优先度最低而且几率为 100% 的生物在最后。 MythicMobs 提供了自行编写生物AI的能力,这可以为生物添加一大堆高度自定义的设定,如生物怎样近战、攻击哪些目标、和其他的动作。
在以下的一节里,我将会提供一些例子来展示如何配置一些服务器常用的场景。
AI 目标 & 派系(AI Goals & AI Targets & Factions) · 自定义 AI 通常需要两个配置来工作,即 AI Goals,这告诉生物它需要怎样动作,和 AI Targets,这告诉生物怎样锁定目标。 · 派系用于将生物分组,经常用于更高级的配置中。 · 作为默认,每个 Minecraft 生物都有一些全局 AI 。举个例子,骷髅的 AI 告诉了骷髅应该锁定玩家为目标,并且应该使用弓和箭来攻击。为了使用 MythicMobs 重写骷髅的AI,我们要先清除它的 AI Goals,然后给他们添加新的目标。 让我们看看底下这个例子: DecayingSkeleton:
Mobtype: skeleton
Display: '&aa decaying skeleton'
Health: 15
Damage: 1
Faction: Undead
AIGoalSelectors:
- 0 clear
- 1 arrowattack
AITargetSelectors:
- 0 clear
- 1 players
Options:
FollowRange: 10
MovementSpeed: 0.2
PreventOtherDrops: true
· 这个示例展示了 骷髅 AI 如何攻击目标。(剪掉了其他没啥用的东西,比如随机的走动)
· AIGoalSelectors 项告诉了骷髅使用弓与箭攻击目标。
· AITargetSelectors 项告诉了骷髅应该锁定玩家。
· 如你所见,一般第一件事是 clear,这样你就有一个空的AI来编辑了,这是很重要的,如果不这样做,你的AI可能不会像预期那样工作
· 现在我想让骷髅近战攻击其他的派系的生物,让我们看看这是怎么做到的: DecayingSkeleton:
Mobtype: skeleton
Display: '&aa decaying skeleton'
Health: 15
Damage: 1
Faction: Undead
AIGoalSelectors:
- 0 clear
- 1 meleeattack
AITargetSelectors:
- 0 clear
- 1 hurtbytarget
- 2 otherfactionmonsters
Equipment:
- COS_WoodSword:0
Options:
FollowRange: 10
MovementSpeed: 0.2
PreventOtherDrops: true
· 骷髅 AI 编写为攻击其他派系生物和攻击它的生物,作为附加,它会使用近战攻击而不是远程攻击。
· AIGoalSelectors 项现在将目标设置为近战,需要注意的是你只有给骷髅装备剑才能使用近战攻击,装备弓的时候是不行的。但是这对僵尸是不需要的。
· AITargetSelectors 项现在将玩家移除出了它的目标范围,所以现在骷髅不会主动攻击玩家。现在骷髅将会主动攻击其他派系的生物,也就是不在它自己的派系里的生物(比如不在Undead)。这里也有一个 hurtbytarget 的优先度为1,也就是说如果有生物主动攻击了它(比如玩家),骷髅就会反击。这个属性的优先级一般都很高,这样它们就不会被随意利用。如果没有这个,骷髅就会很容易的被击杀,而不会反击,这显然不是想要的结果。
· 查看完整的 Goals 和 Targets,请查看自定义 AI[见下
· 在接下来的两个小节里,我会展示经常使用的场景以及它们的 AI 配置,这也是你可能想要在服务器里实现的功能。
示例 1:守卫攻击附近怪物
· 在这个场景里,我们想在城市的入口生成一些守卫,用以清除赶走附近乱晃的太近的怪物,你可以使用一个伪装成村民的铁傀儡,但是它们的 AI 更难控制,而且它们的击退特效对怪物也不是很公平,所以我们要使用 MythicMobs 的自定义 AI 来完成这件事。
· 首先,我们需要一只生物来守护我们的城镇。让我们创建一个伪装成村民的骷髅,并给它装备剑。 SummonedGuard1:
Mobtype: skeleton
Display: '&Ea town guard'
Health: 500
Damage: 5
Equipment:
- COS_StoneSword:0
Options:
Disguise: villager
Despawn: true
FollowRange: 5
AlwaysShowName: false
MovementSpeed: 0.35
PreventOtherDrops: true
KnockbackResistance: 1
PreventMobKillDrops: true
· 如果我们将这个生物放入刷怪点,它将攻击所有的玩家,所以我们需要调整一下,让它更加友善。 SummonedGuard1:
Mobtype: skeleton
Display: '&Ea town guard'
Health: 500
Damage: 5
Equipment:
- COS_StoneSword:0
Faction: Guard
AIGoalSelectors:
- 0 clear
- 1 opendoors
- 2 meleeattack
AITargetSelectors:
- 0 clear
- 1 hurtbytarget
- 2 otherfactionmonsters
Options:
Disguise: villager
Despawn: true
FollowRange: 5
AlwaysShowName: false
MovementSpeed: 0.35
PreventOtherDrops: true
KnockbackResistance: 1
PreventMobKillDrops: true
· 现在这个生物会攻击其他生物,也会攻击攻击它的生物(比如一些无良玩家),在攻击的时候也会主动开门。
· 这解决了一半的问题。下一步,我们需要保证城墙外游荡的生物会主动攻击我们的守卫。
· 在下面我们设置了一个 Decaying Skeleton,并且也对他们进行设置。 DecayingSkeleton:
Mobtype: skeleton
Display: '&aa decaying skeleton'
Health: 15
Damage: 1
Faction: Undead
AIGoalSelectors:
- 0 clear
- 1 meleeattack
AITargetSelectors:
- 0 clear
- 1 hurtbytarget
- 2 players
Equipment:
- COS_RawHead:4
- COS_WoodSword:0
Options:
Despawn: true
FollowRange: 10
AlwaysShowName: false
MovementSpeed: 0.2
PreventOtherDrops: true
· 我们的 Decaying Skeleton 现在在 Undead 派系(与 Guard 派系不同),这样他就会被守卫主动攻击。并且添加 hurtbytarget 后,他们会反击来自守卫的攻击(然后死掉)。
· 其他在城镇附近生成的怪物,我们也会添加相同的 AI ,这样这些生物就有了与守卫不同的派系。
· 现在在我们生成我们的刷怪点后,它会守卫村庄,忽略玩家(只要他们不去主动招惹)。
· 其他更多的设置,比如很短的攻击距离和很短的跟随距离,会保证他们不会乱搞,而是杀死那些可以获得经验和掉落的生物。我们也添加了 PreventMobKillDrops,来防止无良玩家刷东西。
示例 2:哥布林和半兽人互相攻击
· 在真实世界里,我们有两个派系:哥布林和半兽人都不是很喜欢对方。我们创建了一个战场,但是它们都是用默认 AI,没有做太多的战斗。
· 我们可以使用 MythicMobs 的自定义 AI 来实现这个功能,这样它们就会主动互相攻击,并且也会攻击晃进战场的玩家。
· 让我们创建一个半兽人生物和一个哥布林生物。 OrcCenturion:
Mobtype: villagezombie
Display: '&aan orc centurion'
Health: 50
Damage: 4
Faction: Orcs
AIGoalSelectors:
- 0 clear
- 1 opendoors
- 2 meleeattack
AITargetSelectors:
- 0 clear
- 1 hurtbytarget
- 2 specificfactionmonsters Goblin
- 3 players
Equipment:
- C_DeathfistSkullcap:4
- C_DeathfistTunic:3
- C_DeathfistLeggings:2
- C_DeathfistBoots:1
- COS_WoodSword:0
Options:
Despawn: true
FollowRange: 10
AlwaysShowName: false
MovementSpeed: 0.25
PreventOtherDrops: true
PreventItemPickup: true
KnockbackResistance: 0.25
PreventMobKillDrops: true
GoblinBattlemaster:
Mobtype: zombie
Display: '&aa goblin battlemaster'
Health: 80
Damage: 4
Faction: Goblin
AIGoalSelectors:
- 0 clear
- 1 opendoors
- 2 meleeattack
AITargetSelectors:
- 0 clear
- 1 hurtbytarget
- 2 specificfactionmonsters Orcs
- 3 players
Equipment:
- COS_BronzeHead:4
- COS_BronzeChest:3
- COS_BronzeLegs:2
- COS_BronzeFeet:1
- COS_WoodAxe:0
Skills:
- skill BashI ~onAttack >0 0.25
Options:
Despawn: true
FollowRange: 10
AlwaysShowName: false
MovementSpeed: 0.25
PreventOtherDrops: true
PreventItemPickup: true
KnockbackResistance: 0.4
PreventMobKillDrops: true
· 这里是我们的设置里需要注意的一些地方:
· 第一步,我们设置了半兽人生物在 Orc 派系,而哥布林生物在 Goblin 派系,这会将两种生物分开。
· 下一步,我们都给每个生物配置了 clear,opendoors(开门),和 meleeattack(近战),这适用于大多数近战生物。
· 最后我们将 AI Targets 清空。
· 第一是 hurtbytarget 选择器,之前也提过,这是一个很好的反击设置,这样这个生物就不会被利用。
· 下一步是 specifictargetfaction 选择器,选择互相的阵营。设置优先度为 2,这样它们没有在战斗的时候,就会主动攻击对方。
· 最后是 players 玩家选择器,如果附近没有哥布林/半兽人,它们就会攻击玩家。
· 最后记得添加 PreventMobKillDrops 为 true,这样路过的玩家就不会捡到满地的掉落物和经验。
· 如果我们要配置其他的哥布林和半兽人类型的生物,我们需要复制粘贴他们的 AI 设置,这样它们就会跟半兽人/哥布林的 AI 相同了。 这个功能很没意思,而且会在后台大量刷提示,不译。 原理就是用command机制和execute和其他原版命令 |