Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 32679|回复: 503

[插件] MythicMobs技能进阶——提高你的技能逼格!!

    [复制链接]
hapydoo 当前离线
积分
2856
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-10-27
查看详细资料
发表于 2018-8-24 19:11:49 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 hapydoo 于 2019-10-13 19:04 编辑





前言
    最近在逛mcbbs的时候发现了许多的关于MythicMobs的教程,但大多数都是帮助新人上手入门的
我突然想到写一篇略微进阶的教程,将我自己写过的许多技能案例发出来
本篇针对的是MythicMobs的技能,建议您有一定的MM基础后再来,我希望大家最好要能理
解每个技能的思路,或者说是每一行它的意义是什么,我相信您一定能创造出许多胜于本教程的产物
··························································································
如果您刚开始学习MM,在这里我推荐几个教程及网站



· 第一章 - 技能组与单技能的区别 ·

· 情景设立

    你希望制作一个会释放群体闪电的怪物,我们先创建一个怪物模版

  1. mob01:
  2.   Type: Zombie
  3.   Display: "&9&l[精英]&c闪电魔法使"
  4.   Health: 100
  5.   Damage: 1
  6.   Options:
  7.     MovementSpeed: 0.3
  8.     PreventMobKillDrops: true
  9.     PreventOtherDrops: true
复制代码

随后,我们给它每20秒释放一次群体闪电的能力


  1. mob01:
  2.   Type: Zombie
  3.   Display: "&9&l[精英]&c闪电魔法使"
  4.   Health: 100
  5.   Damage: 1
  6.   Options:
  7.     MovementSpeed: 0.3
  8.     PreventMobKillDrops: true
  9.     PreventOtherDrops: true
  10.   Skills:
  11.   - lightning @PIR{r=20} ~onTimer:400
复制代码
但是我们发现一个问题

· 该闪电只有效果,没有伤害

于是我们将这个技能改为


  1. - skill{s=群体闪电} @PIR{r=20} ~onTimer:400
复制代码

然后在Skills里面创建一个技能,名为群体闪电
  1. 群体闪电:
  2.   Skills:
  3.   - lightning @PIR{r=20}
  4.   - damage{amount=10} @PIRs{r=20}
复制代码
那么,这算是一个简单的技能做完了

· 进阶内容
但是我们发现,这个技能依然有许多不足的地方,例如

· 该闪电无法被躲避
· 该技能没有任何提示,与玩家的互动性不足
好的,接下来,就是重头戏,我们需要对它进行修改,让这个闪电有提示、可以被玩家躲避,增强与玩家的互动性
我们先将原技能修改为这样
  1. 群体闪电:
  2.   Skills:
  3.   - effect:blockmask{m=STAINED_CLAY;data=14;r=2;d=30} @PIR{r=20}
  4.   - summon{type=闪电判定;amount=1;radius=0} @PIR{r=20}
  5.   - delay 60
  6.   - remove @MIR{r=1000;type=闪电判定}
复制代码
是不是不太理解?我先稍微解释一下,然后将其它部分制作完成后这个就简单易懂了

· 这个技能会对20格内玩家的脚下替换为红色粘土方块 (用于提示玩家技能区域)
· 其次在20格内的玩家脚下生成一个名为“闪电判定”的怪物,稍后我会进行解释
· 延迟 3 秒
· 消除周围名为“闪电判定”的怪物

随后创建一个怪物,用于闪电的判定
  1. 闪电判定:
  2.   Type: Silverfish
  3.   Health: 100
  4.   Skills:
  5.   - potion{t=INVISIBILITY;d=999999999;l=1} @Self ~onSpawn
  6.   - skill{s=群体闪电效果} @Self ~onSpawn
  7.   Options:
  8.     Despawn: false
  9.     NoAI: true
  10.     Invincible: true
  11.     Silent: true
复制代码
让我们先来解释一下这个怪物,首先,这个怪物会在出现的时候给自己永久的隐身,
同时释放一个名为群体闪电效果的技能

Options里尽可能按这样编写,具体查阅帮助手册或Wiki等

然后我们再去编辑这个群体闪电效果的技能

  1. 群体闪电效果:
  2.   Skills:
  3.   - delay 30
  4.   - lightning @Self
  5.   - damage{a=10} @PIR{r=2}
复制代码
· 延迟1.5秒  和红色粘土方块的存在时间相同

· 对自己释放闪电

· 对自己周围2格内玩家造成伤害

那么我现在整体来讲解一下:

这个技能开始释放时,会将周围20格内的玩家脚下变为红色粘土(用于提示玩家该区域将会有危险),
然后在玩家脚底生成一个玩家看不见的怪物,这个怪物不会攻击玩家,也不会被攻击,只会安静的待
在原地,1.5秒后闪电劈到这个怪物身上,并对怪物周围2给内的玩家造成伤害,为了防止怪物堆积,
3秒后会将该怪物移除。

那么,在玩家的视角来看就是:红色粘土区域出现了闪电,站在闪电落下的地方会受到伤害

于是,这个技能可以被躲避,如果你将该技能的伤害调高,玩家就不得不注意自己的位置来防止被闪电秒杀





· 第二章 - stance的灵活运用 ·
· 情景设立

    你觉得服务器中的怪物打法都太单调,玩家只需要无脑输出即可击败,你想要制作一个怪物,
  它每隔一定时间会出现一个反伤效果,反伤期间攻击它的玩家将会受到伤害

于是,我们先编辑这个反伤的效果
  1. 荆棘效果:
  2.   Conditions:
  3.   - stance{s=反伤}
  4.   Skills:
  5.   - effect:particles{p=happyVillager;amount=20;hS=1;vS=2;speed=0.01}
  6.   - damage{a=10}
复制代码
在这里我满解释下Conditions那一行的意思:

    由于这个效果不能让它一直持续(这会非常OP),所以我们加一个需要在“反伤”这个形态下,才会触发这个技能
当然这个技能并不能直接使用,我们需要再增加一个技能

  1. 激活荆棘:
  2.   Skills:
  3.   - sendtitle{title="&c&l怪物释放了荆棘护盾";subtitle="&b快停止攻击!!!";d=20} @PlayersInRadius{r=10}
  4.   - setstance{s=反伤}
  5.   - delay 200
  6.   - setstance{s=nostance}
复制代码
这个就是用于开启怪物反伤状态的技能,其中:

· 第一行仅为提示,你也可以采取其他方法提示玩家
· 第二行 设置该怪物的形态为“反伤
· 延迟10秒后
· 关闭“反伤效果”

*注释:这里要解释一下,第4行并非是取消怪物的形态,而是将怪物切换为一个名为“nostance”的形态,只
要不在“反伤”形态下,反伤效果就不会被触发*

接下来就是对怪物的编辑
  1. mob02:
  2.   Type: Zombie
  3.   Display: "&9&l[精英]&c荆棘僵尸"
  4.   Health: 100
  5.   Damage: 1
  6.   Modules:
  7.     ThreatTable: true
  8.     ImmunityTable: true
  9.   Options:
  10.    MovementSpeed: 0.3
  11.    PreventMobKillDrops: true
  12.    PreventOtherDrops: true
  13.   Skills:
  14.   - skill{s=荆棘效果} @Trigger ~onDamaged
  15.   - skill{s=激活荆棘} @Self ~onTimer:600
复制代码
稍微解释一下

在这里,第一个技能“荆棘效果”仅仅是作为反伤的效果设置,当怪物每次受到攻击的时候都会释放这个技能
但是如果不在“反伤”这个形态下,这个技能即使释放了也没有效果

所以第二个技能就是决定怪物是否处于“反伤”这个形态下了
在这里,我设置的是每30秒释放一次,每次持续10秒

根据自己的需要修改就行了
··························································
· 举一反一
那么既然我们可以设置一个怪物的间断性反伤,我们能不能利用stance来制造一个拥有双重形态的怪物呢?

当然可以,首先我们需要先构思一下这个怪物
·它拥有攻击形态和防御形态
·在攻击形态下,怪物的移动速度增加,会使用技能瞬移到你面前攻击
·在防御形态下,怪物的移动速度减慢,对靠近的玩家造成伤害并为自身回血

首先我们先来设置这两种形态的切换
  1. 形态切换:
  2.   Skills:
  3.   - randomskill{skills=攻击形态,防御形态}
  4. 攻击形态:
  5.   Skills:
  6.   - setstance{s=攻击}
  7.   - sendtitle{title="&c&l形态切换";subtitle="&b怪物现在为:攻击形态";d=20} @PlayersInRadius{r=10}
  8. 防御形态:
  9.   Skills:
  10.   - setstance{s=防御}
  11.   - sendtitle{title="&c&l形态切换";subtitle="&b怪物现在为:防御形态";d=20} @PlayersInRadius{r=10}
复制代码
这3个应该很容易懂,我就不解释了,不理解的参考前面那个例子

然后我们设置好攻击/防御形态下的技能
  1. 瞬移:
  2.   Conditions:
  3.   - stance{s=攻击}
  4.   Skills:
  5.   - teleport{spreadh=1;spreadv=0} @Target
  6. 加速:
  7.   Conditions:
  8.   - stance{s=攻击}
  9.   Skills:
  10.   - potion{type=SPEED;duration=20;lvl=1} @Self
  11. 吸血:
  12.   Conditions:
  13.   - stance{s=防御}
  14.   Skills:
  15.   - consume{d=5;h=5} @PIR{r=4}
  16. 减速:
  17.   Conditions:
  18.   - stance{s=防御}
  19.   Skills:
  20.   - potion{type=SLOW;duration=20;lvl=1} @Self
复制代码
这里有一点我要解释一下,那就是为什么加速和减速要设置成一秒一秒的

如果你设置成永久的加速,你会发现一个很尴尬的情况:怪物在防御状态下仍然有加速
所以我们索性将两种buff时间都设置为1秒,然后每隔1秒怪物都会给自己加buff,这样就能保证无间断

最后是怪物的配置:
  1. mob03:
  2.   Type: Zombie
  3.   Display: "&9&l[精英]&c角斗士僵尸"
  4.   Health: 100
  5.   Damage: 1
  6.   Modules:
  7.     ThreatTable: true
  8.     ImmunityTable: true
  9.   Options:
  10.    MovementSpeed: 0.3
  11.    PreventMobKillDrops: true
  12.    PreventOtherDrops: true
  13.   Skills:
  14.   - skill{s=形态切换} @Self ~onTimer:1200
  15.   - skill{s=加速} @Self ~onTimer:20
  16.   - skill{s=减速} @Self ~onTimer:20
  17.   - skill{s=瞬移} @Target ~onTimer:200
  18.   - skill{s=吸血} @Self ~onTimer:40
复制代码
OK然后就完成了!
*注释:这里我说一下,我提供的案例几乎都不会带什么粒子效果,需要的话自己设置

··························································
·进阶内容
(不是很好理解,实在不懂可以先跳过

有没有考虑过给服务器中添加一组可以互相配合的首领?
利用stance同样可以完成这个内容

首先先构思一下:
·两个首领,当他们距离靠近时会释放全场AOE,对大范围内的玩家造成伤害
·当其中一个首领死亡后,若一定时间内没有击杀另一个首领,则死亡的首领复活

这样,玩家既得配合将两个首领分开击破,又要注意首领的血量不能让一个首领死的过早

先设置全场AOE的技能
* 该怪物的配置文件在本帖结尾,可以对照参看 *
  1. 龙男AOE:
  2.   Conditions:
  3.   - stance{s=龙男AOE}
  4.   Skills:
  5.   - message{m="&e&l[首领]&c烈焰龙王-斯特拉兹&f开始释放烈焰新星,快将他们分离!"} @PlayersInRadius{r=1000}
  6.   - damage{a=30;ignoreArmor=true;pk=true;pi=true} @PIR{r=50}
  7. 龙女AOE:
  8.   Conditions:
  9.   - stance{s=龙女AOE}
  10.   Skills:
  11.   - message{m="&e&l[首领]&c寒冰龙女-阿伊纳&f开始释放冰霜新星,快将他们分离!"} @PlayersInRadius{r=1000}
  12.   - damage{a=30;ignoreArmor=true;pk=true;pi=true} @PIR{r=50}
复制代码
这个并不多做解释,只是全场AOE的效果

接下来,我们需要一个AOE技能的判定,判定什么时候该使用这个AOE技能
  1. 龙男光环判定:
  2.   Skills:
  3.   - setstance{stance=龙女AOE} @MIR{r=5;type=首领6-4}
  4.   - delay 30
  5.   - setstance{stance=X1} @MIR{r=999;type=首领6-4}
  6. 龙女光环判定:
  7.   Skills:
  8.   - setstance{stance=龙男AOE} @MIR{r=5;type=首领6-3}
  9.   - delay 30
  10.   - setstance{stance=X2} @MIR{r=999;type=首领6-3}
复制代码
这边我就必须要解释一下了
首先,首领6-3指的就是龙男,首领6-4指的就是龙女
然后大家应该注意到了,它们的setstance都不是切换自己的形态,而是切换对方形态
这是为什么?

首先,你需要判定他们的距离,在5格内才会释放AOE,注意后面的@MIR{……
因此如果自己切换自己的形态,根本无法做到距离的判定

其次,该判定不能一直存在,否则玩家即使将他们拉开了,AOE仍然存在
所以我们需要互相消除对方的形态(X1\X2并没有什么意义,只要不是龙女\男AOE就行)
所以这个技能就是:如果另一个首领在自己的5格内,将它切换为AOE形态
隔1.5秒(释放完1次AOE后)切换回非AOE的形态,如果对方仍然在5格内则会继续循环

于是乎,AOE的问题解决了,接下来就是复活的问题
在看复活的时候,建议大家直接下载我发的实例,对照实例进行理解
  1. 龙男复活龙女判定:
  2.   Skills:
  3.   - sendtitle{title="&c&l警告";subtitle="&a烈焰龙男开始复活寒冰龙女";d=40} @PlayersInRadius{r=99}
  4.   - delay 1200
  5.   - skill{s=龙男复活龙女} @Self
  6. 龙男复活龙女:
  7.   Conditions:
  8.   - lastsignal{s=龙男死} false
  9.   Skills:
  10.   - sendtitle{title="&c&l警告";subtitle="&a寒冰龙女复活了!!!";d=40} @PlayersInRadius{r=99}
  11.   - summon{type=首领6-4;amount=1;radius=6} @Self
  12. 龙女复活龙男判定:
  13.   Skills:
  14.   - sendtitle{title="&c&l警告";subtitle="&a寒冰龙女开始复活烈焰龙男";d=40} @PlayersInRadius{r=99}
  15.   - delay 1200
  16.   - skill{s=龙女复活龙男} @Self
  17. 龙女复活龙男:
  18.   Conditions:
  19.   - lastsignal{s=龙女死} false
  20.   Skills:
  21.   - sendtitle{title="&c&l警告";subtitle="&a烈焰龙男复活了!!!";d=40} @PlayersInRadius{r=99}
  22.   - summon{type=首领6-3;amount=1;radius=6} @Self
  23. 龙男死信号:
  24.   Skills:
  25.   - signal{s=龙男死} @MIR{r=10000;t=龙女复活龙男M,龙男复活龙女M,首领6-4}
  26. 龙女死信号:
  27.   Skills:
  28.   - signal{s=龙女死} @MIR{r=10000;t=龙女复活龙男M,龙男复活龙女M,首领6-3}
复制代码
内容比较多,一下子不好理解

没关系,我们先慢慢来吧,首先看最后的两条技能
这两条技能就是用来判定首领是否死亡,你总不能对方活着然后再复活一个出来吧?

所以,当首领死亡的时候,释放该技能向对方发出信号,同时在Mobs里还会召唤1个隐形的怪用于执行复活
隐形的怪在出生时就开始对死亡的首领进行复活

  1. 龙男复活龙女M:
  2.   Mobtype: Silverfish
  3.   Health: 100
  4.   Skills:
  5.   - potion{t=INVISIBILITY;d=999999999;l=1} @Self ~onSpawn
  6.   - skill{s=龙男复活龙女判定} @Self ~onSpawn
  7.   Options:
  8.     Despawn: false
  9.     NoAI: true
  10.     Invincible: true
  11.     Silent: true
  12.     Collidable: false
  13. 龙女复活龙男M:
  14.   Mobtype: Silverfish
  15.   Health: 100
  16.   Skills:
  17.   - potion{t=INVISIBILITY;d=999999999;l=1} @Self ~onSpawn
  18.   - skill{s=龙女复活龙男判定} @Self ~onSpawn
  19.   Options:
  20.     Despawn: false
  21.     NoAI: true
  22.     Invincible: true
  23.     Silent: true
  24.     Collidable: false
复制代码
首领死亡时,则会召唤这两个怪物的其中一只

随后该怪物开始执行1分钟的延迟,延迟后判定:
若另一个首领仍然存活,则复活已死去的首领

那么整个技能的思路就出来了:

某首领死亡→召唤负责复活该首领的隐形怪→延迟1分钟→判定是否收到另一个首领的死亡信号→[若无]→复活(召唤)死去的首领
                                                                                                                           
                                   
接下来就是首领的配置,其实直接看下载的就好
  1. 首领6-3:
  2.   Type: ZOMBIE
  3.   Display: "&e&l[首领]&c烈焰龙王-斯特拉兹"
  4.   Health: 34000
  5.   Damage: 52
  6.   Disguise:
  7.     Type: Player
  8.     Player: '&e&l[首领]&c烈焰龙王-斯特拉兹'
  9.     Skin: NoHaxJustThink
  10.   AITargetSelectors:
  11.   - 0 clear
  12.   - 1 players
  13.   AIGoalSelectors:
  14.   - 0 clear
  15.   - 1 meleeattack
  16.   Modules:
  17.     ThreatTable: true
  18.     ImmunityTable: true
  19.   Options:
  20.    MovementSpeed: 0.24
  21.    NoDamageTicks: 0
  22.    KnockbackResistance: 1
  23.    PreventMobKillDrops: true
  24.    PreventOtherDrops: true
  25.   Skills:
  26.   - skill{s=龙男AOE} @Self ~onTimer:40
  27.   - skill{s=龙男光环判定} @Self ~onTimer:5
  28.   - skill{s=龙男死信号} @Self ~onDeath
  29.   - summon{type=龙女复活龙男M;amount=1;radius=0} @Self ~onDeath
  30. 首领6-4:
  31.   Type: ZOMBIE
  32.   Display: "&e&l[首领]&c寒冰龙女-阿伊纳"
  33.   Health: 31000
  34.   Damage: 38
  35.   Disguise:
  36.     Type: Player
  37.     Player: '&e&l[首领]&c寒冰龙女-阿伊纳'
  38.     Skin: NoHaxJustThink
  39.   AITargetSelectors:
  40.   - 0 clear
  41.   - 1 players
  42.   AIGoalSelectors:
  43.   - 0 clear
  44.   - 1 meleeattack
  45.   Modules:
  46.     ThreatTable: true
  47.     ImmunityTable: true
  48.   Options:
  49.    MovementSpeed: 0.24
  50.    NoDamageTicks: 0
  51.    KnockbackResistance: 1
  52.    PreventMobKillDrops: true
  53.    PreventOtherDrops: true
  54.   Skills:
  55.   - skill{s=龙女死信号} @Self ~onDeath
  56.   - skill{s=龙女AOE} @Self ~onTimer:40
  57.   - skill{s=龙女光环判定} @Self ~onTimer:5
  58.   - summon{type=龙男复活龙女M;amount=1;radius=0} @Self ~onDeath
复制代码

实例下载挪步下方分享板块






· 第三章 - Projectile的特殊用法 ·

*本篇不会科普Projectile粒子弹的基础,有需要请去下面这个帖子*
· 情景设立
在部分网游rpg中,你经常能看到一些首领使用一些例如天降导弹,火雨等的技能,我们想在Minecraft中还原这一类的技能,而这个时候,Projectile粒子弹就派上用场了

首先放上怪物模版
  1. mob04:
  2.   Type: BLAZE
  3.   Display: "&9&l[精英]&c炎魔"
  4.   Health: 100
  5.   Damage: 1
  6.   Modules:
  7.     ThreatTable: true
  8.     ImmunityTable: true
  9.   Options:
  10.    MovementSpeed: 0.01
  11.    KnockbackResistance: 1
  12.    PreventMobKillDrops: true
  13.    PreventOtherDrops: true
  14.   Skills:
  15.   - skill{s=火雨} @self ~onTimer:300
复制代码
大概就是,每隔15秒使用“火雨”这个技能,稍后我们去配置

接下来我们去配置火雨这个技能
  1. 火雨:
  2.   Skills:
  3.   - projectile{onTick=火雨特效;onHit=火雨击中;oE=火雨结束;v=8;i=1;hR=1;vR=1;type=METEOR;hfs=8;g=0.1} @RLNTE{amount=3;radius=5;spacing=1;minradius=1}
复制代码
· 注:@RINTE选择器必须写在技能组里才可生效(来自群友的帮助)

这里不普及粒子弹的机制,要看去看前面的那个链接
说一下这个和普通粒子弹的区别,前面都是正常的配置,唯独最后3个是重点
type=METEOR;hfs=8;g=0.1

这3个是普通的粒子弹用不到的,但是若是要将它变为从天而降的,这3个必须有
· type=METEOR   设置粒子弹的机制为METEOR(也就是从天而降)
· hfs=8                粒子弹的降落起点高度(粒子弹会从8格高的地方降落)
· g=0.1                粒子弹的重力(就相当于粒子弹降落的速度快慢)

接下来我们去配置粒子弹中的每一项内容
  1. 火雨特效:
  2.   Skills:
  3.   - effect:particles{p=flame;amount=4;speed=0.01;hR=1;vR=1} @origin
  4.   - effect:particles{p=largesmoke;amount=2;speed=0.01;hR=1;vR=1} @origin
  5. 火雨击中:
  6.   Skills:
  7.   - damage{a=10}
  8.   - ignite{ticks=60}
  9.   - effect:explosion
  10. 火雨结束:
  11.   Skills:
  12.   - damage{a=10}
  13.   - ignite{ticks=60}
  14.   - effect:explosion
复制代码
其实这3条和普通的粒子弹一样就OK了!~

··························································
·举一反一
不知道大家在玩网游的时候有没有遇到这样的一种技能:
· 首领会召唤一个从天而降的导弹,这个导弹会一直以你当前的位置为目标,
· 也就是说你必须保持高速移动的状态,来确保不被这个导弹打中

其实这个要做起来非常简单,我们保留刚刚的火雨技能不变,
依旧是一个怪物模版
  1. mob05:
  2.   Type: BLAZE
  3.   Display: "&9&l[精英]&c恐惧炎魔"
  4.   Health: 100
  5.   Damage: 1
  6.   Modules:
  7.     ThreatTable: true
  8.     ImmunityTable: true
  9.   Options:
  10.    MovementSpeed: 0.01
  11.    KnockbackResistance: 1
  12.    PreventMobKillDrops: true
  13.    PreventOtherDrops: true
  14.   Skills:
  15.   - skill{s=火雨} @PIR{r=24} ~onTimer:20
复制代码
大家应该注意到了,我们只是将火雨后面的目标和释放间隔改了一下,这个技能变为了:
· 每隔2秒对24格范围内的玩家所在地点释放火雨
于是我们测试一下,发现问题
· 火雨的下降速度太慢,根本打不中玩家

这个要怎么办呢?非常简单
  1. 火雨:
  2.   Skills:
  3.   - projectile{onTick=火雨特效;onHit=火雨击中;oE=火雨结束;v=8;i=1;hR=1;vR=1;type=METEOR;hfs=8;g=0.1}
复制代码
我们只需要将这条中的 g=0.1 改高即可,经过我的尝试
我认为当 g=2.5 左右的时候最佳,但是粒子效果会很稀疏,自己修改

于是,这个技能可以追着玩家了

但是我们还发现一个问题
· 这个技能会一直持续,直到怪物死亡
我们不希望这么为难玩家,我们希望让这个技能持续一段时间就停下

那么,如果这个时候你已经想到该怎么修改了,说明你已经把第二章的内容理解透彻了
没错,就是运用stance,我们将火雨这个技能加入一个条件:
  1. 火雨:
  2.   Conditions:
  3.   - stance{s=火雨}
  4.   Skills:
  5.   - projectile{onTick=火雨特效;onHit=火雨击中;oE=火雨结束;v=8;i=1;hR=1;vR=1;type=METEOR;hfs=8;g=2.5}
复制代码

随后新创建一个技能,用于决定火雨的释放
  1. 火雨判定:
  2.   Skills:
  3.   - setstance{s=火雨}
  4.   - sendtitle{title="&c&l怪物释放了追踪火雨";subtitle="&b保持移动躲避!";d=20} @PlayersInRadius{r=10}
  5.   - delay 200
  6.   - setstance{s=nostance}
复制代码

随后在怪物中加入这条技能
  1. mob05:
  2.   Type: BLAZE
  3.   Display: "&9&l[精英]&c炎魔"
  4.   Health: 100
  5.   Damage: 1
  6.   Modules:
  7.     ThreatTable: true
  8.     ImmunityTable: true
  9.   Options:
  10.    MovementSpeed: 0.01
  11.    KnockbackResistance: 1
  12.    PreventMobKillDrops: true
  13.    PreventOtherDrops: true
  14.   Skills:
  15.   - skill{s=火雨} @PIR{r=24} ~onTimer:15
  16.   - skill{s=火雨判定} @Self ~onTimer:600
复制代码
那么现在,这个怪物每隔30秒会释放火雨,持续时间10秒,10秒后停止释放
··························································

·进阶内容

有没有遇到过绕场激光一类的技能?

这种玩意在网游的raid本中最常见了,一旦首领释放
全团的人都要绕着场地转圈圈

在MC里,这种机制也很好实现,不过编辑起来有一点小麻烦

首先,我们需要一个粒子弹技能,这里我略微修改下之前的火雨
  1. 火焰弹:
复制代码
请注意!现在这个技能还无法使用
我需要先简要讲解一下

我们可以看到,在projectile那边多了两个子机制sE=false;hO=0

· sE=false 表示令该技能不会被阻挡

也就是他击中玩家后可以继续往前飞行

· hO=0 就是我们最重要的机制了

它表示粒子弹的横向偏移角度,从0 - 360 也就是刚好一圈

也就是说,我们需要多个粒子弹,让它的偏移从0 - 360 各执行一遍
但实际上不用那么多,我们间隔20度,一共执行12次就够了


如果说解决了旋转的问题,还有个很重要的问题:朝向

因为BOSS在释放这个技能时,就算它不会移动,它的朝向也是在转变的
这就导致了粒子弹可能跨过某个角度,显得非常糟乱

我们需要在BOSS的朝向固定,这样才能是完整的转圈

但要固定BOSS的朝向可不容易,这个需要用的mmex,而本帖的内容是教mm本体的

所以,我们可以用另一种方法处理
那就是 目标选择器*

jctp.jpg

比如这样一张图,xyz代表BOSS和平台边缘的坐标
那么,我们就用选择坐标的目标选择器

一直到360为止,如果你想让它多转几圈,就再循环这个技能






· 第四章 - 用'怪物'来充当'技能' ·

· 情景设立
你想制作一个从天上降下一个/数个的落石/TNT的技能,用来考验玩家的走位,但你发现METEOR并
无法使用实体方块,于是看看本章的标题2333

声明:该技能来源于一个服主分享给我用于学习的MM怪物,原作者是TNG_From

*关键思路:制作一个怪物,通过伪装让它变成一个"方块",使用技能时召唤出这个怪物从天而降
  1. mob06:
  2.   MobType: ZOMBIE
  3.   Disguise:
  4.     Type: BLOCK
  5.     Block: SMOOTH_BRICK
  6.     BlockData: 0
  7.     ShowName: false
  8.   Health: 50
  9.   Damage: 50
  10.   Display: ''
  11.   AITargetSelectors:
  12.   - 0 clear
  13.   Options:
  14.     AlwaysShowName: true
  15.     FollowRange: 32
  16.     KnockbackResistance: 1
  17.     MovementSpeed: 0.275
  18.     NoDamageTicks: 0
  19.     PreventMobKillDrops: true
  20.     PreventOtherDrops: true
  21.   Skills:
  22.   - skill{s=boom} ~onTimer:5[/backcolor][/color]
复制代码
这就是那个从天而降的“落石” 我们使用了一个僵尸 通过伪装让它变成石头

那么做为了一个石头,总不能让他落地后就傻傻的在那里把?所以我们要
让他落地后就立刻爆炸,并对周围玩家造成伤害
  1. boom:
  2.   Conditions:
  3.   - onground true
  4.   Skills:
  5.   - effect:explosion @self
  6.   - effect:particles{particle=largesmoke;amount=15;hS=0;vS=0;speed=0.25} @self
  7.   - effect:particles{particle=flame;amount=15;hS=0;vS=0;speed=0.25} @self
  8.   - throw{velocity=5;velocityY=2.5} @PlayersInRadius{r=3}
  9.   - damage{amount=50;ignoreArmor=false} @PIR{r=3}
  10.   - remove @self
复制代码
核心在于它的条件,多查阅wiki是有好处的
不多做解释了,能看到这里的基本都能看懂吧

·进阶内容
当你服务器的玩家形成了一定的组队意识,
就难免出现人多围殴首领的现象,这时你需要一些技能来考验玩家

- 该技能应是群体攻击
- 该技能应该可以被玩家躲避,考验玩家意识(本帖一贯思想)

那么不如这样,我们制作一个点名技能
即随机选择与首领战斗的一个玩家,提示该玩家被点名
延迟一定时间后对该玩家所在位置爆炸,对范围内造成伤害

这样,被点名的玩家需要立刻脱离人群,避免一炸死一片

但其实,这种设定也并不合理
首先,这场爆炸的伤害难以控制:
- 如果伤害过高,被点名的玩家可能直接死亡
- 如果伤害太低,则技能的威胁不大
- 技能不能太频繁的触发,这样会使玩家疲于躲闪而没有机会输出

综上,我们要对这个机制进行一些改进
我们可以将“爆炸”替换成“范围内持续伤害”
这样玩家不得不离开这个范围,被点名的玩家也不会受到太大伤害

并且该技能能造成一定的场面混乱,如果人多,被点名的玩家就需要找到合适的位置

首先,我们先制作点名的这个机制:
  1. s2-3nqq:
  2.   Skills:
  3.   - sendtitle{title="<mob.name>&f:";subtitle="&a体验下吸附手雷的威力吧!";d=20} @PlayersInRadius{r=99}
  4.   - potion{type=GLOWING;d=120;lvl=1}
  5.   - delay 120
  6.   - summon{type=s2-3xf;amount=1;radius=0}
复制代码
(看过我视频展示的玩家应该知道,这就是实验室三号首领的一个技能)

GLOWING就是让玩家发光,用于让玩家知道是谁中了点名
然后,s2-3xf就是用于持续对周围玩家造成伤害的隐形怪,如下:
  1. s2-3xf:
  2.   Type: Silverfish
  3.   Display: ""
  4.   Health: 100
  5.   Damage: 4
  6.   AITargetSelectors:
  7.   - 0 clear
  8.   AIGoalSelectors:
  9.   - 0 clear
  10.   Modules:
  11.     ThreatTable: true
  12.     ImmunityTable: true
  13.   Options:
  14.    Despawn: false
  15.    MovementSpeed: 0.385
  16.    KnockbackResistance: 1
  17.    Silent: true
  18.    NoAI: true
  19.    Invincible: true
  20.    PreventMobKillDrops: true
  21.    NoDamageTicks: 0
  22.    PreventOtherDrops: true
  23.   Skills:
  24.   - potion{t=INVISIBILITY;d=999999999;l=1} @Self ~onSpawn
  25.   - skill{s=s2-3xfsl} @self ~onTimer:20
复制代码
首先我们利用怪物出售时自带“隐身”让玩家无法看出这是一只蠹虫

(为什么一直使用蠹虫?最开始我认为蠹虫碰撞箱小,但其实盔甲架更合适)

接下来,是持续对周围玩家造成伤害的技能s2-3xfsl
  1. s2-3xfsl:
  2.   Skills:
  3.   - effect:particlesphere{p=magiccrit;a=260;r=1} @Self
  4.   - effect:particlering{p=crit;a=60;r=1;vs=0.5;hs=0.5;s=0;y=0;points=20} @Self
  5.   - effect:particlering{p=crit;a=60;r=2;vs=0.5;hs=0.5;s=0;y=0;points=20} @Self
  6.   - effect:particlering{p=crit;a=60;r=3;vs=0.5;hs=0.5;s=0;y=0;points=20} @Self
  7.   - effect:particlering{p=crit;a=60;r=4;vs=0.5;hs=0.5;s=0;y=0;points=20} @Self
  8.   - damage{a=100;pi=true;pk=true} @PIR{r=4}
  9.   - pull{v=5} @PIR{r=4}
复制代码

就是一个持续对周围玩家造成伤害并拉扯的技能
可以根据自己的需要修改





> > 分享板块 < <

本板块专门放出一些贴主写的小示例
游客,如果您要查看本帖隐藏内容请回复



最后的话
最近经常有小伙伴通过私信或是QQ联系我,询问一些关于MM的问题
自从暑假以来,也明显的感觉到帖子的浏览数增多
这是好事,说明国内现在越来越多的人愿意学习MM
说明了无论是RPG服、或是特色生存服等,大家都想要做出更好的服务器
我是从2017年开始学习MM的,到现在大概有1年半吧
只能说,相比业内大佬,我的技术还相差甚远
但我还是写了这篇教程,并把它分享出来,也算是帮助后来的新人更快成长吧

其实做MM这个东西,脑洞比熟练度更为重要
因为就算你不熟练,有wiki、石墨文档、插件百科等大量资料可以查阅
但是没有脑洞,就只能在几个简单的技能之间死循环
要想写好MM,先学会的事情是写文案
把这个首领的特性、技能机制等都写出来,最好能再从玩家角度出发
考虑玩家需要或是会使用什么方法来击败这个首领
当你第一次打开这个脑洞后,接下来无非就是熟练度问题
写文案的时候就大胆的写,遇到实现不了的就去查资料
实在不行,也可以换种方法来代替无法实现的技能机制

如果你觉得自己设计不出好的BOSS
没有关系,坚持去写,哪怕是只有1、2个技能的小怪物
我最开始写MM的时候,技能杂乱无章,有的怪物虽然拥有近10个技能,但是释放节奏混乱,玩家体验糟糕
但我没有停下,一直坚持的写,在我第一次升华之前,我大概写过6个副本,接近20只首领
对我来说的第一次突破,应该就是我开始写实验室系列
当你熟练到一定程度后,你可以同时从多个角度去设计一个BOSS,这时候出来的BOSS肯定比以前要精彩

要记住,我们的目的是让玩家有更精彩的战斗体验,而不是恶心玩家
怪物的技能越多,对设计的要求就越高,不然技能乱放,玩家的感觉一定很糟糕
我要说的话大概也就这些了

最后,祝每位开发者都能实现自己的梦想,服务器越做越好!



评分

参与人数 38人气 +54 金粒 +308 贡献 +1 收起 理由
Mostar梦之星 + 2 神乎其技!6的飞起!
爱心魔王FHC + 3 + 1 MCBBS有你更精彩~
殇蚀烬月 + 1 + 20 实在感谢,对小白帮助极大
Yu楚天 + 1 MCBBS有你更精彩~
陆地神仙 + 1 神乎其技!6的飞起!
1257375501 + 2 MCBBS有你更精彩~
17705605275 + 1 谢谢分享
丶米饭 + 2 + 40 活捉....
wangshengzhidu + 2 MCBBS有你更精彩~
秋韵 + 2 + 10 MCBBS有你更精彩~
我是苦力怕怕 + 2 MCBBS有你更精彩~
五九 + 1 Ssssssssssssssssssss
OWOWO + 1 + 15 谢谢版主这么用心 对我这种新手op帮助真的.
我是懒人啊 + 1 + 20 MCBBS有你更精彩~
灾厄丶蓝眼 + 1 + 20 MCBBS有你更精彩~
蓝之魂 + 1 + 15 感谢指导!
24135412 + 20 MCBBS有你更精彩~
huangwu07 + 1 + 15 神乎其技!6的飞起!
369j + 1 + 20 MCBBS有你更精彩~
mc_yushi + 15 MCBBS有你更精彩~

查看全部评分

hapydoo 当前离线
积分
2856
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-10-27
查看详细资料
 楼主| 发表于 2018-12-31 19:24:07 | 显示全部楼层
我在这里解释一下,大家可能经常看见代码里出现
一个<>,然后括号内是跟MM根本无关的内容
例如</span>
这个是mcbbs编辑帖子的时候,排版出错造成的
如果发现,请直接删除,不要将<>也写进配置里!!!
但是例如<mob.name>这个是一个变量名!是与MM有关的
具体有关无关,就靠大家的判断力了


回复

使用道具 举报

翼LOVE·小爱 当前离线
积分
5319
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-5-11
查看详细资料
发表于 2018-8-24 19:23:01 | 显示全部楼层
前排插眼,很棒的教程
回复

使用道具 举报

盛夏的阳光 当前离线
积分
372
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-4-21
查看详细资料
发表于 2018-8-24 20:00:03 | 显示全部楼层
马克,顶time
回复

使用道具 举报

Link和glx 当前离线
积分
2755
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-7-19
查看详细资料
发表于 2018-8-24 20:01:45 | 显示全部楼层
很好的教程 赞一个
回复

使用道具 举报

天涯之间 当前离线
积分
17
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-4-16
查看详细资料
发表于 2018-8-24 20:04:47 | 显示全部楼层
time的教程,顶一发
回复

使用道具 举报

Black_Dragon 当前离线
积分
1419
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-8-27
查看详细资料
发表于 2018-8-30 17:30:42 | 显示全部楼层
很棒的教程
回复

使用道具 举报

嘉熙 当前离线
积分
1253
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-7-17
查看详细资料
发表于 2018-9-7 19:04:05 | 显示全部楼层
超棒的教程ヾ(????)?"
顺便问一个小问题
我曾经试过- damage{a=<random.1-20>} 来实现范围内随机伤害
但是伤害变成了基础伤害也就是不认这个变量
求dalao指点_(:з」∠)_
回复

使用道具 举报

中华博 当前离线
积分
6171
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-7-20
查看详细资料
发表于 2018-9-10 19:40:07 | 显示全部楼层
教程真棒,大力支持,不过stance这种东西为啥以前的教程贴都没出现过,感觉好有用
回复

使用道具 举报

423618228 当前离线
积分
3034
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-6-2
查看详细资料
发表于 2018-9-12 21:29:00 | 显示全部楼层
感谢大佬分享!我觉得是迄今为止mcbbs写的最好的之一!
请务必更新!不要断更。
回复

使用道具 举报

wr1973969671 当前离线
积分
2832
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-11-24
查看详细资料
发表于 2018-9-14 00:00:33 | 显示全部楼层
希望楼主继续更新,收货很大,再来点别的技能
回复

使用道具 举报

情堕 当前离线
积分
270
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-8-2
查看详细资料
发表于 2018-9-19 21:37:47 | 显示全部楼层
非常不错的教程
回复

使用道具 举报

sy07130 当前离线
积分
3271
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-9-27
查看详细资料
发表于 2018-9-24 13:07:21 | 显示全部楼层
为什么群体闪电技能不触发?只触发了群体闪电效果技能
回复

使用道具 举报

烟雨郎君 当前离线
积分
1229
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-5-29
查看详细资料
发表于 2018-11-16 17:52:58 | 显示全部楼层
又一位MM教程大佬诞生
回复

使用道具 举报

z446066151 当前离线
积分
2119
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-8-25
查看详细资料
发表于 2018-12-2 12:33:18 | 显示全部楼层
只想问一句。。。。楼主 你视频里的副本和地图 方便教不   给钱的那种,如果不行就直接卖给我吧- -
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2020-10-26 14:13 , Processed in 0.095520 second(s), Total 29, Slave 28 queries, Release: Build.2020.09.30 1852, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表