[便利功能]快速获取战场指定堆栈的经验级别
本帖最后由 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;
兽老大居然也在;hap; 太好了.有了此函数,检测方式就不必那么繁琐了.
:good_job: 贤知有您 发表于 2013-11-15 12:32
太好了.有了此函数,检测方式就不必那么繁琐了.
贤知能不能帮忙测试下txt修改后可不可以用,本人对txt资源方面实属菜鸟一只。谢谢;exp; ;hap;正常测试完全没问题,至于修改txt文件的,@eva2000as 来测试下。 自从咱论坛有了贤知有您和sakuya452的这2个大神。再也不用羡慕Hc论坛那些大佬啦。;kl; 我也来凑个热闹
ZVSE
!?CM4; [战场场景]
!!CM:F?y1 I?y2 S?y3;
!!FU|y1<>512/y2<>2005/y3<>14:E; [右键点信息栏按钮]
!!BG:N?y1;[当前堆栈号]
!!FU9999903:Py1/?v2/?v3;
!!IF:M^当前堆栈%Y1 经验值%V2 经验等级%V3^;
!?FU9999903;
!!FU|x1<0/x1>41:E;
!!BMx1:T?y1;
!!FU|y1<0:E;
!!VRy3:Sx1 +1 *-1;
!!EAy3:E?y4/2/d/d; [获得堆栈的经验值y4]
!!SN:E7503648/1/y3/y4;
!!VRx2:Sy4;
!!VRx3:Sv1; TXT测试比较麻烦,因为我感觉现在ERAoverride模式有点不太习惯。等我有空测下吧。 喜欢新的形象和新的经历,需要学习一下了。 喜欢新的形象和新的经历,需要学习一下了。 厉害了学习大神技术
页:
[1]