KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

[EFZ]最后的疯狂——修罗Final先行版!Let's Rock!

[ 40070 查看 / 16 回复 ]

不知历时多久了……EFZ渐渐淡出人们的视线。
在一次机缘巧合下,EFZ的修罗版出现了,提供了新的自定义场景的功能。
而又一段时间过去后,修罗版最终的形态出现了——自定义。
EFZ最后的疯狂……


要离开一段时间网络了,所以先行放出,BUG方面全未知……

在修罗Final中,全部的图片都采用了bmp的格式(两个原场景例外),没错,用画图就能打开。
可以自行修改的部分:
1、Title画面
2、选人画面
3、对战场景与场景预览
4、Now Loading图
当然,修改起来也不是那么容易的,不过掌握了之后也不是那么难。
暂时没有时间去详细的说每个图都是什么样子的,但是EFZ中所有的bmp都是采用索引色的形式,而不是RGB的形式。
另外,修改过的Config_xl,可以支持提供内置的最高难度的AI——口胡难度。
选择这个难度的结果就是全员AI均实装了100%RG的能力,同时RG反击的能力也是十分口胡,神奈推倒难度激增几个档次……
最后,此修罗版提供了一个附属的工具,可以设置ARC MODE的战斗的场数、场景最大数量、NOW LOADING图最大数量等。
注:暂时请勾选“街机模式随机场景”,去除后可能会有些程序错误。
注2:附属程序使用.NET 2.0制作,所以需要安装.NET FRAMEWORKS 2.0才能运行,可直接运行的版本还请其他同志来完成罢……
---------------------以下为修改的信息,有兴趣者研究-------------------------
色数:
游戏可显示的色数:94  HEX:5E
场景:78色  HEX:4E
反色:最多支持16色
反色场景的色彩从通常场景中读取。
场景色设置为78色后再将总色数调至94,这样就在78色后面留出了16块色板。
然后将场景转为16色作为反色场景并保存为带b字的文件,然后将反色场景的16色填至通常场景末尾留出的16块色版中,顺序不变。必须要填,否则在游戏中不会正常显示反色。
场景名称文字图片:15色
场景预览图:64色
ALL STAGE画面 175色
TITLE画面 192色
TITLE_OB画面 48色
SELECT BG画面 56色 38H
SELECT OB画面 96色 60H
OB画面的色彩从BG画面中读取。
而OB画面与BG画面的色板都必须从BG的0号开始读取,所以只能将BG图像的颜色从色板的97色开始排列,排列至152色。
这样就应该先制作56色的SELECT BG图,然后通过任何方式来将色板一致后移96块,空出1-96的96块色板,然后将SELECT OB的96块色版顺序填入。否则游戏中色彩显示不正常。
转移图片色板的方式可以利用修罗版设置程序的一个小功能,但是它只能转移所有颜色的指向,色板还需要手动的方式移动。(仅适合高端玩家的样子?)
LOADING图片支持254色
--------------修改数据-------------
最大对战局数:
0x0036D08B  0B
0x0036D103  12(对战的角色)
0x0036D090  0C
0x0036D10C  18(对战的角色)
0x0036D095  0D
0x0036D115  13(对战的角色)
背景最大数:
0x003553C4  1F  (场景最大值+1)
0x00355473  1E  (场景最大值)
0x00354aad  1E  (场景最大值)
0x003548dc  1E  (场景最大值)
0x003554c5  1E  (场景最大值)
可随机到的背景最大值:
0x00354996  1F  (场景最大值+1)
ARC模式可自动随机到的背景最大值:
0x00386a91  1E  (场景最大值)
对战模式中随机到的LOADING最大数:
0x0036c7a8  AF 00 00 00  (倒置的16进制数字,LOADING图片最大值+1)
OPTION里的查看LOADING图部分最大值
0x0035af3f  AE 00 00 00  (倒置的16进制数字,LOADING图片最大值)
0x0035af67  AE 00 00 00  (倒置的16进制数字,LOADING图片最大值)
以下这个不太好用的样子……
街机模式随机背景
0x0036D225  E9 60 98 01 00 90 90
街机模式不随机背景
0x0036D225  FF 24 85 85 D9 76 00
------------------------------------------------------
下载:
程序部分:
http://kfc.moelove.cn/mdk/EFZ_XLSuper_Final_RC1.rar

修罗4.2版提供的音乐部分:
15M  efz_xlsuper_v4_m(rr1).part1.rar
匿名提取文件连接 http://pickup.mofile.com/0750711143747359 
或登录Mofile,使用提取码 0750711143747359 提取文件
15M  efz_xlsuper_v4_m(rr1).part2.rar
匿名提取文件连接 http://pickup.mofile.com/1141109667740316 
或登录Mofile,使用提取码 1141109667740316 提取文件
15M  efz_xlsuper_v4_m(rr1).part3.rar
匿名提取文件连接 http://pickup.mofile.com/2802768539340952 
或登录Mofile,使用提取码 2802768539340952 提取文件
15M  efz_xlsuper_v4_m(rr1).part4.rar
匿名提取文件连接 http://pickup.mofile.com/2962923558449350 
或登录Mofile,使用提取码 2962923558449350 提取文件
10.2M  efz_xlsuper_v4_m(rr1).part5.rar
匿名提取文件连接 http://pickup.mofile.com/2432394558840034 
或登录Mofile,使用提取码 2432394558840034 提取文件

Final追加的背景音乐部分:
http://kfc.moelove.cn/mdk/bgm_part2.rar

------------------------以下是全新的修改手记(无码高清晰原版手记)----------------------------
读取TITLE文件是否使用BMP,0为BMP
00775D96      BA 01000000      MOV EDX,1
判断读取STAGE画面时是否使用BMP
007594D3  |.  BA 01000000  MOV EDX,1
007594D8  |.  85D2          TEST EDX,EDX

-----早期部分的窗口化解除限制修改(不完善)-----
标题画面禁止自动退出:
查找
81E280000000 7416 6A006A
改为
81E280000000 EB16 6A006A

切换后按键锁定问题与自动退出问题修复
查找
817D EC 1E000780 75 18
替换成
817D EC 1E000780 90 90
共3处
查找
81BD F4FEFFFF 1E000780 75 24
替换成
81BD F4FEFFFF 1E000780 90 90
共6处

解放EFZ独占的按键
查找
E9B4000000 6A15 8B4DF8
改为
E9B4000000 6A06 8B4DF8
-----------结束-----------------
更新的部分:
CONFIG 窗口解除自动退回TITLE限制
50FF511C0FBE95F9FEFFFF81E280000000740A8B85F0FEFFFFC6402D 01 8B4DFC
改为
50FF511C0FBE95F9FEFFFF81E280000000740A8B85F0FEFFFFC6402D 00 8B4DFC
共两处

选人画面解除锁键限制
0FBE8534FFFFFF2580000000 74 24
改为
0FBE8534FFFFFF2580000000 EB 24
0FBE8535FFFFFF2580000000 74 24
改为
0FBE8535FFFFFF2580000000 EB 24

这里的寻找主要注意的是找到窗口焦点判断的关键CALL部分。
原本是想修改这个CALL的,不过结果那个CALL太复杂,完全看不懂。
于是就抓到对应的判断进行爆破了……
上面的修改法特征明显是爆破的修改  OTL

-------------------

下面是关于关卡与场景修改的部分……
这次主要注意的是几个关键的数据存放点。
1、 BYTE PTR DS:[EAX+1358]
  这个是用来存放当前战回合数的。
2、 DWORD PTR DS:[EBP-10]
  这个是用来存放当前战的AI使用角色的。
3、 DWORD PTR DS:[EBP-C]
  这个是用来存放当前战的AI使用的角色的场景的名称的关键字的ASCII字符的。
4、 BYTE PTR DS:[EAX+0F32]  DWORD PTR SS:[EBP-74]
  这个是通过角色确定的场景代码
5、 BYTE PTR DS:[EAX+1379]
  第一次续关的回合数
6、 BYTE PTR DS:[EDX+F32]  DWORD PTR SS:[EBP-74]
  选择场景时场景代码地址
EFZ判断是否通关就是判断BYTE PTR DS:[EAX+1358]是否为8。
而当对战局数提升超过7之后,CONTINUE时存放在BYTE PTR DS:[EAX+1379]的数值会变回0,这样会导致CONTINUE进入默认场景的效果失败。
为了解决这个问题,于是将对战局数固定在7局,而控制对战局数的数值存放在另外一个地方。
当对战回合是8的时候让其加1变成9,这样就跳过了8,而不会进入通关画面。
这段就完事了。
注:10、0F、0E分别就是16战的最后三战。
判断对战回合是否是最后三战,若是就将对战角色对应塞入,如下:
--------------
0076D061  .  90            NOP
0076D062  .  90            NOP
0076D063  .  8B55 94      MOV EDX,DWORD PTR SS:[EBP-6C]
0076D066  .  8B42 1C      MOV EAX,DWORD PTR DS:[EDX+1C]
0076D069  .  0FBE88 581300>MOVSX ECX,BYTE PTR DS:[EAX+1358]        ;  将当前对战回合数带入ECX
0076D070  .  83F9 01      CMP ECX,1                                ;  对比ECX是否是1
0076D073      7F 05        JG SHORT efz_xlsu.0076D07A              ;  大于1则将自定义对战局数+1
0076D075      8948 EC      MOV DWORD PTR DS:[EAX-14],ECX            ;  将当前对战局数(1)赋值到EAX-14
0076D078      EB 04        JMP SHORT efz_xlsu.0076D07E              ;  初始化时绕过+1过程
0076D07A      8040 EC 01    ADD BYTE PTR DS:[EAX-14],1              ;  自定义对战局数数值+1
0076D07E      0FBE48 EC    MOVSX ECX,BYTE PTR DS:[EAX-14]          ;  自定义局数数值重新赋值给ECX
0076D082      C680 58130000>MOV BYTE PTR DS:[EAX+1358],7            ;  系统定义的对战局数始终赋值为7,结局CONTINUE的问题
0076D089      83F9 0B      CMP ECX,0B                              ;  对比对战局数是11,则赋值小瑞佳
0076D08C      74 72        JE SHORT efz_xlsu.0076D100
0076D08E      83F9 0C      CMP ECX,0C                              ;  对比对战局数是12,则赋值BOSS小瑞佳
0076D091      74 76        JE SHORT efz_xlsu.0076D109
0076D093      83F9 0D      CMP ECX,0D                              ;  对比对战局数是13,则赋值神奈
0076D096      74 7A        JE SHORT efz_xlsu.0076D112
0076D098      E9 83000000  JMP efz_xlsu.0076D120                    ;  进入普通流程
……
0076D100  > \C745 F0 12000000      MOV DWORD PTR SS:[EBP-10],12            ;  对战角色改为小瑞佳
0076D107  .  EB 17                  JMP SHORT efz_xlsu.0076D120              ;  继续流程
0076D109  >  C745 F0 18000000      MOV DWORD PTR SS:[EBP-10],18            ;  对战角色改为BOSS小瑞佳
0076D110  .  EB 0E                  JMP SHORT efz_xlsu.0076D120              ;  继续流程
0076D112  >  C745 F0 13000000      MOV DWORD PTR SS:[EBP-10],13            ;  对战角色改为神奈
0076D119  .  C680 58130000 08      MOV BYTE PTR DS:[EAX+1358],8            ;  对战局数赋值为8,结束后游戏进入STAFF画面
0076D120  >  8B55 94                MOV EDX,DWORD PTR SS:[EBP-6C]            ;  继续流程
0076D123  .  8B42 1C                MOV EAX,DWORD PTR DS:[EDX+1C]
--------------
注:12为EX瑞佳,18为BOSS EX瑞佳,13为神奈
完成后统一进入0076D120即可。
由于完成16局后要通关,那么在对战角色放入神奈之后将对战局数改为8
************************************************************
这里完事了,那么开始修改场景。
追了半天发现是通过ASCII字符串组成的路径。
下面是大概步骤的伪代码:
1、角色确定
2、通过角色来确定对应的场景
3、通过场景转换出关键字符
4、然后通过“路径”+“关键字符”+“后缀名”的形式组成场景文件路径
于是我们只要将关键字符替换成我们所要的字符就好。
先将背景文件的名称改为bg40,注意还需要有个bg40b,这个就是在LV3/LV4的ES技发动时黑白反色效果的场景,这个场景直接复制bg16b即可。
然后是背景音乐的问题。
其实背景音乐代码就是“场景代码数值+10”,场景是40,那么背景音乐就是50。
在WAVE地址入之前会有一个数据相加转换的,很显眼的说  -v-
那么修改场景的步骤就基本清晰了。
首先从关键判断断开,切入我们所需要的代码。
通过判断角色是否是13(神奈)来确定是否需要更改场景为新名称。
需要注意的是,修改场景的时候一定要场景代码与ASCII字符串一起改,否则会抛出异常导致程序关闭。
每次随机场景,并跳过12,16,24,26,27五个场景
-----------------------
原版固定场景代码:
0076D225      FF2485 85D97600        JMP DWORD PTR DS:[EAX*4+76D985]          ;  确定按照原版对应角色场景还是随机场景
-----------------------
随机场景代码:
0076D225    /E9 60980100            JMP efz_xlsu.00786A8A                    ;  确定按照原版对应角色场景还是随机场景
0076D22A    |90                    NOP
0076D22B    |90                    NOP
-----------------------
修改掉的跳转,用于追加ARC模式的场景的判断
-----------------------------------
0076D3BF    /E9 2F970100            JMP efz_xlsu.00786AF3
0076D3C4    |90                    NOP                                      ; |Arg2
0076D3C5    |90                    NOP                                      ; |
0076D3C6    |90                    NOP
……
0076D3D8  .  83C4 0C                ADD ESP,0C
-----------------------------------
00786A65      6A 0A                  PUSH 0A                                  ;  原0076D3BF出的CALL
00786A67      8D4D F4                LEA ECX,DWORD PTR SS:[EBP-C]
00786A6A      51                    PUSH ECX
00786A6B      8B55 94                MOV EDX,DWORD PTR SS:[EBP-6C]
00786A6E      8B42 1C                MOV EAX,DWORD PTR DS:[EDX+1C]
00786A71      0FBE88 320F0000        MOVSX ECX,BYTE PTR DS:[EAX+F32]
00786A78      51                    PUSH ECX
00786A79      E8 D714FFFF            CALL efz_xlsu.00777F55
00786A7E    ^ E9 5569FEFF            JMP efz_xlsu.0076D3D8                    ;  返回0076D3D8
……
00786A8A      E8 D212FFFF            CALL efz_xlsu.00777D61                  ;  调用随机数
00786A8F      99                    CDQ
00786A90      B9 1E000000            MOV ECX,1E                              ;  最大值不超过场景最大数0x1E
00786A95      F7F9                  IDIV ECX                                ;  最终随机数数值进入EDX
00786A97      83FA 0C                CMP EDX,0C                              ;  如果是0x0C=12则跳过
00786A9A    ^ 74 EE                  JE SHORT efz_xlsu.00786A8A
00786A9C      83FA 10                CMP EDX,10                              ;  如果是0x10=16则跳过
00786A9F    ^ 74 E9                  JE SHORT efz_xlsu.00786A8A
00786AA1      83FA 18                CMP EDX,18                              ;  如果是0x18=24则跳过
00786AA4    ^ 74 E4                  JE SHORT efz_xlsu.00786A8A
00786AA6      83FA 1A                CMP EDX,1A                              ;  如果是0x1A=26则跳过
00786AA9    ^ 74 DF                  JE SHORT efz_xlsu.00786A8A
00786AAB      83FA 1B                CMP EDX,1B                              ;  如果是0x1B=27则跳过
00786AAE    ^ 74 DA                  JE SHORT efz_xlsu.00786A8A
00786AB0    ^\EB B3                  JMP SHORT efz_xlsu.00786A65              ;  继续流程
00786AB2      90                    NOP
00786AB3      90                    NOP
……
00786AE4      90                    NOP
00786AE5      90                    NOP
00786AE6      90                    NOP
00786AE7      8B45 94                MOV EAX,DWORD PTR SS:[EBP-6C]
00786AEA      8B48 1C                MOV ECX,DWORD PTR DS:[EAX+1C]
00786AED      8891 320F0000          MOV BYTE PTR DS:[ECX+F32],DL            ;  EDX随机数写入场景值内存
00786AF3      8B45 F0                MOV EAX,DWORD PTR SS:[EBP-10]            ;  当前角色数据写入EAX
00786AF6      8B91 79130000          MOV EDX,DWORD PTR DS:[ECX+1379]          ;  当前续关数据写入EDX
00786AFC      83F8 13                CMP EAX,13                              ;  角色为13-神奈时
00786AFF      75 1A                  JNZ SHORT efz_xlsu.00786B1B
00786B01      83FA 00                CMP EDX,0                                ;  神奈之前是否续关
00786B04      75 0C                  JNZ SHORT efz_xlsu.00786B12
00786B06      C681 320F0000 18      MOV BYTE PTR DS:[ECX+F32],18            ;  如果神奈+未续关时则用赤月版无限之空
00786B0D    ^ E9 AD68FEFF            JMP efz_xlsu.0076D3BF
00786B12      C681 320F0000 10      MOV BYTE PTR DS:[ECX+F32],10            ;  如果神奈+续关时则用无限之空
00786B19    ^ EB F2                  JMP SHORT efz_xlsu.00786B0D
00786B1B      83F8 12                CMP EAX,12                              ;  对战角色是否是小瑞佳
00786B1E      75 09                  JNZ SHORT efz_xlsu.00786B29
00786B20      C681 320F0000 1B      MOV BYTE PTR DS:[ECX+F32],1B            ;  无限剑制
00786B27    ^ EB E4                  JMP SHORT efz_xlsu.00786B0D
00786B29      83F8 18                CMP EAX,18                              ;  对战角色是否是BOSS小瑞佳
00786B2C    ^ 75 DF                  JNZ SHORT efz_xlsu.00786B0D
00786B2E      83FA 00                CMP EDX,0                                ;  是否续关
00786B31      75 09                  JNZ SHORT efz_xlsu.00786B3C
00786B33      C681 320F0000 1A      MOV BYTE PTR DS:[ECX+F32],1A            ;  永远
00786B3A    ^ EB D1                  JMP SHORT efz_xlsu.00786B0D
00786B3C      C681 320F0000 0C      MOV BYTE PTR DS:[ECX+F32],0C            ;  决战场
00786B43    ^ EB C8                  JMP SHORT efz_xlsu.00786B0D
-------------------------
到这里其实场景就已经修改完了。
但是还不够的。
这个时候场景与音乐都正常,不过神奈的场景是有雾的……而且场景是空中型(这个很难解释,总之是神奈的场景与其他场景不同的地方)
而现在的场景是没有雾的,也不是空中型场景。
那么还需要找到如何产生雾……
虽然找到了产生雾的代码,不过太多懒得看了……
于是乎开始分析原版场景是如何读取雾的,然后盗版场景直接跳过去就是了。
于是找到了关键的判断点:
---------------
0076D702  .  0FBE88 320F0000        MOVSX ECX,BYTE PTR DS:[EAX+F32]          ;  场景数赋值到ECX
0076D709  .  894D 8C                MOV DWORD PTR SS:[EBP-74],ECX            ;  ECX的场景值赋值到EBP-74
0076D70C  .  8B55 8C                MOV EDX,DWORD PTR SS:[EBP-74]            ;  场景数入EDX
0076D70F  .  83EA 01                SUB EDX,1                                ;  EDX(场景数)值减1
0076D712  .  8955 8C                MOV DWORD PTR SS:[EBP-74],EDX
0076D715  .^ E9 95F9FFFF            JMP efz_xlsu.0076D0AF                    ;  跳到自己写的代码部分
0076D71A      90                    NOP
0076D71B      90                    NOP
0076D71C      90                    NOP
0076D71D      90                    NOP
0076D71E      90                    NOP
……
0076D0AF  > /837D 8C 17            CMP DWORD PTR SS:[EBP-74],17            ;  如果场景是17,需要注意的是上面的SUB EDX,1,没错,场景数值减1了,所以28变成了27
0076D0B3  . |0F84 3A070000          JE efz_xlsu.0076D7F3                    ;  跳到神奈场景的雾效果处
0076D0B9  . |837D 8C 19            CMP DWORD PTR SS:[EBP-74],19
0076D0BD  . |0F84 F1060000          JE efz_xlsu.0076D7B4                    ;  跳至读取小瑞佳场景的雾效果处
0076D0C3  . |837D 8C 1A            CMP DWORD PTR SS:[EBP-74],1A
0076D0C7  . |0F84 E7060000          JE efz_xlsu.0076D7B4
0076D0CD  . |837D 8C 1B            CMP DWORD PTR SS:[EBP-74],1B
0076D0D1  . |0F84 DD060000          JE efz_xlsu.0076D7B4
0076D0D7  . |837D 8C 0F            CMP DWORD PTR SS:[EBP-74],0F            ;  这个就是0076D715的原本的代码
0076D0DB  . |0F87 58070000          JA efz_xlsu.0076D839                    ;  这个也是0076D715的原本的代码
0076D0E1  . |E9 39060000            JMP efz_xlsu.0076D71F                    ;  返回

雾的问题搞定……
那么还有一个空中型的问题……
置于我是如何发现这个“型”的问题的……
那是因为最开始我以为判断读取雾是通过场景代码的,于是找到附近的一些CMP
---------------
0076D83F  .  0FBE91 320F0000        MOVSX EDX,BYTE PTR DS:[ECX+F32]          ;  场景值入EDX(判断是否空中型场景)
0076D846  .  E9 558D0100            JMP efz_xlsu.007865A0                    ;  跳到自己写的代码部分(判断是否空中型场景)
……
007865A0  > \83FA 18                CMP EDX,18                              ;  如果场景是0x18
007865A3  .^ 0F84 A272FEFF          JE efz_xlsu.0076D84B                    ;  如果是则跳转至空中型(关键跳)
007865A9  .  90                    NOP
007865AA  .  90                    NOP
007865AB  .  90                    NOP
007865AC  .  90                    NOP
007865AD  .  90                    NOP
007865AE  .  90                    NOP
007865AF  .  90                    NOP
007865B0  .  90                    NOP
007865B1  .  90                    NOP
007865B2  .  83FA 10                CMP EDX,10                              ;  这是原本的判断,10即16——无限之空
007865B5  .^ 0F84 9072FEFF          JE efz_xlsu.0076D84B                    ;  如果是则跳转至空中型(关键跳)
007865BB  .^ E9 9F72FEFF            JMP efz_xlsu.0076D85F                    ;  跳转至非空中型(默认)
---------------


这里要说明的是,这里没有关于里山之森的判断。
因为数值是下减的,而下限判断是38,也就是已经包括了里山之森(39)的处理了 -v-
以后要追加新场景也将很好办,只需要改一下下限值就可以了。
不过因为场景名是从选择图片中读取的,通过数值计算位置进行显示,不过根本就没有我们追加的场景的位置——所以名称部分就是空白的。
预览图就临时找了原有的代替……OTL
将就着用吧……OTL|||

读取选择场景时的预览图部分修改代码:
----------------
007594D3    /EB 59                  JMP SHORT efz_xlsu.0075952E            ;  全部使用_c.bmp后缀
007594D5    |90                    NOP
007594D6    |90                    NOP
007594D7    |90                    NOP
----------------
007594D3  . /E9 C2D40200            JMP efz_xlsu.0078699A                  ;  跳转到自定义代码(部分dat原版场景)
-----------------------------
0078699A  > \8B45 B8                MOV EAX,DWORD PTR SS:[EBP-48]
0078699D  .  8B40 1C                MOV EAX,DWORD PTR DS:[EAX+1C]
007869A0  .  0FBE80 320F0000        MOVSX EAX,BYTE PTR DS:[EAX+F32]
007869A7  .  83F8 17                CMP EAX,17                            ;  如果场景预览图编号小于0x17
007869AA  .^ 0F8C 2C2BFDFF          JL efz_xlsu.007594DC                  ;  小于17则用.dat的后缀
007869B0  .^ E9 792BFDFF            JMP efz_xlsu.0075952E                  ;  大于等于17则用.bmp的后缀
----------------
随机时的最大场景数值上限:
----------------
00754994  .  83F9 1F            CMP ECX,1F
00754997  .  7C 0D              JL SHORT efz_xlsu.007549A6
00754999  .  8B55 B4            MOV EDX,DWORD PTR SS:[EBP-4C]
0075499C  .  8B42 1C            MOV EAX,DWORD PTR DS:[EDX+1C]
0075499F  .  C680 320F0000 00  MOV BYTE PTR DS:[EAX+F32],0
----------------
选择场景的上限处:(场景最大值+1)
007553C2      83F8 1F                    CMP EAX,1F
下限:(场景最大值)
0075546D  .  C680 320F0000 1E          MOV BYTE PTR DS:[EAX+F32],1E
未知:
00754AAB  .  83F9 16      CMP ECX,16
007548DA      83F8 16      CMP EAX,16
007554C3      83FA 16      CMP EDX,16

特效代码段
---------------
神奈场景的雾:
0076D7F3  > \6A 1C                      PUSH 1C
0076D7F5  .  E8 4CA50000                CALL efz_xlsu.00777D46
0076D7FA  .  83C4 04                    ADD ESP,4
0076D7FD  .  8945 98                    MOV DWORD PTR SS:[EBP-68],EAX
0076D800  .  837D 98 00                CMP DWORD PTR SS:[EBP-68],0
0076D804  .  74 17                      JE SHORT efz_xlsu.0076D81D
0076D806  .  8B4D 94                    MOV ECX,DWORD PTR SS:[EBP-6C]
0076D809  .  8B51 20                    MOV EDX,DWORD PTR DS:[ECX+20]
0076D80C  .  52                        PUSH EDX                                ; /Arg1
0076D80D  .  8B4D 98                    MOV ECX,DWORD PTR SS:[EBP-68]            ; |
0076D810  .  E8 EB50FEFF                CALL efz_xlsu.00752900                  ; \efz_xlsu.00752900
0076D815  .  8985 7CFFFFFF              MOV DWORD PTR SS:[EBP-84],EAX
0076D81B  .  EB 0A                      JMP SHORT efz_xlsu.0076D827
0076D81D  >  C785 7CFFFFFF 00000000    MOV DWORD PTR SS:[EBP-84],0
0076D827  >  8B45 94                    MOV EAX,DWORD PTR SS:[EBP-6C]
0076D82A  .  8B48 1C                    MOV ECX,DWORD PTR DS:[EAX+1C]
0076D82D  .  8B95 7CFFFFFF              MOV EDX,DWORD PTR SS:[EBP-84]
0076D833  .  8991 7C130000              MOV DWORD PTR DS:[ECX+137C],EDX
                                        JMP SHORT efz_xlsu.0076D839
小瑞佳场景的雾:
0076D7B4  > \6A 1C                      PUSH 1C
0076D7B6  .  E8 8BA50000                CALL efz_xlsu.00777D46
0076D7BB  .  83C4 04                    ADD ESP,4
0076D7BE  .  8945 9C                    MOV DWORD PTR SS:[EBP-64],EAX
0076D7C1  .  837D 9C 00                CMP DWORD PTR SS:[EBP-64],0
0076D7C5  .  74 14                      JE SHORT efz_xlsu.0076D7DB
0076D7C7  .  8B55 94                    MOV EDX,DWORD PTR SS:[EBP-6C]
0076D7CA  .  8B42 20                    MOV EAX,DWORD PTR DS:[EDX+20]
0076D7CD  .  50                        PUSH EAX                                ; /Arg1
0076D7CE  .  8B4D 9C                    MOV ECX,DWORD PTR SS:[EBP-64]            ; |
0076D7D1  .  E8 DA48FEFF                CALL efz_xlsu.007520B0                  ; \efz_xlsu.007520B0
0076D7D6  .  8945 80                    MOV DWORD PTR SS:[EBP-80],EAX
0076D7D9  .  EB 07                      JMP SHORT efz_xlsu.0076D7E2
0076D7DB  >  C745 80 00000000          MOV DWORD PTR SS:[EBP-80],0
0076D7E2  >  8B4D 94                    MOV ECX,DWORD PTR SS:[EBP-6C]
0076D7E5  .  8B51 1C                    MOV EDX,DWORD PTR DS:[ECX+1C]
0076D7E8  .  8B45 80                    MOV EAX,DWORD PTR SS:[EBP-80]
0076D7EB  .  8982 7C130000              MOV DWORD PTR DS:[EDX+137C],EAX
0076D7F1  .  EB 46                      JMP SHORT efz_xlsu.0076D839

茜场景的雨:
0076D772  > \6A 1C                      PUSH 1C
0076D774  .  E8 CDA50000                CALL efz_xlsu.00777D46
0076D779  .  83C4 04                    ADD ESP,4
0076D77C  .  8945 A0                    MOV DWORD PTR SS:[EBP-60],EAX
0076D77F  .  837D A0 00                CMP DWORD PTR SS:[EBP-60],0
0076D783  .  74 14                      JE SHORT efz_xlsu.0076D799
0076D785  .  8B45 94                    MOV EAX,DWORD PTR SS:[EBP-6C]
0076D788  .  8B48 20                    MOV ECX,DWORD PTR DS:[EAX+20]
0076D78B  .  51                        PUSH ECX                                ; /Arg1
0076D78C  .  8B4D A0                    MOV ECX,DWORD PTR SS:[EBP-60]            ; |
0076D78F  .  E8 AC42FEFF                CALL efz_xlsu.00751A40                  ; \efz_xlsu.00751A40
0076D794  .  8945 84                    MOV DWORD PTR SS:[EBP-7C],EAX
0076D797  .  EB 07                      JMP SHORT efz_xlsu.0076D7A0
0076D799  >  C745 84 00000000          MOV DWORD PTR SS:[EBP-7C],0
0076D7A0  >  8B55 94                    MOV EDX,DWORD PTR SS:[EBP-6C]
0076D7A3  .  8B42 1C                    MOV EAX,DWORD PTR DS:[EDX+1C]
0076D7A6  .  8B4D 84                    MOV ECX,DWORD PTR SS:[EBP-7C]
0076D7A9  .  8988 7C130000              MOV DWORD PTR DS:[EAX+137C],ECX
0076D7AF  .  E9 85000000                JMP efz_xlsu.0076D839

LOADING修改

对战模式中的随机LOADING图片最大值
0076C7A7  |.  B9 AF000000                  MOV ECX,0AF                              ;  对战模式中的随机LOADING图片最大值
174换成16进制为AE,此数值为AE+1 = AF
NOW LOADING图选择处的代码
0075AF24  |.  8B4D F0                      |MOV ECX,DWORD PTR SS:[EBP-10]
0075AF27  |.  0381 58070000                |ADD EAX,DWORD PTR DS:[ECX+758]
0075AF2D  |.  8B55 F0                      |MOV EDX,DWORD PTR SS:[EBP-10]
0075AF30  |.  8982 58070000                |MOV DWORD PTR DS:[EDX+758],EAX
0075AF36  |.  8B45 F0                      |MOV EAX,DWORD PTR SS:[EBP-10]
0075AF39  |.  81B8 58070000 AE000000        |CMP DWORD PTR DS:[EAX+758],0AE          ;  判断,如果比0XAE大则写入0
0075AF43  |.  7E 0D                        |JLE SHORT efz_xlsu.0075AF52            ;  跳过写入0
0075AF45  |.  8B4D F0                      |MOV ECX,DWORD PTR SS:[EBP-10]
0075AF48  |.  C781 58070000 00000000        |MOV DWORD PTR DS:[ECX+758],0
0075AF52  |>  8B55 F0                      |MOV EDX,DWORD PTR SS:[EBP-10]
0075AF55  |.  83BA 58070000 00              |CMP DWORD PTR DS:[EDX+758],0            ;  判断,如果比0小,则写入最大值
0075AF5C  |.  7D 0D                        |JGE SHORT efz_xlsu.0075AF6B
0075AF5E  |.  8B45 F0                      |MOV EAX,DWORD PTR SS:[EBP-10]
0075AF61  |.  C780 58070000 AE000000        |MOV DWORD PTR DS:[EAX+758],0AE          ;  最大值
0075AF6B  |>  8B4D F0                      |MOV ECX,DWORD PTR SS:[EBP-10]
0075AF6E  |.  E8 ED260000                  |CALL efz_xlsu.0075D660                  ;  显示图片


EFZ中的随机函数-EDX
0076C7A1  |.  E8 BBB50000  CALL efz.00777D61
0076C7A6  |.  99            CDQ              //EAX保存随机数
0076C7A7  |.  B9 AF000000  MOV ECX,0AF      //随机数值最大值
0076C7AC  |.  F7F9          IDIV ECX        //除数,得到不大于被除数的随机数放置到EDX
0076C7AE  |.  8955 C8      MOV DWORD PTR SS:[EBP-38],EDX
最后编辑zhangmdk 最后编辑于 2007-03-28 01:50:37
分享 转发
悼念老陈……
南无阿弥多婆夜 哆他伽多夜 哆地夜他 阿弥利都婆毗 阿弥利哆 悉耽婆毗 阿弥唎哆 毗迦兰帝 阿弥唎哆 毗迦兰多 伽弥腻 伽伽那 枳多迦利 娑婆诃
TOP

回复:[EFZ]最后的疯狂——修罗Final先行版!Let's Rock!

文件修正,请于28日早6:00之前下载的朋友们重新下载
悼念老陈……
南无阿弥多婆夜 哆他伽多夜 哆地夜他 阿弥利都婆毗 阿弥利哆 悉耽婆毗 阿弥唎哆 毗迦兰帝 阿弥唎哆 毗迦兰多 伽弥腻 伽伽那 枳多迦利 娑婆诃
TOP

回复:[EFZ]最后的疯狂——修罗Final先行版!Let's Rock!

赞~~~!!!
MDK就是强啊~
希望阁下今后能将Clannad人物也加进去...虽然工程量巨大的说...
TOP

回复:[EFZ]最后的疯狂——修罗Final先行版!Let's Rock!

加人物可就不是这么简单的```````难度数量级不一样``````
http://www.jojogh.com/GH/jojogame/jojops06.jpg
别看偶样子可爱
其实偶人畜无害
TOP

回复:[EFZ]最后的疯狂——修罗Final先行版!Let's Rock!

火速前来试手.....(等待下载ing)
ねこねこ~~にゃにゃ~~
TOP

回复:[EFZ]最后的疯狂——修罗Final先行版!Let's Rock!

>>选择这个难度的结果就是全员AI均实装了100%RG的能力,同时RG反击的能力也是>>十分口胡,神奈推倒难度激增几个档次……
看到这里某就抽了~
神奈大人啊~~~
去试试去~
八卦ヲ束ネ四象ヲ回シ両儀ニ至ル。今宵、相克スル螺旋ニテ君ヲマツ。
TOP

回复:[EFZ]最后的疯狂——修罗Final先行版!Let's Rock!

跟修罗俩字有关的游戏~绝不放过!
卐-★修羅王☆-卐
TOP

回复:[EFZ]最后的疯狂——修罗Final先行版!Let's Rock!

楼主~
谢谢~
EFZ是我唯一会的格斗游戏~
苍穹的尽头~梦的彼岸罢了~
TOP

回复:[EFZ]最后的疯狂——修罗Final先行版!Let's Rock!

好东西,楼主继续,加油加油~~~~
TOP

回复:[EFZ]最后的疯狂——修罗Final先行版!Let's Rock!

EFZ是我的最爱啊  !!!最后的。。。。。不是吧
愿我永远是一个纯真的“傻瓜”
TOP