- 欢迎来到Minecraft插件百科!
- 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
- 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289
MythicMobs/教程/护盾:修订间差异
跳转到导航
跳转到搜索
1240798440(留言 | 贡献) (创建页面,内容为“<pre>原理:首先让怪物出生自动生成一个护盾,同时初始化两个记分板冷却利用变量读取两次实体的生命 ,因为需要一个"上一次…”) |
(撤销1240798440(讨论)的版本17886) 标签:撤销 |
||
(未显示1个用户的4个中间版本) | |||
第1行: | 第1行: | ||
<pre>原理:首先让怪物出生自动生成一个护盾,同时初始化两个记分板冷却利用变量读取两次实体的生命 | <pre>*原理:首先让怪物出生自动生成一个护盾,同时初始化两个记分板冷却利用变量读取两次实体的生命 | ||
,因为需要一个"上一次生命"和"当前生命",故俩次读取中间加了个延迟(delay)接着每次读取到生命 | ,因为需要一个"上一次生命"和"当前生命",故俩次读取中间加了个延迟(delay)接着每次读取到生命 | ||
都转化为记分板加减的数值,(护盾容量+上一次生命-当前生命=剩余护盾). | 都转化为记分板加减的数值,(护盾容量+上一次生命-当前生命=剩余护盾). | ||
接着利用变量读取记分板加减后得到的数值,并作为heal(治疗)的数值,来做到表面上的无敌 | 接着利用变量读取记分板加减后得到的数值,并作为heal(治疗)的数值,来做到表面上的无敌 | ||
(护盾容量-剩余护盾=护盾受到的伤害=恢复的数值),由于受到的伤害可能大于剩余护盾,就会导致护盾变 | (护盾容量-剩余护盾=护盾受到的伤害=恢复的数值),由于受到的伤害可能大于剩余护盾,就会导致护盾变 | ||
为负数,从而影响每秒恢复2点护盾,所以需要技能"护盾数值修正"来让剩余护盾无法变为负数. | 为负数,从而影响每秒恢复2点护盾,所以需要技能"护盾数值修正"来让剩余护盾无法变为负数. | ||
这里不将剩余护盾提示放到怪物yml的原因是要让它计算后读取并提示玩家,如果放怪物yml,数值可能就是 | *这里不将剩余护盾提示放到怪物yml的原因是要让它计算后读取并提示玩家,如果放怪物yml,数值可能就是 | ||
刚加了最大生命的护盾数值,也可能是减去当前生命后的护盾数值. | 刚加了最大生命的护盾数值,也可能是减去当前生命后的护盾数值. | ||
每次受伤都会重置护盾恢复的冷却(5秒,也就是指定记分板100分数),也就是说5秒内没受到任 | *每次受伤都会重置护盾恢复的冷却(5秒,也就是指定记分板100分数),也就是说5秒内没受到任 | ||
何伤害才会进行护盾恢复,每0.25秒-5分,也就是每秒-20分,20分=1秒冷却 | 何伤害才会进行护盾恢复,每0.25秒-5分,也就是每秒-20分,20分=1秒冷却 | ||
剩余护盾为0时会使怪物无敌,获得抗性提升VI,并再次利用记分板设置5秒冷却. | 剩余护盾为0时会使怪物无敌,获得抗性提升VI,并再次利用记分板设置5秒冷却. | ||
鲲鲲为啥不用其它方法做冷却QAQ,(被火龙果指点)利用实体是否拥有指定药水效果条件来做也是行的QAQ | 鲲鲲为啥不用其它方法做冷却QAQ,(被火龙果指点)利用实体是否拥有指定药水效果条件来做也是行的QAQ | ||
好惹,下面是详细配置QAQ | 好惹,下面是详细配置QAQ | ||
</pre> | |||
{| class="wikitable mw-collapsible mw-collapsed" | |||
! style="text-align: left;" | 技能配置 | |||
|- | |||
| | |||
怪物Yml: | |||
- skill{s=测试护盾} @self ~onDamaged | |||
- skill{s=护盾恢复冷却} @self ~onTimer:5 | |||
- skill{s=测试护盾提示} @self ~onDamaged | |||
- skill{s=护盾格挡伤害} @self ~onDamaged | |||
- skill{s=护盾无敌冷却} @self ~onTimer:1 | |||
- skill{s=护盾恢复1} @self ~onTimer:10 | |||
- modifytargetscore{o=护盾;a=SET;v=40} @self ~onSpawn | |||
- modifytargetscore{o=护盾无敌冷却;a=SET;v=0} @self ~onSpawn | |||
- modifytargetscore{o=护盾恢复冷却;a=SET;v=0} @self ~onSpawn | |||
测试增伤: | 测试增伤: | ||
Skills: | Skills: | ||
第55行: | 第60行: | ||
- score{objective=护盾;value=<0} false | - score{objective=护盾;value=<0} false | ||
Skills: | Skills: | ||
- modifytargetscore{o=护盾;a=SUBTRACT;v='<caster.var.hd1>'} | - modifytargetscore{o=护盾;a=SUBTRACT;v='<caster.var.hd1>'} | ||
- delay 1 | - delay 1 | ||
- setvariable{type=STRING;var=caster.hd2;value="<caster.hp>"} @self | - setvariable{type=STRING;var=caster.hd2;value="<caster.hp>"} @self | ||
- delay 1 | - delay 1 | ||
- modifytargetscore{o=护盾;a=ADD;v='<caster.var.hd2>'} | - modifytargetscore{o=护盾;a=ADD;v='<caster.var.hd2>'} | ||
- delay 1 | - delay 1 | ||
- setvariable{type=STRING;var=caster.hd;value="<mob.score.护盾>"} @self | - setvariable{type=STRING;var=caster.hd;value="<mob.score.护盾>"} @self | ||
- skill{s=测试护盾提示1} @self | - skill{s=测试护盾提示1} @self | ||
第73行: | 第74行: | ||
测试护盾提示1: | 测试护盾提示1: | ||
Conditions: | Conditions: | ||
- variableInRange{var=caster.hd;value=>0} | - variableInRange{var=caster.hd;value=>0} | ||
Skills: | Skills: | ||
第79行: | 第79行: | ||
护盾格挡伤害: | 护盾格挡伤害: | ||
Conditions: | Conditions: | ||
- variableInRange{var=caster.hd;value=>0} | - variableInRange{var=caster.hd;value=>0} | ||
Skills: | Skills: | ||
- delay 5 | - delay 5 | ||
- heal{a='40 - <caster.var.hd>'} @self | - heal{a='40 - <caster.var.hd>'} @self | ||
护盾无敌冷却: | 护盾无敌冷却: | ||
第91行: | 第89行: | ||
- modifytargetscore{o=护盾无敌冷却;a=SUBTRACT;v=1} @self | - modifytargetscore{o=护盾无敌冷却;a=SUBTRACT;v=1} @self | ||
护盾耗尽无敌: | 护盾耗尽无敌: | ||
Conditions: | Conditions: | ||
- score{o=护盾;v=0} | - score{o=护盾;v=0} | ||
第100行: | 第97行: | ||
- potion{t=DAMAGE_RESISTANCE;d=20;lvl=5} @self | - potion{t=DAMAGE_RESISTANCE;d=20;lvl=5} @self | ||
护盾恢复1: | 护盾恢复1: | ||
Conditions: | Conditions: | ||
- score{o=护盾恢复冷却;v=<1} | - score{o=护盾恢复冷却;v=<1} | ||
- score{objective=护盾;value=<40} | - score{objective=护盾;value=<40} | ||
Skills: | Skills: | ||
- modifytargetscore{o=护盾;a=ADD;v=1} @self | - modifytargetscore{o=护盾;a=ADD;v=1} @self | ||
|} |
2022年7月9日 (六) 10:02的最新版本
*原理:首先让怪物出生自动生成一个护盾,同时初始化两个记分板冷却利用变量读取两次实体的生命 ,因为需要一个"上一次生命"和"当前生命",故俩次读取中间加了个延迟(delay)接着每次读取到生命 都转化为记分板加减的数值,(护盾容量+上一次生命-当前生命=剩余护盾). 接着利用变量读取记分板加减后得到的数值,并作为heal(治疗)的数值,来做到表面上的无敌 (护盾容量-剩余护盾=护盾受到的伤害=恢复的数值),由于受到的伤害可能大于剩余护盾,就会导致护盾变 为负数,从而影响每秒恢复2点护盾,所以需要技能"护盾数值修正"来让剩余护盾无法变为负数. *这里不将剩余护盾提示放到怪物yml的原因是要让它计算后读取并提示玩家,如果放怪物yml,数值可能就是 刚加了最大生命的护盾数值,也可能是减去当前生命后的护盾数值. *每次受伤都会重置护盾恢复的冷却(5秒,也就是指定记分板100分数),也就是说5秒内没受到任 何伤害才会进行护盾恢复,每0.25秒-5分,也就是每秒-20分,20分=1秒冷却 剩余护盾为0时会使怪物无敌,获得抗性提升VI,并再次利用记分板设置5秒冷却. 鲲鲲为啥不用其它方法做冷却QAQ,(被火龙果指点)利用实体是否拥有指定药水效果条件来做也是行的QAQ 好惹,下面是详细配置QAQ
技能配置 |
---|
怪物Yml: - skill{s=测试护盾} @self ~onDamaged - skill{s=护盾恢复冷却} @self ~onTimer:5 - skill{s=测试护盾提示} @self ~onDamaged - skill{s=护盾格挡伤害} @self ~onDamaged - skill{s=护盾无敌冷却} @self ~onTimer:1 - skill{s=护盾恢复1} @self ~onTimer:10 - modifytargetscore{o=护盾;a=SET;v=40} @self ~onSpawn - modifytargetscore{o=护盾无敌冷却;a=SET;v=0} @self ~onSpawn - modifytargetscore{o=护盾恢复冷却;a=SET;v=0} @self ~onSpawn 测试增伤: Skills: - setvariable{type=STRING;var=caster.dm;value="<caster.php>"} @self 测试增伤提示: Skills: - damage{a='1 + 1 * (100 - <caster.var.dm>) '} @EIR{r=10} 护盾数值修正: Conditions: - score{o=护盾;value=<0} Skills: - modifytargetscore{o=护盾;a=SET;v=0} @self 测试护盾: Conditions:
- score{objective=护盾;value=<0} false Skills: - removeTag{t=护盾恢复1} @self - modifytargetscore{o=护盾恢复冷却;a=SET;v=100} @self - skill{s=清除无敌一秒} @self - setvariable{type=STRING;var=caster.hd1;value="<caster.hp>"} @self 护盾恢复冷却: Conditions: - score{objective=护盾恢复冷却;value=>1} Skills: - modifytargetscore{o=护盾恢复冷却;a=SUBTRACT;v=5} @self 测试护盾提示: Conditions: - score{objective=护盾;value=<0} false Skills: - modifytargetscore{o=护盾;a=SUBTRACT;v='<caster.var.hd1>'} - delay 1 - setvariable{type=STRING;var=caster.hd2;value="<caster.hp>"} @self - delay 1 - modifytargetscore{o=护盾;a=ADD;v='<caster.var.hd2>'} - delay 1 - setvariable{type=STRING;var=caster.hd;value="<mob.score.护盾>"} @self - skill{s=测试护盾提示1} @self - delay 5 - skill{s=护盾数值修正} @self - delay 2 - skill{s=护盾耗尽无敌} @self 测试护盾提示1: Conditions: - variableInRange{var=caster.hd;value=>0} Skills: - speak{offset=0.6f;radius=10;maxlinelength=22;lineprefix="&5";message="&b剩余护盾:<caster.var.hd>";chatprefix=&f<&co>;duration=60} @self 护盾格挡伤害: Conditions: - variableInRange{var=caster.hd;value=>0} Skills: - delay 5 - heal{a='40 - <caster.var.hd>'} @self 护盾无敌冷却: Conditions: - score{objective=护盾无敌冷却;value=<1} false Skills: - modifytargetscore{o=护盾无敌冷却;a=SUBTRACT;v=1} @self 护盾耗尽无敌: Conditions: - score{o=护盾;v=0} - score{o=护盾无敌冷却;v=<1} Skills: - modifytargetscore{o=护盾无敌冷却;a=SET;v=100} @self - speak{offset=0.6f;radius=10;maxlinelength=22;lineprefix="&5";message="&c怪物的护盾耗尽,无敌1秒>";chatprefix=&f<&co>;duration=60} @self - potion{t=DAMAGE_RESISTANCE;d=20;lvl=5} @self 护盾恢复1: Conditions: - score{o=护盾恢复冷却;v=<1} - score{objective=护盾;value=<40} Skills: - modifytargetscore{o=护盾;a=ADD;v=1} @self |