关于冒险魔法及非直接起效魔法的另类用法
**关于这种用法,感觉最早用的应该是二追的“碎裂”功能,但大多脚本对这种方法的应用基本上难见,之所以重开一帖也是出于抛砖引玉的目的,让大家更好地明白这种方法有时还是相当强大的,可以写成很多貌似很难写的脚本或将非常纠结的脚本简单化;**要注意的一点就是:并不是所有的魔法都适合这种写法,印象中召船术、毁船术、酸液及死亡凝视并不适合这种写法;
**关于这方面的扩展内容以后将在ERM初级进阶心得的第二章中陆续补充更新;
**ERM实现功能:英雄在施放霹雳寒冰魔法后可按自身水系技能等级机率(无=20%,1级=30%,2级=40%,3级=50%)使目标冻结,被冻结后的生物本回合无法行动,且本回合受到伤害按英雄水系技能等级加成(无+20%,1级+30%,2级+40%,3级+50%)。
**以下是dadds兄所要求的代码及注释:
ZVSE
!?BG&1000; *动作时人类玩家战斗触发
!!VRv1360:C-1/-1/-1/-1/-1/-1/-1/-1; *v1360~v1367变量重置的简化写法,即v1360=-1,v1362=-1...
!!BG:A?v1360 D?v1361 E?v1362;
*设置动作参数(可简化),所有变量来自怪物强化III固定变量,已通过申请变量平台,一般不会引起冲突
!!BG:H?v1363 N?v1364 Q?v1365 S?v1366;
*A动作种类、D目的位置、E目标堆栈、H英雄所属、N本方堆栈、Q动作方、S魔法编号
!!BHv1365:N?v1367; *检查动作方英雄编号v1367
!?BG1&1000;*动作后人类玩家战斗触发
!!FU2600&v1360=1/v1366=16:P-100/v1362/v1366/v1367;
*当动作为英雄施法1且施放魔法为16寒冰时执行函数2600(x1=-100x2=目标堆栈x3=魔法编号x4=动作方英雄编号)
!?FU2600&x1=-100; *当函数2600的x1值=-100时执行函数
!!FU|x2<0/x2>41/x4<0:E;*目标不是战场上堆栈(即<0或>41)或动作方英雄编号<0时退出
!!BMx2:T?x5 N?x6 F?i G16/?x7/d; *获得目标堆栈的类型x5、数量x6、标志性能力i、是否有寒冰魔法附身x7
!!VRi:&67108864; *检查目标堆栈是否已经行动
!!FU|x5<0/x6<1/x7>0:E; *当堆栈类型不存在<0或数量<1或已经有寒冰魔法时则退出
!!HEx4:B0/?z-1 S16/?x10; *获得动作方英雄的名字z-1、水系技能等级x10
!!VRx8:S0; *将x8的值置0
!!VRx9:S1 R99; *生成1~100的随机数置于x9
!!VRx8&x10<=0:S20;*当动作方英雄水系等级为0或小于0(考虑特殊技能)时x8的值=20,即20%机率可触发
!!VRx8&x10=1:S30; *当动作方英雄水系等级为1时x8的值=30
!!VRx8&x10=2:S40; *当动作方英雄水系等级为2时x8的值=40
!!VRx8&x10>=3:S50;*当动作方英雄水系等级为3或大于3(考虑特殊技能)时x8的值=50
!!FU&x9>x8:E; *当随机数大于x8值时退出,控制触发机率
!!UN:N3/-3/x5/1; *目标怪物的复数名字z-3
!!UN:N1/-4/16/1; *施放的魔法名字z-4
!!VRz-9:S^Weakness.wav^;*设置虚弱的魔法音效z-9
!!SN:Pz-9; *播放虚弱的魔法音效
!!BMx2:V56 M16/1/x10;
*给目标堆栈加上虚弱的魔法效果及增加寒冰魔法(格式:编号16/持续时间1/技能等级=英雄水系等级)
!!BMx2&i=0:Fd67108864; *如果目标堆栈未行动(即i=0)则给目标生物加上已行动标志,无法行动
!!VRz-10:S^{%Z-3受到%Z-1的%Z-4魔法打击后竟然被冻结了。} ^; *设置一条文字记录到z-10
!!BU:Mz-10 R; *在战斗记录中添加z-10显示信息并重画
!?MF1&1000; *人类玩家战斗堆栈伤害前触发
!!FU2600:P-99; *直接应用函数触发,减少临时变量冲突机率,执行函数2600(x1=-99)
!?FU2600&x1=-99;*当x1=-99时执行函数2600
!!MF:F?x2 N?x3; *获得伤害值x2、受伤害堆栈x3
!!FU|x3<0/x3>41:E;*当受伤害堆栈不在战场时退出(即<0或>41)
!!BG:A?x4 N?x5 Q?x6;
*伤害前动作参数:动作种类A、动作堆栈N、动作方Q(很重要一点,往往动作时动作参数和伤害前动作参数是不同的)
!!BHx6:N?x7; *检查动作方英雄编号
!!FU&x4<>6/x4<>7:E; *当动作种类不为近身攻击且不为射击时退出
!!BMx5:T?x8 N?x9; *获得动作方堆栈生物类型x8、数量x9
!!BMx3:T?x10 N?x11; *获得受伤害堆栈生物类型x10、数量x11
!!FU|x9<1/x11<1/x8<0/x10<0:E; *当动作方生物数量<1或受伤害生物数量<1或动作方生物受伤害生物数量<0时退出
!!FU2600&x6=0/x7>-1/x3>20:P-98/x2/x3/x8/x10;
*当动作方为左且动作英雄存在且动作堆栈为左方时在函数内执行函数x1=-98,x2=伤害x3=受伤害堆栈x4=动作生物编号x5=受伤害生物编号
!!FU2600&x6=1/x7>-1/x3<21:P-98/x2/x3/x8/x10;
*当动作方为右且动作英雄存在且动作堆栈为右方时在函数内执行函数x1=-98
!?FU2600&x1=-98; *当函数2600的x1值=-98时执行函数
!!BMx3:G16/?x6/?x7; *检查受伤害堆栈是否有寒冰魔法x6,及魔法等级x7,请对应BG好好体会
!!FU&x6<1:E; *当受伤害堆栈没有寒冰魔法时退出函数
!!UN:N3/-2/x4/1; *目标怪物的复数名字z-2
!!UN:N3/-3/x5/1; *受伤害怪物的复数名字z-3
!!VRx8:S0; *将x8的值置0
!!VRx8&x7<=0:Sx2*1:5; *当受伤害生物身上寒冰魔法等级为0或小于0时x8的值为伤害值的20%
!!VRx8&x7=1:Sx2*1:3; *当受伤害生物身上寒冰魔法等级为1时x8的值为伤害值的30%
!!VRx8&x7=2:Sx2*2:5; *当受伤害生物身上寒冰魔法等级为2时x8的值为伤害值的40%
!!VRx8&x7>=3:Sx2*1:2; *当受伤害生物身上寒冰魔法等级为3或大于3时x8的值为伤害值的50%
!!VRx9:Sx2+x8; *将伤害值x2加上额外伤害值x8的和存储于x9
!!VRz-9:S^Deathblo.wav^; *设置致命一击的魔法音效z-9
!!SN:Pz-9; *播放致命一击的魔法音效
!!BMx3:V73; *给受伤害堆栈加上致命一击的特殊效果
!!MF:Fx9; *重置伤害值,即加上额外附加伤害
!!VRz-10:S^{冰冻状态下脆弱的%Z-3受%Z-2伤害增加%X8。} ^; *设置一条文字记录到z-10
!!BU:Mz-10 R; *在战斗记录中添加z-10显示信息并重画
***呼呼,写注释真是件苦差事,收工*** ;ym; 完全看不懂;lh; 友情帮顶 沧海教授授课辛苦了;taoh;注释很详尽,对ERM新人帮助很大,对ERM文盲。。。无效;lh; 呵呵呵呵呵;tl; 进阶教程,刚好适合我这样刚学不久的,太感谢了 erm文盲无奈的飞过;apso; 原来这个伤害加成是按照5分之1(1:5)3分之1(1:3)5分之2(2:5)2分之1(1:2)来计算的?真怪异额;ym;
回复 6# 的帖子
.不怪异,ERM的计算都是从左到右直接计算的,如果对ERM感兴趣的兄弟,建议有空多看看ERM版块置顶里教程汇总帖里的第二部分系统化教程,只要能基本理解并多参考老脚本的话,我想定制80%以上的脚本应该都不是什么难事。ERM并没有想像中的那么复杂,打好基本功很重要,多看多想多交流,很快就可以上手的了。还有就是冒险魔法的用法说白了其实很简单,就是给生物设置一种另类的非施法非生物特技可以实现的魔法状态(随你用哪个,但比如你用了我上面说的那几个,电脑也可能会毫不客气地赏你一个黑屏),通过设置它的回合数及等级来实现你想要达到的效果,跟我以前说的“8192”标志位差不多,但感觉这个更稳定不容易发生错误,用得好的话可以实现很多貌似很难实现的功能及很纠结看似要用掉很多变量才能实现的功能。
另外,如果有朋友对某些特殊的ERM实现方法感兴趣的话,我会适时地更新初级进阶心得及把怪物强化III里部分相当古怪实现的功能拆开来解析,里面有不少写法都是独创的,听起来很难写但根本就不费什么力。 原帖由 龙巫妖 于 2012-3-26 23:20 发表 http://www.h3wog.com/images/common/back.gif
erm文盲无奈的飞过;apso;
同感 虽然还没仔细看 但肯定对我的帮助巨大 不仅要猛顶你一下 还要狂谢你;go; 几个小问题麻烦解答
!!VRx8:S0; *将x8的值置0
!!VRx9:S1 R99; *生成1~100的随机数置于x9
!!VRx8&x10<=0:S20;*当动作方英雄水系等级为0或小于0(考虑特殊技能)时x8的值=20,即20%机率可触发
!!VRx8&x10=1:S30; *当动作方英雄水系等级为1时x8的值=30
!!VRx8&x10=2:S40; *当动作方英雄水系等级为2时x8的值=40
!!VRx8&x10>=3:S50;*当动作方英雄水系等级为3或大于3(考虑特殊技能)时x8的值=50
!!FU&x9>x8:E; *当随机数大于x8值时退出,控制触发机率
erm中x8变量的值是什么时候设置为寒冰触发几率的,x8与x9又是什么关系?
回复10#的帖子
!!VRx8:S0; *将x8的值置0!!VRx9:S1 R99; *生成1~100的随机数置于x9
!!VRx8&x10<=0:S20;*当动作方英雄水系等级为0或小于0(考虑特殊技能)时x8的值=20,即20%机率可触发
!!VRx8&x10=1:S30; *当动作方英雄水系等级为1时x8的值=30
!!VRx8&x10=2:S40; *当动作方英雄水系等级为2时x8的值=40
!!VRx8&x10>=3:S50;*当动作方英雄水系等级为3或大于3(考虑特殊技能)时x8的值=50
!!FU&x9>x8:E; *当随机数大于x8值时退出,控制触发机率
回复:代码的红色部分是设置触发的机率值(紫色部分是触发条件),即x8的值在动作方英雄的水系技能等级不同时均不同,水系等级越高触发的机率值设置得就越高。函数内临时变量x9的值为1至100的其中一个,数字随机谁也很难说它可能会是哪个,每次都会有所不同,如果动作作方英雄的水系技能等级为0时(x8=20),x9产生的随机值如果大于20就不触发(x9>x8),即只有20%机率可能触发,其它同上解释。
[ 本帖最后由 沧海一粟 于 2012-3-27 11:25 编辑 ]
回复 11# 的帖子
学到如何设定技能几率了~ 终于花时间仔细看完了,4个字:茅塞顿开。当然只是看懂了,要学会并且熟练运用还远远不够;taoh; 好文章,解释得很详细,值得品味. 原帖由 沧海一粟 于 2012-3-26 22:49 发表 http://bbs.h3wog.com/images/common/back.gif**关于这种用法,感觉最早用的应该是二追的“碎裂”功能,但大多脚本对这种方法的应用基本上难见,之所以重开一帖也是出于抛砖引玉的目的,让大家更好地明白这种方法有时还是相当强大的,可以写成很多貌似很难写的脚 ...
睡之前问个问题,我在这个脚本前面添加了一个战斗前获取英雄力量值的命令(再次谢谢骷髅召唤师的指点),不知道为什么貌似整个脚本都无效了,求解
!?BA0&1000;
!!BA:H0/?v9555 H1/?v9560;
!!HEv9555:Fd/d/?v55/d;
!!HEv9560&v9560>-1:Fd/d/?v56/d; 这完全就是在看天书的感觉。;lan; 原帖由 dadds 于 2012-3-31 01:46 发表 http://www.h3wog.com/images/common/back.gif
睡之前问个问题,我在这个脚本前面添加了一个战斗前获取英雄力量值的命令(再次谢谢骷髅召唤师的指点),不知道为什么貌似整个脚本都无效了,求解
!?BA0&1000;
!!BA:H0/?v9555 H1/?v9560;
!!HEv9555:Fd/d/?v5 ...
你这是战斗前触发检查攻防双方的英雄,而脚本本身是动作前检查动作方英雄,你认为两者这样简单的添加会有效果吗?当然,如果改动一下原脚本,在函数中加入v9555及v9560的值还是可以起效的,但这样做好像没必要。其实你只要在动作后加句代码检查动作方英雄的力量值就可以了,但有一个小问题就是在动作时检查英雄的四围及魔法值会引起一点小花屏。
!!HEx4:B0/?z-1 S16/?x10 Fd/d/?x11/d;
!!BMx2:V56 M16/x11/x10;持续时间与动作方英雄力量有关
回复 17# 的帖子
我的意思不是单纯的在前面添加战前获取英雄力量值的命令,而是要修改这个脚本的功能,也就是只保留这个脚本的前半段,后面因为生物身上的受身魔法而产生的特殊效果我想修改成火系魔法的燃烧特效(降低生物防御而且每回合造成一定的伤害,英雄力量值有关)就是因为不想引起花屏才会想在战前获得,看来如果实在不行就只能把伤害固定了回复18#如何引入战前变量
我是简单比个例子,下面代码应该是你想要的,你看看你什么地方出问题了。至于火系“燃烧”技能,我想经过这几天你提的问题,应该已经有大致的思路了,所以就不说了,其实按这个原理并不难实现的,先试试吧。ZVSE
!?BA0&1000;
!!BA:H0/?v9555 H1/?v9560;
!!HEv9555:Fd/d/?v55/d;
!!HEv9560&v9560>-1:Fd/d/?v56/d;
!?BG&1000;
!!VRv1360:C-1/-1/-1/-1/-1/-1/-1/-1;
!!BG:A?v1360 D?v1361 E?v1362;
!!BG:H?v1363 N?v1364 Q?v1365 S?v1366;
!!BHv1365:N?v1367;
!?BG1&1000;
!!FU2600&v1360=1/v1366=16/v9555>-1/v1365=0:P-100/v1362/v1366/v9555/v55;
!!FU2600&v1360=1/v1366=16/v9560>-1/v1365=1:P-100/v1362/v1366/v9560/v56;
!?FU2600&x1=-100;
!!FU|x2<0/x2>41/x4<0:E;
!!BMx2:T?x11 N?x6 F?i G16/?x7/d;
!!VRi:&67108864;
!!FU|x11<0/x6<1/x7>0:E;
!!HEx4:B0/?z-1 S16/?x10;
!!VRx8:S0;
!!VRx9:S1 R99;
!!VRx8&x10<=0:S60;
!!VRx8&x10=1:S70;
!!VRx8&x10=2:S80;
!!VRx8&x10>=3:S90;
!!FU&x9>x8:E;
!!UN:N3/-3/x11/1;
!!UN:N1/-4/16/1;
!!VRz-9:S^Weakness.wav^;
!!SN:Pz-9;
!!BMx2:V56 M16/x5/x10; 持续回合为英雄力量
!!BMx2&i=0:Fd67108864;
!!VRz-10:S^{%Z-3受到%Z-1的%Z-4魔法打击后竟然被冻结了。} ^;
!!BU:Mz-10 R;
回复 19# 的帖子
...;sw; 脚本已经写好了,就是想在不花屏的条件下改进所以才想问问
页:
[1]
2