8月23日120版已全部更新
捡物和开NPC对话框换了个新的函数,感觉简单点
关于学CALL及DELPHI
我也发个武林的资料 非常齐全 (120版)
快捷键CALL
00546543 8B10 mov edx, dword ptr [eax] //这里的eax是下面的KuaiJie的值
00546545 8BC8 mov ecx, eax
00546547 FF52 08 call dword ptr [edx+8]
键位1~9,
KuaiJie=[[[[[[基址]+&h24]+8F0]+C]+4*n] n=0~9 (1键为0,2键为1。。。)
键位F1~F8,
KuaiJie=[[[[[[基址]+&h24]+8FC]+C]+4*n] n=0~7 (F1-F8)
( 键位偏移120版已变动)
mov ecx,kuaijie
mov edx,[ecx]
mov eax,[edx+8]
call eax
代码看132楼
走路
08090000 mov ecx, dword ptr [ebx+908] / /ECX =[[[基址]+$24]+$908]
004667B4 6A 01 push 1
004667B6 E8 156A0000 call 0046D1D0
004667BB 8D4C24 50 lea ecx, dword ptr [esp+50]
004667BF 8BF0 mov esi, eax
004667C1 33FF xor edi, edi
004667C3 51 push ecx
004667C4 57 push edi
004667C5 8BCE mov ecx, esi
004667C7 E8 04B10000 call 004718D0
004667E3 8B8B 08090000 mov ecx, dword ptr [ebx+908]
004667E9 57 push edi
004667EA 6A 01 push 1
004667EC 56 push esi
004667ED 6A 01 push 1
004667EF E8 4C6E0000 call 0046D640
修改跑路目的地坐标参照我 以前的列子在13楼 ,偏移按照现在的
自动寻路 参考 http://www.ghoffice.com/bbs/read.php?tid-35721.html的1楼
004F3277 56 push esi //地图索引
004F3280 68 48799000 push 00907948 //传入的目标坐标存在这
004F3289 51 push ecx //当前人物坐标地址
004F328A B9 F01B9000 mov ecx, 00901BF0
004F3293 E8 486DF3FF call 00429FE0
地图索引=[[[基址]+$8]+$88]
TAB
将ECX=[[基址]+24]
00455961 50 push eax //压入的是一个堆栈地址,我们push 0就可以了
00455962 E8 79660000 call 0045BFE0
选怪
00466608 56 push esi //怪ID
0046660F 8B0D 3C1C9000 mov ecx, dword ptr [901C3C]
00466615 8B49 20 mov ecx, dword ptr [ecx+20]
00466618 81C1 D4000000 add ecx, 0D4
0046661E E8 9D4B1100 call 0057B1C0
选怪发包
005A55C5 66:C706 0200 mov word ptr [esi], 2 // ESi 为你的包指针
005A55CA 8946 02 mov dword ptr [esi+2], eax //怪ID
005A55CD 8B0D 3C1C9000 mov ecx, dword ptr [901C3C]
005A55D3 6A 06 push 6
005A55D5 56 push esi
005A55D6 8B49 20 mov ecx, dword ptr [ecx+20]
005A55D9 E8 F2B2FDFF call 005808D0
不会发包的见 本贴120楼
技能
0049B33A 8B0D 3C1C9000 mov ecx, dword ptr [901C3C]
0049B343 6A FF push -1
0049B345 6A 00 push 0
0049B347 8B51 1C mov edx, dword ptr [ecx+1C]
0049B34A 6A 00 push 0
0049B34C 50 push eax//技能ID
0049B34D 8B4A 24 mov ecx, dword ptr [edx+24]
0049B350 E8 2B76FCFF call 00462980
技能数量=[[[基址]+$24]+$934]
技能的ID=[[[[[基址]+$24]+$930]+i*4]+$8] //I为技能的数量但必须从0开始算 就是上面那个数值-1
技能名称=[[[[[[[[基址]+$24]+$930]+i*4]+$4]+$4]+$63]+0] 8.23偏移更新
连续技能
0049C963 8B0D 3C1C9000 mov ecx, dword ptr [901C3C]
0049C969 50 push eax//连续技能位置
0049C96A 8B51 1C mov edx, dword ptr [ecx+1C]
0049C96D 8B4A 24 mov ecx, dword ptr [edx+24]
0049C970 E8 EBEDFCFF call 0046B760
打坐
004539E6 E8 45221500 call 005A5C30
取消打坐
004539F0 E8 7B221500 call 005A5C70
普通攻击
00475B2C E8 BFFA1200 call 005A55F0
死亡回城
0057B2BC E8 4FA70200 call 005A5A10
接任务
0051A18A 57 push edi //管理员编号
0051A18B 53 push ebx //任务编号
0051A18C E8 0FD00800 call 005A71A0
0051A191 83C4 08 add esp, 8
买物 http://www.ghoffice.com/bbs/read.php?tid-35426.html
004684FB 51 push ecx //这是存物品信息的指针
004684FC 50 push eax //物品组数
004684FD E8 7EE91300 call 005A6E80
00468502 83C4 08 add esp, 8//这个不要忘了,不然堆栈不平衡
卖物 同买物
005857D1 52 push edx
005857D2 55 push ebp
005857D3 E8 28170200 call 005A6F00
005857D8 83C4 08 add esp, 8
扔物
00585523 50 push eax//数量
00585524 56 push esi //位置,0开始
00585525 E8 06170200 call 005A6C30
0058552A 83C4 08 add esp, 8
捡物 http://www.ghoffice.com/bbs/read.php?fid-74-tid-35419.html
0057B19F 50 push eax / /[..+$110]
0057B1A0 57 push edi / /[..+$10C]
0057B1A1 E8 8AA40200 call 005A5630
0057B1A6 83C4 08 add esp, 8
捡物CALL我换了个函数,注意后面加add esp, 8,可以不考虑ECX
原来那个
004759E0 8B0D 3C1C9000 mov ecx, dword ptr [901C3C]
004759E6 8B97 10010000 mov edx, dword ptr [edi+110]
004759EC 8B46 20 mov eax, dword ptr [esi+20]
004759EF 52 push edx
004759F0 8B49 20 mov ecx, dword ptr [ecx+20]
004759F3 50 push eax
004759F4 81C1 D4000000 add ecx, 0D4
004759FA E8 51571000 call 0057B150
使用物品
00462781 6A 01 push 1
00462783 52 push edx / /[[包囊物品指针]+8] 同捡物的+110
00462784 50 push eax / /物品格子序号
00462785 6A 00 push 0
00462787 8D8E D4000000 lea ecx, dword ptr [esi+D4]
0046278D E8 EE871100 call 0057AF80
打开NPC对话框
0047590B 8B15 3C1C9000 mov edx, dword ptr [901C3C]
00475911 51 push ecx / / NPC ID
00475912 8B4A 20 mov ecx, dword ptr [edx+20]
00475915 81C1 D4000000 add ecx, 0D4
0047591B E8 605B1000 call 0057B480
取消NPC对话框
006B8090 68 ECFA8B00 push 008BFAEC ; ASCII "IDCANCEL"
006B8095 8BCE mov ecx, esi
006B8097 E8 04FEFFFF call 006B7EA0
ecx好象是对话框地址
实现代码看本贴124楼
跳跃
ECX=[[基址]+24]
004557D5 50 push eax //eax=@N ,n=$121
004557D6 E8 954D0000 call 0045A570
捡物和开NPC对话框换了个新的函数,感觉简单点
关于学CALL及DELPHI
我也发个武林的资料 非常齐全 (120版)
快捷键CALL
00546543 8B10 mov edx, dword ptr [eax] //这里的eax是下面的KuaiJie的值
00546545 8BC8 mov ecx, eax
00546547 FF52 08 call dword ptr [edx+8]
键位1~9,
KuaiJie=[[[[[[基址]+&h24]+8F0]+C]+4*n] n=0~9 (1键为0,2键为1。。。)
键位F1~F8,
KuaiJie=[[[[[[基址]+&h24]+8FC]+C]+4*n] n=0~7 (F1-F8)
( 键位偏移120版已变动)
mov ecx,kuaijie
mov edx,[ecx]
mov eax,[edx+8]
call eax
代码看132楼
走路
08090000 mov ecx, dword ptr [ebx+908] / /ECX =[[[基址]+$24]+$908]
004667B4 6A 01 push 1
004667B6 E8 156A0000 call 0046D1D0
004667BB 8D4C24 50 lea ecx, dword ptr [esp+50]
004667BF 8BF0 mov esi, eax
004667C1 33FF xor edi, edi
004667C3 51 push ecx
004667C4 57 push edi
004667C5 8BCE mov ecx, esi
004667C7 E8 04B10000 call 004718D0
004667E3 8B8B 08090000 mov ecx, dword ptr [ebx+908]
004667E9 57 push edi
004667EA 6A 01 push 1
004667EC 56 push esi
004667ED 6A 01 push 1
004667EF E8 4C6E0000 call 0046D640
修改跑路目的地坐标参照我 以前的列子在13楼 ,偏移按照现在的
自动寻路 参考 http://www.ghoffice.com/bbs/read.php?tid-35721.html的1楼
004F3277 56 push esi //地图索引
004F3280 68 48799000 push 00907948 //传入的目标坐标存在这
004F3289 51 push ecx //当前人物坐标地址
004F328A B9 F01B9000 mov ecx, 00901BF0
004F3293 E8 486DF3FF call 00429FE0
地图索引=[[[基址]+$8]+$88]
TAB
将ECX=[[基址]+24]
00455961 50 push eax //压入的是一个堆栈地址,我们push 0就可以了
00455962 E8 79660000 call 0045BFE0
选怪
00466608 56 push esi //怪ID
0046660F 8B0D 3C1C9000 mov ecx, dword ptr [901C3C]
00466615 8B49 20 mov ecx, dword ptr [ecx+20]
00466618 81C1 D4000000 add ecx, 0D4
0046661E E8 9D4B1100 call 0057B1C0
选怪发包
005A55C5 66:C706 0200 mov word ptr [esi], 2 // ESi 为你的包指针
005A55CA 8946 02 mov dword ptr [esi+2], eax //怪ID
005A55CD 8B0D 3C1C9000 mov ecx, dword ptr [901C3C]
005A55D3 6A 06 push 6
005A55D5 56 push esi
005A55D6 8B49 20 mov ecx, dword ptr [ecx+20]
005A55D9 E8 F2B2FDFF call 005808D0
不会发包的见 本贴120楼
技能
0049B33A 8B0D 3C1C9000 mov ecx, dword ptr [901C3C]
0049B343 6A FF push -1
0049B345 6A 00 push 0
0049B347 8B51 1C mov edx, dword ptr [ecx+1C]
0049B34A 6A 00 push 0
0049B34C 50 push eax//技能ID
0049B34D 8B4A 24 mov ecx, dword ptr [edx+24]
0049B350 E8 2B76FCFF call 00462980
技能数量=[[[基址]+$24]+$934]
技能的ID=[[[[[基址]+$24]+$930]+i*4]+$8] //I为技能的数量但必须从0开始算 就是上面那个数值-1
技能名称=[[[[[[[[基址]+$24]+$930]+i*4]+$4]+$4]+$63]+0] 8.23偏移更新
连续技能
0049C963 8B0D 3C1C9000 mov ecx, dword ptr [901C3C]
0049C969 50 push eax//连续技能位置
0049C96A 8B51 1C mov edx, dword ptr [ecx+1C]
0049C96D 8B4A 24 mov ecx, dword ptr [edx+24]
0049C970 E8 EBEDFCFF call 0046B760
打坐
004539E6 E8 45221500 call 005A5C30
取消打坐
004539F0 E8 7B221500 call 005A5C70
普通攻击
00475B2C E8 BFFA1200 call 005A55F0
死亡回城
0057B2BC E8 4FA70200 call 005A5A10
接任务
0051A18A 57 push edi //管理员编号
0051A18B 53 push ebx //任务编号
0051A18C E8 0FD00800 call 005A71A0
0051A191 83C4 08 add esp, 8
买物 http://www.ghoffice.com/bbs/read.php?tid-35426.html
004684FB 51 push ecx //这是存物品信息的指针
004684FC 50 push eax //物品组数
004684FD E8 7EE91300 call 005A6E80
00468502 83C4 08 add esp, 8//这个不要忘了,不然堆栈不平衡
卖物 同买物
005857D1 52 push edx
005857D2 55 push ebp
005857D3 E8 28170200 call 005A6F00
005857D8 83C4 08 add esp, 8
扔物
00585523 50 push eax//数量
00585524 56 push esi //位置,0开始
00585525 E8 06170200 call 005A6C30
0058552A 83C4 08 add esp, 8
捡物 http://www.ghoffice.com/bbs/read.php?fid-74-tid-35419.html
0057B19F 50 push eax / /[..+$110]
0057B1A0 57 push edi / /[..+$10C]
0057B1A1 E8 8AA40200 call 005A5630
0057B1A6 83C4 08 add esp, 8
捡物CALL我换了个函数,注意后面加add esp, 8,可以不考虑ECX
原来那个
004759E0 8B0D 3C1C9000 mov ecx, dword ptr [901C3C]
004759E6 8B97 10010000 mov edx, dword ptr [edi+110]
004759EC 8B46 20 mov eax, dword ptr [esi+20]
004759EF 52 push edx
004759F0 8B49 20 mov ecx, dword ptr [ecx+20]
004759F3 50 push eax
004759F4 81C1 D4000000 add ecx, 0D4
004759FA E8 51571000 call 0057B150
使用物品
00462781 6A 01 push 1
00462783 52 push edx / /[[包囊物品指针]+8] 同捡物的+110
00462784 50 push eax / /物品格子序号
00462785 6A 00 push 0
00462787 8D8E D4000000 lea ecx, dword ptr [esi+D4]
0046278D E8 EE871100 call 0057AF80
打开NPC对话框
0047590B 8B15 3C1C9000 mov edx, dword ptr [901C3C]
00475911 51 push ecx / / NPC ID
00475912 8B4A 20 mov ecx, dword ptr [edx+20]
00475915 81C1 D4000000 add ecx, 0D4
0047591B E8 605B1000 call 0057B480
取消NPC对话框
006B8090 68 ECFA8B00 push 008BFAEC ; ASCII "IDCANCEL"
006B8095 8BCE mov ecx, esi
006B8097 E8 04FEFFFF call 006B7EA0
ecx好象是对话框地址
实现代码看本贴124楼
跳跃
ECX=[[基址]+24]
004557D5 50 push eax //eax=@N ,n=$121
004557D6 E8 954D0000 call 0045A570