没错,动态商店的功能旧引擎就有了,以岳飞传为例,只是地址稍稍不同而已。
:00472C30 55 push ebp
:00472C31 8BEC mov ebp, esp
:00472C33 51 push ecx
:00472C34 894DFC mov dword ptr [ebp-04], ecx
:00472C37 E81395F9FF call 0040C14F--->计算我军最高15人的平均等级(即加入的默认等级)
:00472C3C 8B5508 mov edx, dword ptr [ebp+08]
:00472C3F 81E2FF000000 and edx, 000000FF
:00472C45 E9760CF9FF jmp 004038C0
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00403919(U)
|
:00472C4A 8BE5 mov esp, ebp
:00472C4C 5D pop ebp
:00472C4D C20400 ret 0004
:004038C0 33C9 xor ecx, ecx
:004038C2 3C14 cmp al, 14--->检查我军所有人的平均等级是否20级,确定是否卖出全部低级物品和三种中级物品
:004038C4 7224 jb 004038EA
:004038C6 41 inc ecx
:004038C7 3C16 cmp al, 16--->检查我军所有人的平均等级是否22级,确定是否卖出六种低级物品和六种中级物品
:004038C9 721F jb 004038EA
:004038CB 41 inc ecx
:004038CC 3C18 cmp al, 18--->检查我军所有人的平均等级是否24级,确定是否卖出三种低级物品和全部中级物品
:004038CE 721A jb 004038EA
:004038D0 41 inc ecx
:004038D1 3C1A cmp al, 1A--->检查我军所有人的平均等级是否26级,确定是否卖出全部中级物品
:004038D3 7215 jb 004038EA
:004038D5 41 inc ecx
:004038D6 3C28 cmp al, 28--->检查我军所有人的平均等级是否40级,确定是否卖出全部中级物品和三种高级物品
:004038D8 7210 jb 004038EA
:004038DA 41 inc ecx
:004038DB 3C2A cmp al, 2A--->检查我军所有人的平均等级是否42级,确定是否卖出六种中级物品和六种高级物品
:004038DD 720B jb 004038EA
:004038DF 41 inc ecx
:004038E0 3C2C cmp al, 2C--->检查我军所有人的平均等级是否44级,确定是否卖出三种中级物品和全部高级物品
:004038E2 7206 jb 004038EA
:004038E4 41 inc ecx
:004038E5 3C2E cmp al, 2E--->检查我军所有人的平均等级是否46级,确定是否卖出全部高级物品
:004038E7 7201 jb 004038EA
:004038E9 41 inc ecx
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004038C4(C), :004038C9(C), :004038CE(C), :004038D3(C), :004038D8(C)
|:004038DD(C), :004038E2(C), :004038E7(C)
|
:004038EA 8A811E394000 mov al, byte ptr [ecx+0040391E]--->根据ecx由0到8求出有多少种武器防具可卖。
:004038F0 2AD0 sub dl, al
:004038F2 7317 jnb 0040390B--->所求道具在exe列表之外,取data中的道具
:004038F4 02D0 add dl, al
:004038F6 8BC1 mov eax, ecx
:004038F8 2403 and al, 03--->初中高级同样处理
:004038FA 6BC00C imul eax, 0000000C--->道具列表偏移地址
:004038FD 8A841027394000 mov al, byte ptr [eax+edx+00403927]--->eax+00403927为道具列表首地址, edx为第几种道具
:00403904 C1E902 shr ecx, 02
:00403907 02C1 add al, cl--->道具升级
:00403909 EB09 jmp 00403914
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004038F2(C)
|
:0040390B 8B4DFC mov ecx, dword ptr [ebp-04]--->data中出售的道具
:0040390E 8D4C1108 lea ecx, dword ptr [ecx+edx+08]
:00403912 8B01 mov eax, dword ptr [ecx]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00403909(U)
|
:00403914 25FF000000 and eax, 000000FF
:00403919 E92CF30600 jmp 00472C4A
:0040391E 090C0C0C090C0C0C09--->道具数量
:00403927 000306090C0F122629000000--->只有同级道具的情况,最后三字节浪费
:00403933 00030607090A0C0F1226292A--->三种道具升级
:0040393F 000103070A0C0F101226272A--->六种道具升级
:0040394B 010304070A0C0D101213272A--->全部道具升级,保留最后升级的三种的对应低级道具出售
[ 本帖最后由 周瑜 于 2008-10-15 10:44 编辑 ]
|