2011-4-10 23:18
star175
对指令77的进一步加强
以前曾经对指令77 (变量运算) 进行过加强,即通过整形变量4076的设置来实现指针变量的byte运算和word运算
具体功能如下
利用整形变量4076进行控制
默认为0 进行Dword运算
1 Byte
2 Word
只支持下列6种参数下的指令
77:变量运算 指针变量(*p) 0 += 常数 0
77:变量运算 指针变量(*p) 0 -= 常数 0
77:变量运算 指针变量(*p) 0 = 常数 0
对指针变量(*p)进行加减和赋值运算,右边的参数必须为一个常数
79:变量测试 指针变量(*p) 0 == 常数 0
79:变量测试 指针变量(*p) 0 >= 常数 0
79:变量测试 指针变量(*p) 0 <= 常数 0
对指针变量(*p)进行比较运算,右边的参数必须为一个常数
但是这些只能满足指针变量的加减、赋值和比较运算,而对指针变量的取值却仍然只有Dword运算
其实由于有上次的强化,目前只要改动少量代码就能实现指针变量的byte和word取值
代码如下
0043C538 |. 837D 0C 01 CMP DWORD PTR SS:[EBP+C],1 ; 左边变量类型
0043C53C |. 74 1C JE SHORT Ekd5.0043C55A
0043C53E |. 837D 08 02 CMP DWORD PTR SS:[EBP+8],2 ; 右边变量类型
0043C542 |. 73 16 JNB SHORT Ekd5.0043C55A
0043C561 |. /75 26 JNZ SHORT Ekd5.0043C589
0043C563 |. |837D 0C 01 CMP DWORD PTR SS:[EBP+C],1
0043C567 |. |74 1C JE SHORT Ekd5.0043C585
0043C569 |. |837D 08 02 CMP DWORD PTR SS:[EBP+8],2
0043C56D |. |73 16 JNB SHORT Ekd5.0043C585
0043C58C |. /75 24 JNZ SHORT Ekd5.0043C5B2
0043C58E |. |837D 0C 01 CMP DWORD PTR SS:[EBP+C],1
0043C592 |. |74 1C JE SHORT Ekd5.0043C5B0
0043C594 |. |837D 08 02 CMP DWORD PTR SS:[EBP+8],2
0043C598 |. |73 16 JNB SHORT Ekd5.0043C5B0
示例
本例是用来获取0号武将当前功勋总和
5:变量测试 无;Var90
0:事件结束
77:变量运算 指针变量(p) 0 = 常数 5276672 ; 先给指针变量(p) 0 赋值5276672(H508400 功勋起始地址)
77:变量运算 整型变量 0 = 常数 0 ; 用来保存最终结果,所以先清零
77:变量运算 整型变量 1 = 常数 0 ; 计数器 先清零
[color=blue]1:子事件设定
[/color] 79:变量测试 整型变量(a) 1 <= 常数 4 ;功勋共有5个,所以计数器要设置5次,从0开始计数
77:变量运算 整型变量 4076 = 常数 2 ;功勋为word型,所以要设置4076=2
[color=red]77:变量运算 整型变量 0 += 指针变量(*p) 0 [/color];把当前指针地址的数据累加到 整型变量 0中
77:变量运算 整型变量 4076 = 常数 0 ;下面要设置指针了,所以要设置4076=0,dword运算
77:变量运算 指针变量(p) 0 += 常数 2 ;指针加2,指向下一个功勋地址
77:变量运算 整型变量 1 += 常数 1 ;计数器+1
76:无条件跳转 81 ;跳转到蓝色的指令处
0:事件结束
b:变量赋值 Var90 true
0:事件结束
最终结果就是0号武将的5项功勋值总和保存在整形变量0中
注意红色的这句,在以前的版本里,只能得到dword型数据
以上代码5.6 5.7通用
2011-4-10 23:20
513633522
不看内容,先占位置:hz1018:
2011-4-10 23:32
513633522
:hz1026:原来这个啊!!对这种高级应用还不太理解,慢慢来
今天还在某个曹操传群(其实就是那个群:hz1016:)里讨论关于曹操传引擎最近10年的发展:
牛X人物贡献(……此处略去N个字:hz1003:):
第一代:东方教主
第二代:慕容雪芸
第三代:岱瀛
第四代:star175、godtybe
第五代:未知……
2011-4-11 08:11
冰麒麟
强大的byteq指针5.6,5.7引擎才能用。无福使用。。
2011-4-11 22:37
q19961121
感谢STAR兄,这样功勋计算应该好弄多了。
2011-4-16 11:41
砖家叫兽
修改内部信息
2 内部信息
AND P1,255 单字节
AND P1,65535 双字节
然后仍旧作四字节判断
2011-4-17 08:47
王友良
很好,很强大,虽然不懂,但还是要支持!
页:
[1]
Powered by Discuz! Archiver 5.0.0
© 2001-2006 Comsenz Inc.