标题:
毅兄请帮忙指点下,谢谢
[打印本页]
作者:
aaa132536
时间:
2013-8-17 16:57
标题:
毅兄请帮忙指点下,谢谢
如图,宝物有3个特性栏,要怎样改才能在特性栏没特性时自动隐藏(特性栏是参考毅兄你的神之奖励版中武将技能说明栏做的)
[
本帖最后由 aaa132536 于 2013-8-17 17:00 编辑
]
图片附件:
QQ图片20130817164334.jpg
(2013-8-17 16:57, 17.94 K) / 该附件被下载次数 79
http://xycq.org.cn/forum/attachment.php?aid=129142
作者:
godtype
时间:
2013-8-17 17:51
http://www.xycq.net/forum/thread-279509-1-1.html
作者:
aaa132536
时间:
2013-8-17 18:31
恩,毅兄要达到我的目的是不是要用到下面这个哦
项目是否出现
PUSH 0/5
PUSH ID
PUSH [EBP+8]
CALL [4862DC]
PUSH EAX
CALL [4862E0]
作者:
godtype
时间:
2013-8-17 18:51
试试就知道啦。
作者:
aaa132536
时间:
2013-8-17 19:35
呵呵,谢谢毅兄,我去试下
作者:
aaa132536
时间:
2013-8-19 21:22
毅兄,问下点击装备特性会弹出编号为402的说明框,这个要这么做哦,谢谢。
作者:
godtype
时间:
2013-8-20 09:11
标题:
回复 #6 aaa132536 的帖子
你要找到调用这个对话框的地方,再根据里面的函数找到111那部分来添加ID。
作者:
冰麒麟
时间:
2013-8-20 10:53
同在研究神将版的绝招说明弹框。参考了圣三的例子,找到了神将版的一些相关编号代码位置,但还是不太明白,水平不够。求毅哥神将版的更多解释。
004BFFFF 008B 4D90E8C0 ADD BYTE PTR DS:[EBX+C0E8904D],CL
004C0005 0A01 OR AL,BYTE PTR DS:[ECX]
004C0007 0083 F8447602 ADD BYTE PTR DS:[EBX+27644F8],AL
004C000D 33C0 XOR EAX,EAX
004C000F 50 PUSH EAX
004C0010 50 PUSH EAX
004C0011 68 02080000 PUSH 802
004C0016 FF75 08 PUSH DWORD PTR SS:[EBP+8]
004C0019 FF15 DC624800 CALL DWORD PTR DS:[<&USER32.GetDlgItem>] ; USER32.GetDlgItem
004C001F 50 PUSH EAX
004C0020 FF15 E8624800 CALL DWORD PTR DS:[<&USER32.EnableWindow>; USER32.EnableWindow
004C0026 58 POP EAX
004C0027 8BD0 MOV EDX,EAX
004C0029 42 INC EDX
004C002A B9 00E04B00 MOV ECX,Ekd5.004BE000
004C002F 8911 MOV DWORD PTR DS:[ECX],EDX
004C0031 8B0C85 A00B4F00 MOV ECX,DWORD PTR DS:[EAX*4+4F0BA0]
004C0038 51 PUSH ECX
004C0039 68 A6050000 PUSH 5A6
004C003E FF75 08 PUSH DWORD PTR SS:[EBP+8]
004C0041 FF15 D8624800 CALL DWORD PTR DS:[<&USER32.SetDlgItemTe>; USER32.SetDlgItemTextA
004C0047 8B4D 90 MOV ECX,DWORD PTR SS:[EBP-70]
004C004A 33D2 XOR EDX,EDX
004C004C - E9 EB87FBFF JMP Ekd5.0047883C
004C0051 90 NOP
004C0052 0000 ADD BYTE PTR DS:[EAX],AL
004C0054 0000 ADD BYTE PTR DS:[EAX],AL
004C0056 0000 ADD BYTE PTR DS:[EAX],AL
004C0058 FF75 08 PUSH DWORD PTR SS:[EBP+8]
004C005B E8 06000000 CALL Ekd5.004C0066
004C0060 - E9 3594FBFF JMP Ekd5.0047949A
004C0066 55 PUSH EBP
004C0067 8BEC MOV EBP,ESP
004C0069 83EC 20 SUB ESP,20
004C006C B9 00E04B00 MOV ECX,Ekd5.004BE000
004C0071 894D E0 MOV DWORD PTR SS:[EBP-20],ECX
004C0074 33C0 XOR EAX,EAX
004C0076 48 DEC EAX
004C0077 8941 06 MOV DWORD PTR DS:[ECX+6],EAX
004C007A 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C]
004C007D E8 1EE3F4FF CALL Ekd5.0040E3A0
004C0082 FF75 08 PUSH DWORD PTR SS:[EBP+8]
004C0085 68 92010000 PUSH 192
004C008A 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C]
004C008D E8 06D0FAFF CALL Ekd5.0046D098
004C0092 8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20]
004C0095 33C0 XOR EAX,EAX
004C0097 8941 04 MOV DWORD PTR DS:[ECX+4],EAX
004C009A 8941 08 MOV DWORD PTR DS:[ECX+8],EAX
004C009D 8BE5 MOV ESP,EBP
004C009F 5D POP EBP
004C00A0 C2 0400 RETN 4
004C0130 55 PUSH EBP
004C0131 8BEC MOV EBP,ESP
004C0133 81EC D4000000 SUB ESP,0D4
004C0139 B9 00E04B00 MOV ECX,Ekd5.004BE000
004C013E 8B01 MOV EAX,DWORD PTR DS:[ECX]
004C0140 48 DEC EAX
004C0141 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX
004C0144 8B0C85 A00B4F00 MOV ECX,DWORD PTR DS:[EAX*4+4F0BA0]
004C014B 51 PUSH ECX
004C014C 68 03080000 PUSH 803
004C0151 FF75 08 PUSH DWORD PTR SS:[EBP+8]
004C0154 FF15 D8624800 CALL DWORD PTR DS:[<&USER32.SetDlgItemTe>; USER32.SetDlgItemTextA
004C015A 6A 00 PUSH 0
004C015C 68 80000000 PUSH 80
004C0161 6A 03 PUSH 3
004C0163 6A 00 PUSH 0
004C0165 6A 01 PUSH 1
004C0167 68 00000080 PUSH 80000000
004C016C 68 68BB4800 PUSH Ekd5.0048BB68 ; ASCII "IMSG.E5"
004C0171 FF15 18614800 CALL DWORD PTR DS:[<&KERNEL32.CreateFile>; kernel32.CreateFileA
004C0177 83F8 FF CMP EAX,-1
004C017A 75 04 JNZ SHORT Ekd5.004C0180
004C017C EB 7A JMP SHORT Ekd5.004C01F8
004C017E EB 03 JMP SHORT Ekd5.004C0183
004C0180 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
004C0183 6A 02 PUSH 2
004C0185 6A 00 PUSH 0
004C0187 6A 00 PUSH 0
004C0189 FF75 FC PUSH DWORD PTR SS:[EBP-4]
004C018C FF15 04614800 CALL DWORD PTR DS:[<&KERNEL32.SetFilePoi>; kernel32.SetFilePointer
004C0192 3D 50F00500 CMP EAX,5F050
004C0197 75 56 JNZ SHORT Ekd5.004C01EF
004C0199 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004C019C 90 NOP
004C019D 69C0 C8000000 IMUL EAX,EAX,0C8
004C01A3 05 905F0100 ADD EAX,15F90
004C01A8 6A 00 PUSH 0
004C01AA 6A 00 PUSH 0
004C01AC 50 PUSH EAX
004C01AD FF75 FC PUSH DWORD PTR SS:[EBP-4]
004C01B0 FF15 04614800 CALL DWORD PTR DS:[<&KERNEL32.SetFilePoi>; kernel32.SetFilePointer
004C01B6 6A 00 PUSH 0
004C01B8 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
004C01BB 50 PUSH EAX
004C01BC 68 C8000000 PUSH 0C8
004C01C1 8D85 2CFFFFFF LEA EAX,DWORD PTR SS:[EBP-D4]
004C01C7 50 PUSH EAX
004C01C8 FF75 FC PUSH DWORD PTR SS:[EBP-4]
004C01CB FF15 14614800 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] ; kernel32.ReadFile
004C01D1 817D F8 C800000>CMP DWORD PTR SS:[EBP-8],0C8
004C01D8 72 15 JB SHORT Ekd5.004C01EF
004C01DA 8D85 2CFFFFFF LEA EAX,DWORD PTR SS:[EBP-D4]
004C01E0 50 PUSH EAX
004C01E1 68 04080000 PUSH 804
004C01E6 FF75 08 PUSH DWORD PTR SS:[EBP+8]
004C01E9 FF15 D8624800 CALL DWORD PTR DS:[<&USER32.SetDlgItemTe>; USER32.SetDlgItemTextA
004C01EF FF75 FC PUSH DWORD PTR SS:[EBP-4]
004C01F2 FF15 08614800 CALL DWORD PTR DS:[<&KERNEL32.CloseHandl>; kernel32.CloseHandle
004C01F8 8BE5 MOV ESP,EBP
004C01FA 5D POP EBP
004C01FB C2 0400 RETN 4
作者:
godtype
时间:
2013-8-20 10:56
那个版本的弹出是蛇夫座改的,后来我都不用了。
作者:
aaa132536
时间:
2013-8-20 11:15
标题:
回复 #7 godtype 的帖子
恩,还是看不明白,毅兄能不能以下面例子为例教我下怎么做哦,谢谢。
0040C843这个函数是显示装备画面,IP:5EB是装备的一个特性IP,现在我要点击IP为5EB的特性按钮会弹出IP为192的对话框,这个要这么做哦,新代码从0040CAF4写入。
附件:
Ekd5.rar
(2013-8-20 11:15, 216.85 K) / 该附件被下载次数 77
http://xycq.org.cn/forum/attachment.php?aid=129175
作者:
godtype
时间:
2013-8-20 11:46
004700C4 /$ 55 PUSH EBP
004700C5 |. 8BEC MOV EBP,ESP
004700C7 |. 51 PUSH ECX
004700C8 |. 894D FC MOV DWORD PTR SS:[EBP-4],ECX
004700CB |. 817D 0C 950000>CMP DWORD PTR SS:[EBP+C],95
004700D2 |. 73 29 JNB SHORT 004700FD
004700D4 |. 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
004700D7 |. 8941 24 MOV DWORD PTR DS:[ECX+24],EAX
004700DA |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
004700DD |. 8A45 10 MOV AL,BYTE PTR SS:[EBP+10]
004700E0 |. 8842 28 MOV BYTE PTR DS:[EDX+28],AL
004700E3 |. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
004700E6 |. 8A55 14 MOV DL,BYTE PTR SS:[EBP+14]
004700E9 |. 8851 29 MOV BYTE PTR DS:[ECX+29],DL
004700EC |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
004700EF |. 50 PUSH EAX ; /Arg2
004700F0 |. 68 A7000000 PUSH 0A7 ; |Arg1 = 000000A7
004700F5 |. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4] ; |
004700F8 |. E8 9BCFFFFF CALL 0046D098 ; \0046D098
004700FD |> 8BE5 MOV ESP,EBP
004700FF |. 5D POP EBP
00470100 \. C2 1000 RETN 10
要在CALL 0046D098 之前,添加一段
MOV DWORD [486458],XXX
在CALL 0046D098 之后,添加一段
MOV DWORD [486458],40E2C0
xxx是新的点击函数,自己参考圣三战前准备里面的111部分来写。
作者:
aaa132536
时间:
2013-8-20 12:14
标题:
回复 #11 godtype 的帖子
谢谢毅兄,我去试下
作者:
aaa132536
时间:
2013-8-20 22:24
标题:
回复 #11 godtype 的帖子
恩,水平有限,还是看不明白,除了改废几个EXE没有其它收获,毅兄有空的话能不能帮我改个做案例,谢谢。
作者:
godtype
时间:
2013-8-20 23:06
标题:
回复 #13 aaa132536 的帖子
案例就是圣三战前吃果。
有现成的EXE,还配上代码。
作者:
aaa132536
时间:
2013-8-20 23:27
标题:
回复 #14 godtype 的帖子
恩,那我去下载个圣三测试下,光看代码还是不明白。
作者:
aaa132536
时间:
2013-8-23 00:59
几个问题请毅兄帮忙指点下,谢谢。
1.买进武器、防具时Exp是默认为0,现要改为满值,这个要改哪里。
2.敌方的出场武器配置在哪里,我打算将出场时武器、防具Exp改为满值。
3.战场上获得道具的地址在哪,我打算修改武器、防具Exp为0时装备损坏,若是普通装备直接销毁,若是宝物则存进仓库。
[
本帖最后由 aaa132536 于 2013-8-23 01:11 编辑
]
作者:
godtype
时间:
2013-8-23 12:12
标题:
回复 #16 aaa132536 的帖子
1、在周瑜的部分函数帖中找到“更换装备时设置武将ecx第08栈装备,代码0C栈、等级10栈、经验14栈”,然后下断点逆向追查
2、看我的DATA扩展
3、看岱瀛的泛谈曹操传剧本,找到关指令部分,然后按顺序找到需要改的指令
作者:
aaa132536
时间:
2013-8-23 12:40
标题:
回复 #17 godtype 的帖子
哦,谢谢,我去试下
作者:
aaa132536
时间:
2013-8-25 11:00
00407B16 |> \6A 01 push 1 ; /Arg8 = 00000001
00407B18 |. 6A 00 push 0 ; |Arg7 = 00000000
00407B1A |. 8B45 FC mov eax,dword ptr ss:[ebp-4] ; |
00407B1D |. FFB0 2C040000 push dword ptr ds:[eax+42C] ; |Arg6
00407B23 |. FFB0 28040000 push dword ptr ds:[eax+428] ; |Arg5
00407B29 |. 6A 00 push 0 ; |Arg4 = 00000000
00407B2B |. FF75 F8 push dword ptr ss:[ebp-8] ; |Arg3
00407B2E |. FF70 01 push dword ptr ds:[eax+1] ; |Arg2
00407B31 |. FF30 push dword ptr ds:[eax] ; |Arg1
00407B33 |. E8 4C8E0400 call Ekd5.00450984 ; \Ekd5.00450984
ds:[eax+42C] 为正数代表武器经验增加,现我要将它改为负数,结果武器经验减少了,但武器经验显示时会跳动一串数字,请问下毅兄,这个要怎么改显示时武器经验会正常减少,不会再跳动数字,谢谢。
作者:
godtype
时间:
2013-8-25 11:59
那当然就在450984里面找到相关的位置来改了。
作者:
aaa132536
时间:
2013-8-25 12:27
哦,我去试下,谢谢。
作者:
aaa132536
时间:
2013-8-28 01:46
几个问题请毅兄帮忙指点下,谢谢。
1.如何读取仓库里的装备,并怎样判断仓库中的最后一件装备,我想做个装备耐久恢复特性,即使是放在仓库里的装备也会恢复耐久。
2.原版的武器类型剑、特殊剑,在游戏中武器属性都是显示剑,现我要把特殊剑改为刀,并在游戏中武器属性是显示刀,请问这个在要哪里改哦。
[
本帖最后由 aaa132536 于 2013-8-28 01:50 编辑
]
作者:
dennis2669
时间:
2013-8-28 10:47
标题:
回复 #22 aaa132536 的帖子
我可以回答2
用ue 查找 劍 的漢字 之後會見到有炮車 槍 連在一起 那改那裡就可以..
最多5個字節..要多就要重新指定..
如果你說普通和特殊都不同...就不會改了= =
作者:
aaa132536
时间:
2013-8-28 13:35
标题:
回复 #23 dennis2669 的帖子
恩,我要的不是这个,我要的是判断武器种类是剑、特殊剑,就显示武器属性为剑的那段代码。
作者:
dennis2669
时间:
2013-8-28 14:31
标题:
回复 #24 aaa132536 的帖子
如果這樣..應該可以逆推..找出常量.
周瑜不是有個代碼.是什麼.讀取裝備的類型嗎??
可能是那個...但是新引擎不肯定
作者:
aaa132536
时间:
2013-8-28 17:38
标题:
回复 #25 dennis2669 的帖子
409540获取道具ecx的类型,辅助则为特殊效果
恩,这个我改过了,没用。显示装备属性不是引用这段代码。
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0