本帖最后由 华离 于 2023-1-25 15:44 编辑 


                                                 

既然要进行判断,自然要用到条件(Conditions)
复制代码
复制代码
复制代码



写在前面
相比起原版,使用MM制作的元素反应肯定会有不足
而且因为MM与MC本身的特性,在一些版本使用时会出现bug
所以这一套配置更多是一个MM技能制作时思路的启发
本配置制作时使用spigot1.12.2,Mythicmobs4.72付费版
亲测paper1.16.5 Mythicmobs4.12付费版可行
其实有无付费关系不大(doge)
进入正题:
1.认识元素反应机制
玩原神的朋友应该不陌生吧...见以下图解
2.制作技能的思路
既然要制作元素反应,那么便可以得出以下几个技能的部分:
1.技能判断部分
2.技能属性部分
3.技能效应部分
那么接下去就将技能的几个部分分解制作
先来看技能判断部分:
在这里,我选择的是条件中的tag。
我们以燃烧这一技能作为示范
代码如下:
- 燃烧:
 
-   TargetConditions:
 
-   - hastag {t=燃烧} false
 
-   Skills:
 
-   - sendtitle{title="&c&l燃 烧";subtitle="";d=13;fi=2;fo=2} @self
 
-   - addtag{tag=燃烧} @target
 
-   - skill{s=蒸发} @target
 
-   - skill{s=融化} @target
 
-   - skill{s=超载1} @target
 
- - sudoskill{s=燃烧移除;setcasterastrigger=false} @target
燃烧这一技能,旨在给予目标燃烧这一标签,并尝试进行反应,
TargetConditions:
         - hastag {t=燃烧} false
则是在目标已经处于燃烧状态时,不允许再次被加上这一tag
想必现在各位水友们已经开始懵逼了,莫慌.继续看下去
  - skill{s=蒸发} @target
  - skill{s=融化} @target
   - skill{s=超载1} @target
这三行则是燃烧这一技能的效应体
下面是这三行技能的详细代码
- 超载1:
 
-   TargetConditions:
 
-   - hastag {t=**}
 
-   Skills:
 
-   - sendtitle{title="&5&l超 载";subtitle="";d=13;fi=2;fo=2} @self
 
-   - effect:particles{particle=largeexplode;amount=1} @target
 
-   - damage{a=0} @target
 
-   - removetag{tag=燃烧} @target
 
-   - removetag{tag=**} @target
 
- 蒸发:
 
-   TargetConditions:
 
-   - hastag {t=潮湿}
 
-   Skills:
 
-   - sendtitle{title="&7&l蒸 发";subtitle="";d=13;fi=2;fo=2} @self
 
-   - effect:particles{particle=cloud;y=1.5;vs=0.6;hs=0.6;a=10} @target
 
-   - damage{a=1} @target
 
-   - removetag{tag=潮湿} @target
 
-   - removetag{tag=燃烧} @target
 
- 融化:
 
-   TargetConditions:
 
-   - hastag {t=冻结}
 
-   Skills:
 
-   - sendtitle{title="&f&l融 化";subtitle="";d=13;fi=2;fo=2} @self
 
-   - effect:particles{particle=cloud;y=1.5;vs=0.6;hs=0.6;a=10} @target
 
-   - potion{type=SLOW;duration=30;level=1} @target
 
-   - damage{a=0} @target
 
-   - removetag{tag=冻结} @target
 
- - removetag{tag=燃烧} @target
参照游戏中的感电,燃烧,潮湿,冻结几个状态,在MC中则表现为
目标身上的tag,所以当玩家执行技能时,若Target的身上有对应Tag
那么与此元素有关的技能便可以判断成功,执行效果
一整个元素反应系统包括多个部分,以多个技能为一个整体
也就是说
燃烧这一技能调用了超载,融化,蒸发这几个技能
让他们产生了类似分支结构的效果
那么是否存在同时产生多个反应效果的可能性?
答案是否定的
每个Tag都需要相应的技能来给予,当给予Tag时就将先进行一次反应。
标签在效应完成后的移除:
这个应该不用我详细说了
看代码吧.
- <blockquote><span style="font-size: 14px;">感电移除:</span>
2.技能属性部分.
原神中的反应所产生的伤害都是这一次技能所造成的,
那么以这一思路类推
可以在效应项中的damage改为本次伤害
如果觉得给技能挨个加效应技能过于麻烦
可以直接设置变量,并在效应技能中计算变量
3.技能效应部分.
前文已经讲过,此处不再赘述
4.如何使用
在你所需加入元素反应的技能后添加上对应属性的反应技能即可
在使用时适当修改目标选择器
(根据实际需要)
这一配置的不足
我在序言中已经提到了这个配置是不完善的,主要是在AOE类型技能中无法进行操作
(或许可以,我没有测试)
其次,这一配置占用资源会比较高,因为玩家与怪物都会触发元素反应
并且每个技能都需要再次配置(貌似工作量没多少哈)
我个人不推荐在服务器中大量使用
关于如何在mm中调用玩家的ap属性的方法:
-setvariable{var=caster.变量名字;type="float";value=%ap_ap内的属性变量名%} 目标选择器
在使用这个变量时
直接将原来的数值用
<你命名的变量值>代替
ps:关于为什么没有草元素,是因为我写完它的时候根本没出须弥
(你可以尝试自制草元素 家庭作业.jpg)
ps:发了第二次了,应该没违规吧
本资源所有内容均为原创,不存在借用/抄袭等行为
点赞捏

实在看不懂
、
、
怪物插件嘴伟大
原神小友 发表于 2023-2-26 21:33
实在看不懂
、
不是特别复杂吧...先确保你对MythicMobs有足够了解
wc,你来真的 牛皮
牛皮
我也用过mm写 搭配as的自定义机制组   有元素附着强度和附着时间机制 后来发现运行效率有点低   还是建议用js或者直接做成插件比较好
我现在自己服用的就是js写的元素反应
我现在自己服用的就是js写的元素反应
秋华酱鸭 发表于 2023-3-25 17:13
我也用过mm写 搭配as的自定义机制组 有元素附着强度和附着时间机制 后来发现运行效率有点低 还是建议用 ...
确实,mm运行效率确实低下,而且我这套用的tag检测,相比起aura的bug更多,这套配置就算是从mm角度上说运行效率也十分低下