- 积分
- 42459
- 威望
- 523
- 魅力
- 525
- 经验
- 23493
- 热心度
- 0
- 注册时间
- 2007-10-20
- 最后登录
- 2021-11-30
- 主题
- 73
- 回帖
- 8815
- 精华
- 17
- 阅读权限
- 90
TA的每日心情 | 开心 2021-11-2 11:44 |
---|
签到天数: 754 天 连续签到: 1 天 [LV.10]圣龙

论坛嘉宾
寄蜉蝣于天地,渺沧海之一粟。
  
- 积分
- 42459
      
|
**关于这种用法,感觉最早用的应该是二追的“碎裂”功能,但大多脚本对这种方法的应用基本上难见,之所以重开一帖也是出于抛砖引玉的目的,让大家更好地明白这种方法有时还是相当强大的,可以写成很多貌似很难写的脚本或将非常纠结的脚本简单化;
**要注意的一点就是:并不是所有的魔法都适合这种写法,印象中召船术、毁船术、酸液及死亡凝视并不适合这种写法;
**关于这方面的扩展内容以后将在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显示信息并重画
***呼呼,写注释真是件苦差事,收工*** |
评分
-
2
查看全部评分
-
|