| 
积分759威望9 魅力7 经验276 热心度0 注册时间2009-2-9最后登录2018-6-5主题11回帖152精华6阅读权限90 
 该用户从未签到 
 论坛嘉宾   
 
	积分759 
 
 | 
 
| 本帖最后由 sakuya452 于 2013-11-16 03:30 编辑 
 内部函数调用形式为
 
 !!SN:E7455085/1/目标堆栈地址/1;
 
 另一种调用方法见7楼 贤知有您 的贴子,调用的是该函数中的子函数
 
 补上一点要注意的地方,用空的堆栈号(即该堆栈号上没有单位存在)或该堆栈单位的数量为0(修改为0测试的)时获取的值是不正确的(前一个是两种方法获取结果都不正确,后一个是该方法获取结果不正确,这是一个我没有注意的地方,ERM考虑的比原程序员还周到,死剩0的也能获取经验值)
 
 推荐7楼的方法,不过正常用一般都没问题,因为有一个堆栈号获取过程(死亡返回-1多少弥补点了忽视的地方,只有一些极端情况数量为0依然屹立不倒的,我遇过一次,在寻梦人的永远的精灵光复终极版,圣龙血荐轩辕时不知怎么的,数量为0后不倒下了,不能动不能被选为目标以及不能被攻击和伤害到,血量太多,复活之类的魔法没法测试:D)
 
 调用后等级不用返回值来记录,而是存储在基址847D94中(经验则会存在847D90,当然也可以用EA接收器获取),所以要紧接下面这句获取(上面那个函数系统会根据时机调用的,然后又改写847D94和847D90的值,所以最好在同一个触发器中调用和获取)
 
 !!UN:C8682900/4/?y1;        获取当前经验等级(只有堆栈号不为空且数量不为0才是正确的,不然保留的是最近一次有效执行该函数的结果)
 !!UN:C8682896/4/?y2;        获取当前经验值(同上)
 
 不知道能不能对应txt被修改的情况,待测试
 
 一个示例:
 
 复制代码ZVSE
**获取0-41号堆栈的经验级别
!?BF&1000;
!!SN:W^Local.Stack.Num^/0;
!?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号堆栈地址
!!SN:W^Local.Stack.Num^/?y3;
!!VRy4:Sy3*1352+y2;   起始为0号堆栈,右键一次,堆栈号+1,注意到空堆栈号或数量为0的堆栈号时结果不正确的
!!SN:E7455085/1/y4/1;
!!UN:C8682900/4/?y5;
!!IF:M^堆栈号y3=%Y3,经验级别y5=%Y5^;
!!VRy3:+1;
!!VRy3&y3>=42:S0;
!!SN:W^Local.Stack.Num^/y3;
 | 
 评分
5
查看全部评分
 |