轩辕春秋文化论坛 » 设计与修改 » EXE补充研究及修改


2005-7-9 14:50 东方无翼
EXE补充研究及修改

[quote]原帖由[i]van[/i]于2005-07-08, 23:51:39发表
6、人物上限
基本上不可能,因为内存里所有数据是连续存放的,武将数据在中间,扩展的话必然需要将其移至其它地址。这样就算未扩展,光修改偏移就有240多处,工程量太大 [/quote]
汗,费了几天时间才改出个端倪来。牵扯范围巨大。

[[i] 本帖最后由 东方无翼 于 2006-8-24 14:47 编辑 [/i]]

2005-7-9 19:30 东方无翼
原曹操传只有512个人物(包括武将、小兵等等),其实不少了,但还是不够用  与是设法增大一倍。

因为在内存中,人物数据前后都有其他数据,所以只能重新开辟一块内存用以存放属性。

[color=blue]第一步、分配内存空间[/color]
在游戏启动之初,使用virtualalloc在0x00c60000位置分配长度为0x12000的一段内存。

修改位置:
1、利用0x481583 - - 0x48166d之间的4段约50字节的空间完成内存分配。
2、修改0x481891 位置为 CALL 004815FA。(这个是我随便找的一个比较早的位置  )

[color=blue]第二步、修改偏移[/color]
就是让原来访问内存0x4a1b68的全部转向访问0xc60000

修改位置:太多了。我基本上是替换的,碰上拿不准的再跟一下。

[color=blue]第三步、修改循环次数[/color]
让原本遍历0x200的程序遍历0x400次。

修改位置:同样很多。典型的就是0x41b6a2位置,这里是从data.e5载入数据。

[color=blue]第四步、修改Data.e5[/color]
增加第一个段的内容为原来的两倍。

修改位置:data.e5前端的段信息,从110h到18ch。同时在第一个段的最后增加与第一个段等长的一段内容(长度为0x4000字节)。

[color=blue]第五步、存档、读档[/color]
如果修改好了第三步,存档的时候自然会将多出来的512人保存到sv0?d.e5s存档的最后。只是还读不出来。问题在于读存档的时候指定了文件大小。

修改位置:0x41aebd,修改为PUSH 0A8DC。

[color=blue]扩充修改:[/color]
以上的修改应能保证512-1023号武将可以作为敌人出现。(未经测试,纯属猜测 )下面主要是为了完善新加入的512名武将的功能。
因为游戏本身设定前174人为“特殊武将”,所以在修改的时候也破除了这174人的部分特殊性。

[color=blue]第六步、列传[/color]
原来仅有前174人有列传,现在扩展到所有1024人。需同时修改imsg.e5。
其实是将人物列传的位置移动到imsg.e5的最后,并且补齐1024个。

修改位置:代码中,0x0040bfeb位置,修改为CMP DWORD PTR SS:[EBP+C],400 (循环次数)
0x0040bff9位置修改为ADD EAX,39A (39a指定文件中列传的起始位置)

[color=blue]第七步、上一武将 - - 下一武将[/color]
  对于174号以上的武将,上一武将、下一武将按钮不是灰色的就是按了没效果。

修改位置:地址0x4786e8,修改为CMP DWORD PTR DS:[EAX*4+4B6CF0],400
地址0x479372,修改为CMP DWORD PTR DS:[ECX*4+4B6CF0],400

[color=blue]第八步、武将列表[/color]
点击查看武将列表图标,显示武将列表。

修改位置:0x469dd4 ,改为CMP DWORD PTR SS:[EBP-2C],400

[color=blue]第九步:出战选择[/color]
原来出战时,512以后武将不显示。

修改位置:0x4186d9,改为CMP DWORD PTR SS:[EBP-18],400

[color=blue]第十步:查看装备列表[/color]
点击上方查看装备列表图标,显示所有装备。原来不显示174以后的武将的装备。

修改位置:0x466D7F,改为CMP DWORD PTR SS:[EBP-8],400

   但是这最后一个修改后又bug。如果你的队伍中有380号以上的武将,用装备列表查看装备的时候会异常退出。
所以建议不要在我方使用380号以上的武将。或者使用下方的装备按钮,这个不会出错。

[color=blue]2006年2月14日更新[/color]
猜测上述BUG可由http://www.xycq.net/index.php?showtopic=66698&view=findpost&p=1186057
此帖中的方法修正。

2005-7-9 19:31 东方无翼
以上说说方法。exe测试中,稍后发布。

2005-7-10 16:34 东方无翼
剧本的指令中,有两个改变人物属性的。
一个是0x38号代码,改变人物基本属性的。
一个是0x4d号代码,就是所谓的站力削弱,改变人物战场属性的。

其中战力削弱,对于战场上的人物,只能减少其hp,而不能增加或者设定hp等于某值,以下修改是增加此功能的。

修改位置:
0x45ac10-0x45accb 这段代码本来是实现减少hp功能的,但是其中冗余代码(至少我感觉是冗余的  ),与是就改变了这段代码。

0045AC10   MOV ECX,DWORD PTR SS:[EBP-4]
0045AC13   AND ECX,0FF
0045AC19   IMUL ECX,ECX,24
0045AC1C   ADD ECX,EKD5_507.004B2C50
0045AC22   CALL EKD5_507.00472C90
0045AC27   MOV EDX,DWORD PTR SS:[EBP+10]
0045AC2A   AND EDX,0FF
0045AC30   PUSH ECX
0045AC31   MOV ECX,DWORD PTR SS:[EBP+24]
0045AC34   AND ECX,0FF
0045AC3A   CMP CL,2
0045AC3D   JNZ SHORT EKD5_507.0045AC43
0045AC3F    ADD EAX,EDX
0045AC41    JMP SHORT EKD5_507.0045AC63
0045AC43   CMP CL,1
0045AC46   JNZ SHORT EKD5_507.0045AC56
0045AC48   CMP EDX,0
0045AC4B   JG SHORT EKD5_507.0045AC52
0045AC4D   MOV EDX,1
0045AC52   MOV EAX,EDX
0045AC54   JMP SHORT EKD5_507.0045AC63
0045AC56   CMP EAX,EDX
0045AC58   JGE SHORT EKD5_507.0045AC61
0045AC5A   MOV EAX,1
0045AC5F   JMP SHORT EKD5_507.0045AC63
0045AC61   SUB EAX,EDX
0045AC63   POP ECX
0045AC64   PUSH EAX                                
0045AC65   CALL EKD5_507.0043F6CD                 
0045AC6A   JMP EKD5_507.0045AD84

之后空余下0x5C字节。

[color=blue]使用方法:剧本中,4d号指令后面,“1800 xxxx  00下降,01设定,02上升”,这段原本在hp改变的情况下是没有用处的。现在设为01则为设定hp,设为02是增加hp,其他为减少hp。(已修正)[/color]

注:还需进一步测试。

2005-7-10 18:59 东方无翼
[color=blue]兵种等级控制[/color]
在剧情代码 0x46友军出场设定 和 0x47敌军出场设定 中,有一段是控制兵种级别的
4500 XXXX,其中XXXX部分指明级别。
也就是让敌人出现60级的小步兵这样的情况。只是据张生说不定什么时候好用  
后来发现又是可恶的174人限制

修改代码:0x004428B8   CMP DWORD PTR DS:[EDX],400

这就可以让此代码对所有1024人有效。
注:同样没有经过周密测试

2005-7-11 12:53 东方无翼
界个界个,据称我拿到的资料太早,对4d代码的控制不对,应该00是减少,01是设定,02是增加,先修正之。
其实把比较1和比较2地方互换即可。

2005-7-13 02:31 幽人独往来
教主的1024DATA也出来了,太守也终于出手了,处于暂时失去可靠的周大的悲痛中的我们,终于又看到了光明  

看到光明之后,就开始贪心了  尤其是太守“两个上限”的解决和教主“一个当前、一个限制”的修正。

下面说说我关于事件代码的贪心建议(用张生的话说叫“近乎无理的要求”  )


1、6我军出场限制(用于R)/4a我军强制出场(用于S)——现在只有五个位置,而如果多一些的话,就可以实现奇袭队、分兵等剧情,那么,这些位置能否扩充?或者使得多个6/4a连用也能分别起作用?(需求度:高)

2、20武将头像状态设置——现在只能选择有限的几张脸,而且只有对固定的人有效,那么能否改成任意制定face号,且对任意人有效?(需求度:低)

3、36武将状态测试——既然能测试动态的HPCur,那么能不能测试Lv呢?甚至于测试当前MP?(需求度:LV—极其迫切/MPCur—低)

4、39武将等级提升——能否变成武将等级“变化”?即加入降低等级的功能。(需求度:一般)

5、4d武将状态变更——既然教主加上了HPCur的+=功能,那么是否还有位置加入MPCur的+=功能呢?(需求度:一般)

2005-7-13 10:05 周瑜
物理伤害公式的修改牵涉太多,务必瞻前顾后、慎之又慎。原代码中的空间基本还是足够,重写也不困难,难的是制定一个各方面兼顾的合理公式。
其实:如以英杰传攻-防/2,加以改进,便是一个不错的选择。

教主的这项修改比我当时增加基本属性上限难多了。当时我只需要给每人增加5个字节,占用了内存中姓名的4个字节和后面1个无用的字节,不需增加内存块大小。存档中增加了5个字节之后,仅仅更改了读档文件大小就OK了。其余就是在每次读取参数、每个公式中,把8位扩展为16位。

如果游戏异常退出,这时点击调试按钮,就能看见执行到哪条代码时异常跳出的。如果正好在刚修改的代码附近,一般都能找到原因。

其余各位的存档修改器、imsg修改器、data修改器要跟上啊。

2005-7-13 18:06 东方无翼
[color=blue]关于物理伤害公式的调整[/color]

因为以后可能调整很多,所以搞了一个通用公式。
[color=blue][(地形修正过的攻击-地形修正过的防御)+等级*等级修正+常数]*总修正*(1+兵种修正)[/color]
这样设定便于调整(不修改代码,只需修改几个字节值),也便于节省代码

0043BD39     IMUL EAX,EAX,1B ;[color=red]可变动点1,1字节。文件中位置:0x3b13b。[/color]
0043BD3C     SHR EAX,3           ;[color=red]可变动点2,1字节。文件中位置:0x3b13e。(可变动点1 / 2^可变动点2)  即为等级修正值[/color]
0043BD3F     ADD EAX,43          ;[color=red]可变动点3,常数,1字节。文件中位置:0x3b141[/color]
0043BD42     MOV ECX,DWORD PTR SS:[EBP-20]
0043BD45     CMP ECX,DWORD PTR SS:[EBP-10]
0043BD48     JB SHORT 0043BD51
0043BD4A     SUB ECX,DWORD PTR SS:[EBP-10]
0043BD4D     ADD EAX,ECX
0043BD4F     JMP SHORT 0043BD61
0043BD51     MOV ECX,DWORD PTR SS:[EBP-10]
0043BD54     SUB ECX,DWORD PTR SS:[EBP-20]
0043BD57     PUSH ECX                                
0043BD58     PUSH EAX
0043BD59     CALL 0047FA9E                    
0043BD5E     ADD ESP,8
0043BD61     IMUL EAX,EAX,3   ;[color=red]可变动点4,1字节。文件中位置:0x3b163。[/color]
0043BD64     SHR EAX,3           ;[color=red]可变动点5,1字节。文件中位置:0x3b166。与等级修正参数类似原理[/color]
0043BD67     CMP EAX,0
0043BD6A     JNZ SHORT  0043BD71
0043BD6C     MOV EAX,1
0043BD71     MOV DWORD PTR SS:[EBP-4],EAX
0043BD74     JMP SHORT 0043BD7E
0043BD76     NOP
0043BD77     NOP
0043BD78     NOP
0043BD79     NOP
0043BD7A     NOP
0043BD7B     NOP
0043BD7C     NOP
0043BD7D     NOP

目前的公式就是
[(地形修正过的攻击-地形修正过的防御)+等级*27/8+67]*3/8*(1+兵种修正)
也就是周大提出的那个。

2005-7-13 21:39 东方无翼
修正神仙教学部分
跟据说岳的情况,将配合的教学的人员改为156号武将,同时压缩了教学的空间。

修改处1
这是上面扩展到1024人物缺漏的部分。
0003438A   MOV DWORD PTR SS:[EBP-10],0C62C28 ;教学中的老师的数据,157号武将
00034391   MOV DWORD PTR SS:[EBP-8],0C60000   ;学生的数据,0号武将
00034398   MOV DWORD PTR SS:[EBP-4],0C62BE0   ;陪读的数据,156号武将


修改处2
00433614    CMP DWORD PTR SS:[EBP-4],4         ;  光标向下移动四格

修改处3
00433DEC    CMP DWORD PTR SS:[EBP-4],4     ;光标向上移动四格

2005-7-14 21:27 东方无翼
苦力活1:[color=blue]检测状态时测试等级[/color]

修改点1、
004113EF     CMP ECX,7
004113F2     JE SHORT EKD5.00411414

修改点2、
改写读取人物属性的函数
00406D87   PUSH EBP
00406D88   MOV EBP,ESP
00406D8A   SUB ESP,8
00406D8D   MOV DWORD PTR SS:[EBP-4],ECX
00406D90   MOV EAX,DWORD PTR SS:[EBP+8]
00406D93   AND EAX,0FF
00406D98   CMP EAX,7
00406D9B   JE SHORT EKD5_900.00406DD6
00406D9D   JMP DWORD PTR DS:[EAX*4+406DDE]
00406DA5   MOV AX,WORD PTR DS:[ECX+11]
00406DA9   JMP SHORT EKD5_900.00406DD8
00406DAB   MOV AX,WORD PTR DS:[ECX+13]
00406DAF   JMP SHORT EKD5_900.00406DD8
00406DB1   MOV AX,WORD PTR DS:[ECX+15]
00406DB5   JMP SHORT EKD5_900.00406DD8
00406DB7   MOV AX,WORD PTR DS:[ECX+17]
00406DBB   JMP SHORT EKD5_900.00406DD8
00406DBD   MOV AX,WORD PTR DS:[ECX+19]
00406DC1   JMP SHORT EKD5_900.00406DD8
00406DC3   MOV EAX,DWORD PTR DS:[ECX+1C]
00406DC6   JMP SHORT EKD5_900.00406DD8
00406DC8   XOR EAX,EAX
00406DCA   MOV AL,BYTE PTR DS:[ECX+20]
00406DCD   JMP SHORT EKD5_900.00406DD8
00406DCF   XOR EAX,EAX
00406DD1   MOV AL,BYTE PTR DS:[ECX+2C]
00406DD4   JMP SHORT EKD5_900.00406DD8
00406DD6   XOR EAX,EAX
00406DD8   MOV ESP,EBP
00406DDA   POP EBP
00406DDB   RETN 4
00406DDE   DD EKD5_900.00406DA5                     ;  Switch table used at 00406D9D
00406DE2   DD EKD5_900.00406DAB
00406DE6   DD EKD5_900.00406DB1
00406DEA   DD EKD5_900.00406DB7
00406DEE   DD EKD5_900.00406DBD
00406DF2   DD EKD5_900.00406DC3
00406DF6   DD EKD5_900.00406DCA
00406DFA   DD EKD5_900.00406DD6
00406DFE   DD EKD5_900.00406DD1
00406E02   NOP
00406E03   NOP
00406E04   NOP
00406E05   NOP
00406E06   NOP
00406E07   NOP
00406E08   NOP
00406E09   NOP
00406E0A   NOP
00406E0B   NOP
00406E0C   NOP
00406E0D   NOP
00406E0E   NOP
00406E0F    NOP
00406E10    NOP
00406E11    NOP
00406E12    NOP
00406E13    NOP
00406E14    NOP
00406E15    NOP
00406E16    NOP

8 为检测等级

苦力活2
[color=blue]事件控制MP+=[/color]
与上面的hp极其相似
0045ACCC   MOV ECX,DWORD PTR SS:[EBP-4]
0045ACCF   AND ECX,0FF
0045ACD5   IMUL ECX,ECX,24
0045ACD8   ADD ECX,EKD5_901.004B2C50
0045ACDE   CALL EKD5_901.00472840
0045ACE3   MOV EDX,DWORD PTR SS:[EBP+10]
0045ACE6   AND EDX,0FF
0045ACEC   PUSH ECX
0045ACED   MOV ECX,DWORD PTR SS:[EBP+74]
0045ACF0   AND ECX,0FF
0045ACF6   CMP CL,2
0045ACF9   JNZ SHORT EKD5_901.0045ACFF
0045ACFB   ADD EAX,EDX
0045ACFD   JMP SHORT EKD5_901.0045AD1F
0045ACFF   CMP CL,1
0045AD02   JNZ SHORT EKD5_901.0045AD12
0045AD04   CMP EDX,0
0045AD07   JG SHORT EKD5_901.0045AD0E
0045AD09   MOV EDX,1
0045AD0E   MOV EAX,EDX
0045AD10  JMP SHORT EKD5_901.0045AD1F
0045AD12   CMP EAX,EDX
0045AD14   JGE SHORT EKD5_901.0045AD1D
0045AD16   MOV EAX,0
0045AD1B   JMP SHORT EKD5_901.0045AD1F
0045AD1D   SUB EAX,EDX
0045AD1F   POP ECX
0045AD20   PUSH EAX                                 
0045AD21   CALL EKD5_901.0043F70E                  
0045AD26   JMP SHORT EKD5_901.0045AD84

以下空余N字节直到0x0045AD83

2005-7-16 12:26 东方无翼
修正新增512名武将对话显示问题。
主要是将几处原来与0x200相比较的改为与0x400相比较。

R剧本人物说话
0042D603     CMP DWORD PTR SS:[EBP+C],400

0042D65A     CMP DWORD PTR SS:[EBP+C],400

0042D6C8     CMP DWORD PTR SS:[EBP+C],400

S剧本人物说话
0042CB7F     CMP DWORD PTR SS:[EBP+C],400

单挑出场
00417591     CMP EDX,400

004175A1     CMP EAX,400

2005-7-16 16:46 东方无翼
[color=blue]修正S战场上新增512人转向和动作[/color]
修改两处。使新增512人战场转向、动作事件有效。

0045743F     CMP DWORD PTR SS:[EBP+8],400

004577D8     CMP DWORD PTR SS:[EBP+8],400


[color=blue]扩展动画为128个[/color]
1、在exe文件最后加入一个段,长0x2000字节。目前仅使用前0x0a00字节,余下的备用。

2、从exe文件偏移9ee00h起到9efffh为动画文件名索引,每四个字节为一个索引,内容为动画文件名在内存中的位置。
exe文件中9f000h到9f800h为动画文件名,每个最多15字节。相对内存位置为4ce200h到4cea00h。

3、修改exe
0041F4F2     CMP ECX,7F
0041F4F5     JLE SHORT 0041F4FE

0041F522     MOV EAX,DWORD PTR DS:[EDX*4+4CE000]

0042F7C7     837D 08 7F     CMP DWORD PTR SS:[EBP+8],7F
0042F7CB     7F 15          JG SHORT 复件_EKD.0042F7E2

2005-7-17 10:58 幽人独往来
苦力活汇总  

剧本事件:
[color=blue]1、4a和6,连续使用生效,或扩展至15人(急)[/color]
2、39等级提升,能否实现降低等级(缓)
3、能不能创造一个事件,对人物的基础值进行运算?(即通过事件,达到吃果子的效果。讨论)
4、能否创造一个事件,来判断玩家是否打通三个结局和集齐全宝物?(讨论)
[color=red]5、8菜单处置,能不能设置其true的时候就使工具栏可用,false的时候屏蔽工具栏(即屏蔽SL)?(一般)
6、36武将状态测试,既然其他的都有了,那么不妨加入一个MPCur的测试吧,加在HPCur和Lv之间。[/color]


DATA:
[color=blue]1、每关商店里出售的商品和喊出的人,只有0~57关,需要扩展(急)[/color]
2、法术后面有五个“终端”,可否利用(缓)


exe其他:
1、玄武、八阵图这两个法术的多重效果是怎么实现的?(讨论)

2005-7-17 13:03 东方无翼
[color=blue]加入武将的兵种等级[/color]
上次周大漏改了,只修改了转职的级别,新加入武将的兵种级别没改。修改两处

0040C493     CMP DWORD PTR SS:[EBP-4],28   ;40级2转
0040C4A2     CMP DWORD PTR SS:[EBP-4],14   ;20级1转

[color=blue]s剧本中,武将强制出场、不出场人数增加为15人[/color]
为防止影响内存中其他数据,将存储强制出场武将的内存移动到4cea00h处,强制不出场的移动到4CEA40h处。
剧本命令4a的格式也发生变化,38和39条目的个数各增加为15个。
注:利用了[color=blue]扩展动画为128个[/color]中增加的那个数据段。

0040CE0D     CMP DWORD PTR SS:[EBP-8],0F
0040CE4A     MOV DWORD PTR DS:[EDX*4+4CEA00],ECX
0040CE65     CMP DWORD PTR SS:[EBP-8],0F
0040CEA2     MOV DWORD PTR DS:[ECX*4+4CEA40],EAX

[quote]
[color=red]此部分代码已修改,见下一帖。[/color]
00415BAA     CMP EDX,0F
00415BC2     MOV DWORD PTR DS:[ECX*4+4CEA00],EAX

00415BE2     CMP EAX,0F
00415BFA     MOV DWORD PTR DS:[ECX*4+4CEA40],EAX
[/quote]

00415DD4     CMP DWORD PTR SS:[EBP-8],0F
00415DE7     MOV DWORD PTR DS:[ECX*4+4CEA00],EAX

00415E02     CMP DWORD PTR SS:[EBP-8],0F
00415E15     MOV DWORD PTR DS:[ECX*4+4CEA40],EAX

0041858E     CMP ECX,0F
0041859C     CMP DWORD PTR DS:[EDX*4+4CEA40],0

004185B2     CMP EAX,0F
004185EB     CMP ECX,0F

004185F9     CMP DWORD PTR DS:[EDX*4+4CEA00],0
0041860B     CMP DWORD PTR DS:[EAX*4+4CEA00],0FFFF
00418621     MOV EDX,DWORD PTR DS:[ECX*4+4CEA00]
0041863D     MOV ECX,DWORD PTR DS:[EAX*4+4CEA00]

00418766     CMP ECX,0F
00418774     MOV EAX,DWORD PTR DS:[EDX*4+4CEA40]

[color=blue]R剧本里强制出场、不出场15人的限制。[/color]

  接着上面S剧本的修改,再改一处即可

0041878D     CMP ECX,0F

2005-7-17 17:59 东方无翼
[color=blue]R、S剧本中,06、4a连续起作用[/color]
在上一帖的修改中,修改了原剧本中06、4a指令的结构。造成了编辑上的不便。
还是修改为多个06、4a连续起作用比较方便。
以下修改后,须在R、S剧本中同时使用三个连续的06或4a。

06的修改
为了减少字节数并加入新功能,重写了从0x00415b59到0x00415c02的代码。
00415B59  CMP AX,8000
00415B5D  JNZ SHORT EKD5_916.00415B69
00415B5F  MOV EAX,5
00415B64   JMP EKD5_916.00415C42
00415B69  PUSH 4                                   
00415B6B  MOV ECX,DWORD PTR SS:[EBP+8]            
00415B6E  CALL EKD5_916.004183F7                  
00415B73  MOV DWORD PTR SS:[EBP-8],EAX
00415B76  CMP EAX,80000000
00415B7B  JNZ SHORT EKD5_916.00415B87
00415B7D  MOV EAX,5
00415B82  JMP EKD5_916.00415C42
00415B87  MOV CL,0
00415B89  CMP CL,5
00415B8C  JGE SHORT EKD5_916.00415BB2
00415B8E  MOV BYTE PTR SS:[EBP-C],CL
00415B91  Arg1 = 00000038
00415B93  MOV ECX,DWORD PTR SS:[EBP+8]            
00415B96  CALL EKD5_916.004183F7                  
00415B9B  MOV CL,BYTE PTR SS:[EBP-C]
00415B9E  MOV EDX,DWORD PTR DS:[4CEA3C]
00415BA4  ADD DL,CL
00415BA6  MOV DWORD PTR DS:[EDX*4+4CEA00],EAX
00415BAD  ADD CL,1
00415BB0  JMP SHORT EKD5_916.00415B89
00415BB2  ADD DL,1
00415BB5  CMP DL,0F
00415BB8  JNZ SHORT EKD5_916.00415BBC
00415BBA  MOV DL,0
00415BBC  MOV BYTE PTR DS:[4CEA3C],DL
00415BC2  MOV CL,0
00415BC4  CMP CL,5
00415BC7  JGE SHORT EKD5_916.00415BED
00415BC9  MOV BYTE PTR SS:[EBP-C],CL
00415BCC  PUSH 39                                 
00415BCE  MOV ECX,DWORD PTR SS:[EBP+8]         
00415BD1  CALL EKD5_916.004183F7                  
00415BD6  MOV CL,BYTE PTR SS:[EBP-C]
00415BD9  MOV EDX,DWORD PTR DS:[4CEA7C]
00415BDF  ADD DL,CL
00415BE1  MOV DWORD PTR DS:[EDX*4+4CEA40],EAX
00415BE8  ADD CL,1
00415BEB  JMP SHORT EKD5_916.00415BC4
00415BED  ADD DL,1
00415BF0  CMP DL,0F
00415BF3  JNZ SHORT EKD5_916.00415BF7
00415BF5  MOV DL,0
00415BF7  MOV BYTE PTR DS:[4CEA7C],DL
00415BFD  NOP
00415BFE  NOP
00415BFF  NOP
00415C00  NOP
00415C01  NOP
00415C02  NOP


4a的修改
4a原本代码比较精简,费了好半天劲也没有实现不占用其他字节数。最后还是恢复了老版本,占用了409102开始的部分字节。
00409102   JNZ SHORT EKD5_918.00409106
00409104   XOR EDX,EDX
00409106   MOV DWORD PTR DS:[4CEA7C],EDX
0040910C   MOV ECX,EKD5_918.00492F90
00409111   CALL EKD5_918.0041856A
00409116   JMP EKD5_918.00415E28

00415DA5   CMP EAX,80000000
00415DAA   JNZ SHORT EKD5_918.00415DB2
00415DAC   XOR EAX,EAX
00415DAE   MOV AL,5
00415DB0   JMP SHORT EKD5_918.00415E2D
00415DB2   TEST EAX,EAX
00415DB4   JNZ SHORT EKD5_918.00415DB7
00415DB6   INC EAX
00415DB7   MOV DWORD PTR SS:[EBP-4],EAX
00415DBA   NOP
00415DBB   NOP
00415DBC   XOR ECX,ECX
00415DBE   CMP ECX,5
00415DC1   JGE SHORT EKD5_918.00415DE5
00415DC3   MOV DWORD PTR SS:[EBP-8],ECX
00415DC6   PUSH 38                                 
00415DC8   MOV ECX,DWORD PTR SS:[EBP+8]            
00415DCB   CALL EKD5_918.004183F7                  
00415DD0   MOV ECX,DWORD PTR SS:[EBP-8]
00415DD3   MOV EDX,DWORD PTR DS:[4CEA3C]
00415DD9   ADD EDX,ECX
00415DDB   MOV DWORD PTR DS:[EDX*4+4CEA00],EAX
00415DE2   INC ECX
00415DE3   JMP SHORT EKD5_918.00415DBE
00415DE5   INC EDX
00415DE6   CMP EDX,0F
00415DE9   JNZ SHORT EKD5_918.00415DED
00415DEB   XOR EDX,EDX
00415DED   MOV DWORD PTR DS:[4CEA3C],EDX
00415DF3   XOR ECX,ECX
00415DF5   CMP ECX,5
00415DF8   JGE SHORT EKD5_918.00415E1C
00415DFA   MOV DWORD PTR SS:[EBP-8],ECX
00415DFD   PUSH 39                                 
00415DFF   MOV ECX,DWORD PTR SS:[EBP+8]           
00415E02   CALL EKD5_918.004183F7                  
00415E07   MOV ECX,DWORD PTR SS:[EBP-8]
00415E0A   MOV EDX,DWORD PTR DS:[4CEA7C]
00415E10   ADD EDX,ECX
00415E12   MOV DWORD PTR DS:[EDX*4+4CEA40],EAX
00415E19   INC ECX
00415E1A   JMP SHORT EKD5_918.00415DF5
00415E1C   INC EDX
00415E1D   CMP EDX,0F
00415E20   NOP
00415E21   NOP
00415E22   NOP
00415E23   JMP EKD5_918.00409102

2005-7-17 20:20 东方无翼
[color=blue]扩充商店到127个[/color]
原来data中只有58个商店,看来是不够用了。增加到127个。

修改1、利用扩充人物到1024分配的那段内存。当然原来只有0x12000字节,早就知道不够用了。现改为0x20000字节。

00481642     PUSH 20000

修改2、修改一些偏移和循环标识。
改后的商店信息从0x0c72000开始。
004197EB     ADD ECX,0C72000

00419878     ADD ECX,0C72000

00419905     ADD ECX,0C72000

0041B82B     CMP DWORD PTR SS:[EBP-8],7F

0041B83B     ADD ECX,0C72000                        

0042B27F     PUSH 7f                                 

0042B283     PUSH 0C72000                           

0042B2A9     PUSH 7f                              

0042B2AD     PUSH 0C72000                     

00466B7C     ADD ECX,0C72000                       

00466CD0     ADD ECX,0C72000                        

004684A9     ADD ECX,0C72000

0046857F     ADD ECX,0C72000

0046860E     ADD ECX,0C72000

0046B13A     ADD ECX,0C72000

0046B26C     ADD ECX,0C72000

0046DC43     ADD ECX,0C72000

修改3、相应的data文件中的信息。
商店信息是第三段。

注:还是未经全面测试滴。

2005-7-18 09:12 周瑜
如果控制只能每回合初存档提档,可以实现。
点击SL按钮后,检查是否当前所有人均未行动,如某人已行动,则提示“只能在回合初存档取档”,不执行存取操作。
不足之处:若已行动武将被反击致死,会被认为没有行动。
检测当前回合数是否是多少的倍数,可以实现每隔几回合允许存一次档。(如第n章每隔5-n回合允许存取一次档)

至于剧本中使用全局变量控制能否随时存档,几回合才能存一次档,或者触发事件之后才能存档,还是请教主来吧。

2005-7-18 17:02 东方无翼
[color=blue]增加战场名称到99个[/color]
原来的imsg里面就可以写99条,也懒的扩充了。99个就99个吧
0040BFA7     CMP DWORD PTR SS:[EBP+C],63

00449E6B     CMP ECX,63


另:上面有关R、S剧本06、4a指令的修改修正了一下。

2005-7-19 22:53 东方无翼
[color=blue]06、4a连续起作用的补充[/color]
修改存读存档时,写入的内容和偏移、大小。
修改后存档文件SV??D.e5的大小改变,增加20字节。

0040D103     CMP DWORD PTR SS:[EBP-4],0F

0040D10F     MOV ECX,DWORD PTR DS:[EDX*4+4CEA00]

0040D130     MOV EAX,DWORD PTR DS:[ECX*4+4CEA00]

0040D15C     CMP DWORD PTR SS:[EBP-4],0F

0040D168     MOV EAX,DWORD PTR DS:[ECX*4+4CEA40]

0040D188     MOV EDX,DWORD PTR DS:[EAX*4+4CEA40]

0041AF58     ADD EAX,2EE

0041AFD7     ADD ECX,14F0

0041B2F7     ADD ECX,2EE

0041B36A     ADD EAX,14F0

2005-8-19 14:27 东方无翼
[color=blue]改一个增加能力上限的后遗症[/color]
就是个单\双字节的问题.
00408CD0  MOV ECX,DWORD PTR SS:[EBP-18]
00408CD3  MOV EDX,DWORD PTR SS:[EBP+C]
00408CD6  XOR EAX,EAX
00408CD8  MOV AL,BYTE PTR DS:[EDX]
00408CDA  MOV WORD PTR DS:[ECX+11],AX
00408CDE  INC EDX
00408CDF  MOV DWORD PTR SS:[EBP+C],EDX
00408CE2  NOP
00408CE3  NOP
00408CE4  MOV EDX,DWORD PTR SS:[EBP-18]
00408CE7  MOV EAX,DWORD PTR SS:[EBP+C]
00408CEA  XOR ECX,ECX
00408CEC  MOV CL,BYTE PTR DS:[EAX]
00408CEE  MOV WORD PTR DS:[EDX+13],CX
00408CF2  INC EAX
00408CF3  MOV DWORD PTR SS:[EBP+C],EAX
00408CF6  NOP
00408CF7  NOP
00408CF8  MOV EAX,DWORD PTR SS:[EBP-18]
00408CFB  MOV ECX,DWORD PTR SS:[EBP+C]
00408CFE  XOR EDX,EDX
00408D00  MOV DL,BYTE PTR DS:[ECX]
00408D02  MOV WORD PTR DS:[EAX+15],DX
00408D06  INC ECX
00408D07  MOV DWORD PTR SS:[EBP+C],ECX
00408D0A  NOP
00408D0B  NOP
00408D0C  MOV ECX,DWORD PTR SS:[EBP-18]
00408D0F  MOV EDX,DWORD PTR SS:[EBP+C]
00408D12  XOR EAX,EAX
00408D14  MOV AL,BYTE PTR DS:[EDX]
00408D16  MOV WORD PTR DS:[ECX+17],AX
00408D1A  INC EDX
00408D1B  MOV DWORD PTR SS:[EBP+C],EDX
00408D1E  NOP
00408D1F  NOP
00408D20  MOV EDX,DWORD PTR SS:[EBP-18]
00408D23  MOV EAX,DWORD PTR SS:[EBP+C]
00408D26  XOR ECX,ECX
00408D28  MOV CL,BYTE PTR DS:[EAX]
00408D2A  MOV WORD PTR DS:[EDX+19],CX
00408D2E  INC EAX
00408D2F  MOV DWORD PTR SS:[EBP+C],EAX
00408D32  NOP
00408D33  NOP

2005-8-20 01:51 btzhang02
[quote]原帖由[i]东方无翼[/i]于2005-08-19, 14:27:58发表
[color=blue]改一个增加能力上限的后遗症[/color]
就是个单\双字节的问题.
00408CD0  MOV ECX,DWORD PTR SS:[EBP-18]
00408CD3  MOV EDX,DWORD PTR SS:[EBP+C]
00408CD6  XOR EAX,EAX
00408CD8  MOV AL,BYTE PTR DS:[EDX]
00408CDA  MOV WORD PTR DS:[ECX+11],AX
00408CDE  INC EDX
00408CDF  MOV DWORD PTR SS:[EBP+C],EDX
00408CE2  NOP
00408CE3  NOP
00408CE4  MOV EDX,DWORD PTR SS:[EBP-18]
00408CE7  MOV EAX,DWORD PTR SS:[EBP+C]
00408CEA  XOR ECX,ECX
00408CEC  MOV CL,BYTE PTR DS:[EAX]
00408CEE  MOV WORD PTR DS:[EDX+13],CX
00408CF2  INC EAX
00408CF3  MOV DWORD PTR SS:[EBP+C],EAX
00408CF6  NOP
00408CF7  NOP
00408CF8  MOV EAX,DWORD PTR SS:[EBP-18]
00408CFB  MOV ECX,DWORD PTR SS:[EBP+C]
00408CFE  XOR EDX,EDX
00408D00  MOV DL,BYTE PTR DS:[ECX]
00408D02  MOV WORD PTR DS:[EAX+15],DX
00408D06  INC ECX
00408D07  MOV DWORD PTR SS:[EBP+C],ECX
00408D0A  NOP
00408D0B  NOP
00408D0C  MOV ECX,DWORD PTR SS:[EBP-18]
00408D0F  MOV EDX,DWORD PTR SS:[EBP+C]
00408D12  XOR EAX,EAX
00408D14  MOV AL,BYTE PTR DS:[EDX]
00408D16  MOV WORD PTR DS:[ECX+17],AX
00408D1A  INC EDX
00408D1B  MOV DWORD PTR SS:[EBP+C],EDX
00408D1E  NOP
00408D1F  NOP
00408D20  MOV EDX,DWORD PTR SS:[EBP-18]
00408D23  MOV EAX,DWORD PTR SS:[EBP+C]
00408D26  XOR ECX,ECX
00408D28  MOV CL,BYTE PTR DS:[EAX]
00408D2A  MOV WORD PTR DS:[EDX+19],CX
00408D2E  INC EAX
00408D2F  MOV DWORD PTR SS:[EBP+C],EAX
00408D32  NOP
00408D33  NOP [/quote]
我没有学过Vc+反编译,不知道可不可以用UltraEdit编辑:
用UltraEdit读取Ekd5.exe,直接用以上代码减去00400C00偏移量就等于Ekd5.exe对应地址,只是Vc+所应用的代码执行诸如MOV ECX,DWORD PTR SS:[EBP-18],MOV EDX,DWORD PTR SS:[EBP+C],XOR EAX,EAX,MOV AL,BYTE PTR DS:[EDX]看不懂什么意思  ,教主能否简单说明下,相信对很多人都有帮助的.....
以下是教主的 改能力上限的后遗症的代码 在Ekd5.exe所对应的位置.
000080D0  MOV ECX,DWORD PTR SS:[EBP-18]
000080D3  MOV EDX,DWORD PTR SS:[EBP+C]
000080D6  XOR EAX,EAX
000080D8  MOV AL,BYTE PTR DS:[EDX]
000080DA  MOV WORD PTR DS:[ECX+11],AX
000080DE  INC EDX
000080DF  MOV DWORD PTR SS:[EBP+C],EDX
000080E2  NOP
000080E3  NOP
000080E4  MOV EDX,DWORD PTR SS:[EBP-18]
000080E7  MOV EAX,DWORD PTR SS:[EBP+C]
000080EA  XOR ECX,ECX
000080EC  MOV CL,BYTE PTR DS:[EAX]
000080EE  MOV WORD PTR DS:[EDX+13],CX
000080F2  INC EAX
000080F3  MOV DWORD PTR SS:[EBP+C],EAX
000080F6  NOP
000080F7  NOP
000080F8  MOV EAX,DWORD PTR SS:[EBP-18]
000080FB  MOV ECX,DWORD PTR SS:[EBP+C]
000080FE  XOR EDX,EDX
00008100  MOV DL,BYTE PTR DS:[ECX]
00008102  MOV WORD PTR DS:[EAX+15],DX
00008106  INC ECX
00008107  MOV DWORD PTR SS:[EBP+C],ECX
0000810A  NOP
0000810B  NOP
0000810C  MOV ECX,DWORD PTR SS:[EBP-18]
0000810F  MOV EDX,DWORD PTR SS:[EBP+C]
00008112  XOR EAX,EAX
00008114  MOV AL,BYTE PTR DS:[EDX]
00008116  MOV WORD PTR DS:[ECX+17],AX
0000811A  INC EDX
0000811B  MOV DWORD PTR SS:[EBP+C],EDX
0000811E  NOP
0000811F  NOP
00008120  MOV EDX,DWORD PTR SS:[EBP-18]
00008123  MOV EAX,DWORD PTR SS:[EBP+C]
00008126  XOR ECX,ECX
00008128  MOV CL,BYTE PTR DS:[EAX]
0000812A  MOV WORD PTR DS:[EDX+19],CX
0000812E  INC EAX
0000812F  MOV DWORD PTR SS:[EBP+C],EAX
00008132  NOP
00008133  NOP

2005-8-20 08:31 东方无翼
因为UE没有反汇编功能,所以你能看到的就是16进制的机器码。

建议适用某种反汇编调试工具,我用的是OllyDbg,有时也用softice,到网上搜一就能找到。这些工具可以即时调试、检测内存,也可以将机器码反汇编成汇编代码,如
[quote]MOV ECX,DWORD PTR SS:[EBP-18]
MOV EDX,DWORD PTR SS:[EBP+C]
XOR EAX,EAX
MOV AL,BYTE PTR DS:[EDX][/quote]
这样的一些内容,更便于你阅读并理解程序。

关于汇编语言的语法,可以去网上搜  
另外看雪学院(www.pediy.com)有很多关于破解修改的知识, 会帮上你的。

2005-8-20 08:41 东方无翼
[color=blue]98下无法运行的修正[/color]
98/ME下用使用原版--仅从音轨播放音乐的koeicda.dll(31k版本)可以开始游戏,但使用硬盘版--可以播放本地mp3的koeicda.dll(44k)却无法运行。
原来是人物信息的内存跟此版本dll试用的内存的相冲突。遂将原0x00c60000位置分配的内存後移至0x00d60000。

相关修改有
1、将exe中所有0x00c60000改为0x00d60000
2、神仙教学部分,修改神仙和弟子的数据偏移。
3、扩充商店到127个中,将0x00c72000 改为 0x00d72000。

2005-11-30 21:37 东方无翼
[color=blue]敌军、友军移动时,AI计算错误的BUG[/color]
具体的问题我也描述不清  大约就是前面的AI正好占住了后面AI[color=red]最[/color]想要移动到的位置,而后面的AI不去寻找次优解反而停住不走了。

这个BUG很奇怪,原以为是逻辑上的错误。但是最终发现是栈空间出了问题。猜测是编译器的bug吧,不过光荣这段代码写的也不咋地,效率真的不高。

[color=red]修改一处:[/color]
0043817B   SUB ESP,14


原来是 SUB ESP,10,但是程序在EBP-10位置存储了一个关键变量(想要移动到的位置),结果在调用其它函数(实际上是递归调用自身)的时候被参数冲掉了。显然在递归进去的函数里获得的是一个错误的值。  而这个递归也就失效了。
找了将近两天,才改了一个字节。。。真是不平衡。。。

2005-12-4 13:45 lxillidan
虽然不大懂,但还是要说你们太厉害了!

2005-12-9 21:37 轩辕一狼
神啊,我都看晕了啊,我只想知道怎么改兵种名称、替换人物头像(非曹操传的自带头像)以及如何修改战场的形象。
战场形象只会拿小江东的修改器的程序修改来替换,至于怎么把两转前的人物形象空起来替换还是不会……

2005-12-19 13:00 慕容雪芸
[quote]原帖由[i]东方无翼[/i]于2005-07-17, 14:03:46发表
00415DD4   CMP DWORD PTR SS:[EBP-8],0F
00415DE7   MOV DWORD PTR DS:[ECX*4+4CEA00],EAX

00415E02   CMP DWORD PTR SS:[EBP-8],0F
00415E15   MOV DWORD PTR DS:[ECX*4+4CEA40],EAX[/quote]这个,有点疑问,好像写了下面的代码,这一段也不用写了,不知道是否

2006-1-21 11:13 周瑜
[quote]原帖由[i]东方无翼[/i]于2005-07-10, 3:34:30发表
剧本的指令中,有两个改变人物属性的。
一个是0x38号代码,改变人物基本属性的。
一个是0x4d号代码,就是所谓的站力削弱,改变人物战场属性的。

其中战力削弱,对于战场上的人物,只能减少其hp,而不能增加或者设定hp等于某值,以下修改是增加此功能的。 [/quote]
许多人反映,指令38中加减设定当前HP无效。而4d只能减血,东方看看能不能实现加血的指令。

2006-1-21 12:09 博雅张生
[quote]0045AC10  MOV ECX,DWORD PTR SS:[EBP-4]
0045AC13  AND ECX,0FF
0045AC19  IMUL ECX,ECX,24
0045AC1C  ADD ECX,EKD5_507.004B2C50
0045AC22  CALL EKD5_507.00472C90
0045AC27  MOV EDX,DWORD PTR SS:[EBP+10]
0045AC2A  AND EDX,0FF
0045AC30  PUSH ECX
0045AC31  MOV ECX,DWORD PTR SS:[EBP+24]
0045AC34  AND ECX,0FF
0045AC3A  CMP CL,2
0045AC3D  JNZ SHORT EKD5_507.0045AC43
0045AC3F  ADD EAX,EDX
0045AC41  JMP SHORT EKD5_507.0045AC63
0045AC43  CMP CL,1
0045AC46  JNZ SHORT EKD5_507.0045AC56
0045AC48  CMP EDX,0
0045AC4B  JG SHORT EKD5_507.0045AC52
0045AC4D  MOV EDX,1
0045AC52  MOV EAX,EDX
0045AC54  JMP SHORT EKD5_507.0045AC63
0045AC56  CMP EAX,EDX
0045AC58  JGE SHORT EKD5_507.0045AC61
0045AC5A  MOV EAX,1
0045AC5F  JMP SHORT EKD5_507.0045AC63
0045AC61  SUB EAX,EDX
0045AC63  POP ECX
0045AC64  PUSH EAX                
0045AC65  CALL EKD5_507.0043F6CD        
0045AC6A  JMP EKD5_507.0045AD84[/quote]

  这个不就是增加4D中加Hpcur和直接设定Hpcur的改动么?
在岳飞传中工作正常啊。

2006-1-24 10:43 慕容雪芸
强制15个人出场的改后总有问题……原因没去查,所正不是进不了游戏,就是读档不显示R剧本中的人物

2006-2-14 21:56 东方无翼
修正一个应该是曹操传本身的BUG,其直接效果是导致在说岳中(其他MOD中也有可能),当武将装备的武器、防具数量总和超过36个时(对其他MOD,这个数字可能不同),点击“持有道具一览”会错误退出。

00466E1B     8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]

00466E2E     8B55 FC        MOV EDX,DWORD PTR SS:[EBP-4]

00466E43     8B55 FC        MOV EDX,DWORD PTR SS:[EBP-4]

PS:错误在于一个循环中有两个递增量,误用为另外一个了。

2006-2-14 22:00 东方无翼
[quote]原帖由[i]雪芸[/i]于2006-01-24, 10:43:54发表
强制15个人出场的改后总有问题……原因没去查,所正不是进不了游戏,就是读档不显示R剧本中的人物 [/quote]
可能是我漏写什么了吧。因此也一直拖欠了奉先和村夫二位的exe好久,实在不好意思。

2006-2-19 10:20 慕容雪芸
[quote]原帖由[i]东方无翼[/i]于2006-02-14, 23:00:06发表
  可能是我漏写什么了吧。因此也一直拖欠了奉先和村夫二位的exe好久,实在不好意思。 [/quote]
好像奉先没向教主要EXE……下面两个写漏的地方就是他找出来  偶没那个心情去找,丢给他了,最后发现是东方哥哥少写了几句,导致R剧本读档时,人物都消失不见了。

0042A0CE    68 F0020000   PUSH 2F0   
0042A136    68 F0020000   PUSH 2F0

2006-2-21 00:16 appletong
[quote]原帖由[i]东方无翼[/i]于2006-02-14, 21:56:46发表
修正一个应该是曹操传本身的BUG,其直接效果是导致在说岳中(其他MOD中也有可能),当武将装备的武器、防具数量总和超过36个时(对其他MOD,这个数字可能不同),点击“持有道具一览”会错误退出。

00466E1B     8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]

00466E2E     8B55 FC        MOV EDX,DWORD PTR SS:[EBP-4]

00466E43     8B55 FC        MOV EDX,DWORD PTR SS:[EBP-4]

PS:错误在于一个循环中有两个递增量,误用为另外一个了。 [/quote]
这个好像还是不行 (我用的是原版ccz  加了 叶落得形象补丁,其余都是UE替换没伤筋动骨), 28个武将 武器装备都有时还没事,把装备都带满(包括宝物)一点还是跳出。
附存档(测试用的,胡乱改了一个)

不会发附件 老大还是自己改一个吧

2006-2-21 17:54 van
原版的至多可以支持200(未装备)+78(装备),否则会缓冲区溢出

2006-2-22 23:14 appletong
那在原版中改了这个之后有什么副作用。
该的时候没看“导致在说岳中”

2006-2-23 10:05 van
没有副作用,东方修正的是原版的bug

2006-2-23 20:33 appletong
[quote]原帖由[i]van[/i]于2006-02-23, 10:05:44发表
没有副作用,东方修正的是原版的bug [/quote]
我比较笨,原版不就是78跳出吗,用这个后还跳,那修正什么了
请老大指教

2006-2-23 21:00 van
原版的那个bug和78的上限没有关系。只允许78个不属于bug的,hehe

2006-2-26 18:13 博雅张生
[quote]原帖由[i]van[/i]于2006-02-23, 21:00:33发表
原版的那个bug和78的上限没有关系。只允许78个不属于bug的,hehe [/quote]
这78个是在哪个函数里限制的?容易修改么?

2006-2-26 19:25 van
“78”就是在CListCtrl的派生类里申明了一个 int[78]的成员数组。要改的话地方很多~
PS:张生还在忙说岳啊,要网络与现实兼顾哦~

2006-8-24 14:29 岱瀛
挖墓挖到这个帖子,只是我方最多26人,每个人装备就最多就3个,26*3=78正好,张生为什么要改这个78呢:qoo+

2006-8-24 14:55 博雅张生
[quote]原帖由 [i]岱瀛[/i] 于 2006-8-24 14:29 发表
挖墓挖到这个帖子,只是我方最多26人,每个人装备就最多就3个,26*3=78正好,张生为什么要改这个78呢:qoo+ [/quote]


因为我方可能超过26人啊。

2006-8-24 15:05 司徒苍月
[quote]原帖由 [i]岱瀛[/i] 于 2006-8-24 14:29 发表
挖墓挖到这个帖子,只是我方最多26人,每个人装备就最多就3个,26*3=78正好,张生为什么要改这个78呢:qoo+ [/quote]

26人以上是可以的,只是出兵显示不了后面的人物,必须重新排序才可看见

2006-8-24 15:39 岱瀛
[quote]原帖由 [i]司徒苍月[/i] 于 2006-8-24 15:05 发表


26人以上是可以的,只是出兵显示不了后面的人物,必须重新排序才可看见 [/quote]


这样做出来,肯定会被定性为BUG的。除非把那个框做大,能多放几个人进去,或者给个翻页按钮出个翻页功能:()

2006-8-24 15:55 司徒苍月
[quote]原帖由 [i]岱瀛[/i] 于 2006-8-24 15:39 发表

这样做出来,肯定会被定性为BUG的。除非把那个框做大,能多放几个人进去,或者给个翻页按钮出个翻页功能:() [/quote]

这个与拙作无关,拙作全部凑齐才15人:lol:

2006-8-25 13:12 WWYWW
[quote]原帖由 [i]岱瀛[/i] 于 2006-8-24 15:39 发表



这样做出来,肯定会被定性为BUG的。除非把那个框做大,能多放几个人进去,或者给个翻页按钮出个翻页功能:() [/quote]
不要忘了强制出场和强制不出场:lol:

2007-7-22 12:52 鸣人之子
有没有修改好的EXE啊?如果有给一个下载地址

2007-8-13 12:41 佐裹义师
谢谢111

2007-8-14 03:01 神的儿子
请问教主说的"virtualalloc" 是一个什么软件?

2007-8-17 16:39 gyjyxj
楼主能不能帮忙把三国志5中的游戏主程序中武将数据提取出来,参看这个帖子[url]http://www.langya.org/bbs/showthread.php?t=59259[/url]

2007-12-7 14:17 paro
关于这点
第六步、列传
原来仅有前174人有列传,现在扩展到所有1024人。需同时修改imsg.e5。
其实是将人物列传的位置移动到imsg.e5的最后,并且补齐1024个。

修改位置:代码中,0x0040bfeb位置,修改为CMP DWORD PTR SS:[EBP+C],400 (循环次数)
0x0040bff9位置修改为ADD EAX,39A (39a指定文件中列传的起始位置)

到底是怎么改的啊~!新的引擎支持这个不:qoo+
谁来回答下!:Th

2008-12-26 19:09 酷儿008
这个是要用UltraEdit来修改吗???

2008-12-26 20:00 酷儿008
谁能帮我解释一下楼主在16楼的帖子呀,我怎么看不懂呢????

2008-12-30 16:55 酷儿008
太深奥了。

2009-1-2 23:03 今天心情好
可以请教一下各位大侠
如何把无法转职的兵种合并呢??

比如说
(驯熊师,驯虎狮,都督)合并成一个职业
(咒术师,仙人,辎重队)合并成一个职业
(粮秣队,木人,土偶)合并成一个职业
可以告知小编这些之间UE相对应的位置吗??

2009-3-6 14:56 酷儿008
请问virtualalloc是个什么东西?从哪里下载呢?

2009-10-16 06:31 ryanley
[quote]原帖由 [i]慕容雪芸[/i] 于 2006-1-24 10:43 发表
强制15个人出场的改后总有问题……原因没去查,所正不是进不了游戏,就是读档不显示R剧本中的人物 [/quote]


请问这个问题要怎么解决…………

2009-10-17 02:09 ryanley
-_-,看来大家已经不关心这个古老的话题了……
连续3个出场设置的美梦泡汤了:wacko:

页: [1] 2
查看完整版本: EXE补充研究及修改


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.