- 积分
- 759
- 威望
- 9
- 魅力
- 7
- 经验
- 276
- 热心度
- 0
- 注册时间
- 2009-2-9
- 最后登录
- 2018-6-5
- 主题
- 11
- 回帖
- 152
- 精华
- 6
- 阅读权限
- 90
该用户从未签到
论坛嘉宾
- 积分
- 759
|
本帖最后由 sakuya452 于 2013-12-15 01:47 编辑
生物攻击或造成伤害施法时经由5A8950地址进行有效性检查,然后用返回值表示当次检查是否可以接受该魔法
5A8950转换为十进制为5933392
该函数是个thiscall,调用形式为
!!SN:E5933392/2/战场结构地址/魔法编号(0-80)/施法者(堆栈)所属边(左0,右1)/被施法堆栈地址/1/1;
虽然ERM帮助里魔法编号范围是0-80,但是用蛮牛打黑龙可以出死亡凝视啊,感觉应该不算魔法,同理编号76,78,80的也一样,个人推测,如有错误,希望对WOG了解多的人能帮助指正
一个调用示例:
- ZVSE
- **检查21号堆栈对0-80号大部分魔法的接受情况,这原本是一个生物攻击/伤害施法时用于检查的函数,最好不要用于检查被英雄相关参数限制施放的魔法的接受情况
- **调用5933392函数检查有抗魔技能的堆栈时自动检查几率,得出几率在抗魔几率内则返回0,否则其它条件通过的返回1
- !?CM4&1000; 右键信息栏触发
- !!CM:F?y1 I?y2 S?y3;
- !!FU|y1<>512/y2<>2005/y3<>14:E; 不是右键信息栏则退出
- !!UN:C6919200/4/?y1; 获取战场结构地址
- !!VRy2:Sy1+21708; 0号堆栈地址
- !!VRy3:S21*1352+y2; 21号堆栈地址
- !!VRy4:S0; 施法者所属边,0为左边,1为右边,影响一些判定结果,比如谁有永恒之球
- !!DO50000/0/80/1:Py1/y3/y4;
- !?FU50000; x16为魔法编号
- !!FU&x16=77:E; 排除空魔法编号
- !!FU&x16>=0/x16<15|x16=64/x16=66/x16=67/x16=68/x16=69:E; 排除冒险及非受身非伤害性魔法,虽然这些也能获取一个返回值,但不知道是根据什么来得出的,有兴趣的可以测试看看。排除是因为这类魔法的接受情况没有用处,也不一定正确
- !!FU|x16=35/x16=38/x16=39/x16=40:E; 排除需要检查英雄相关参数才能决定是否可接受的魔法,这类的魔法接受情况似乎是按左边的英雄的相关参数来决定的,比如英雄有中级水系魔法技能,则检查21号堆栈(要求有魔法状态)对35号魔法的接受情况在其它检查条件通过时便会返回真值(1),有兴趣的可以测试看看到底由什么决定的。排除掉是因为结果不可预知
- !!FU|x16=76/x16=79/x16=80:E; 排除似乎不算是魔法的编号,检查这些编号应该也不能获取正确的值,78例外,检查结果正确,予以保留
- !!SN:E5933392/2/x1/x16/x3/x2/1/1; 调用生物施法检查函数来检查21号堆栈对相关魔法的接受情况,调用后v1存储返回值
- !!IF:M^魔法编号x16=%X16,v1=%V1(1表示可接受,0表示不接受)^; 显示目标堆栈对相应编号魔法的接受情况,可以正确检查出束缚(即缠绕)的接受情况,但是要怎么用对束缚的检查结果是另一个需要研究的问题了(或者干脆不靠该函数来检查束缚)
复制代码
感谢 超级版主 @沧海一粟 提供测试数据(我个人觉得,禁魔球只管得到英雄施法函数的检查,管不到生物施法函数的检查,永恒之球应该也可以检查出来:D),以下为该数据:
生物自带特技有效;(火免、精神免疫、亡灵、生命体、免疫N级魔法...)
生物经验特技有效;(自动检查等级,4系免疫、精神免疫、魔法免疫...)
生物抗魔技能有效;(自动检查机率)
生物减少魔法伤害有效;(这个应该原本就有效)
抗魔大法有效;(自动检查等级)
英雄宝物技能有效;(我的毁灭之球啊!禁魔球应该属于特殊检查范围故无效)
再附上其的一个应用例子供参考:- ZVSE
- **雷神射击前闪电
- !?BG0&1000;
- !!BG:A?y1 E?y2 N?y3 Q?y4;
- !!FU|y2<0/y2>41/y3<0/y3>41:E;
- !!BMy2:P?y5;
- !!BMy3:T?y6;
- !!FU|y1<>7/y6<>152:E;
- !!UN:C6919200/4/?y10;
- !!VRy11:Sy3 *1352 +21708 +y10;
- !!VRy12:Sy2 *1352 +21708 +y10;
- !!SN:E5933392/2/y10/17/y4/y12/1/1; 楼主注:检查被攻击单位对17号魔法的接受情况,填正确的边
- !!if&v1=1:;
- !!BMy3:C17/y5/1/1/1;
- !!el:;
- !!BMy2:V78;
- !!en:;
复制代码
|
评分
-
2
查看全部评分
-
|