- 积分
- 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
查看全部评分
-
|