轩辕春秋文化论坛 » 设计与修改 » 曹操传战役数量可超过58


2005-4-4 21:51 博雅张生
第一个实验:制作新的战役S文件,调用现有地图。

我将S_10.eex复制一份,改名为S_99.eex,并在其开始部分加入我方出场人员强制控制。然后制作一个简单的R_00.eex剧本,在其最后添加一条剧本跳转代码,参数值为198,即跳过R_99.eex。结果正确跳到了张绣讨伐战。

第二个实验:调用新的地图。

地图的添加涉及以下几个文件:

HM58.e5:好办,直接复制HM10.e5即可。

Smlmap.e5 小地图
Spalet.e5 调色板
Hexzmap.e5 地形

这几个文件都是经过压缩的,我是修改的解压后的文件,但如果只是复制/粘贴,未解压的似乎也可以。

首先说一下这几个文件的结构:

开头是固定的字典。从110h开始是跳转表,每四个字节一个数,每三个数为一组,分别是正文每一段的压缩后长度、压缩前长度、开始位置。这几个文件都有58组,对应正文部分的58段,58个战场。

我们的目的是增加一个战场,首先要在跳转表的最后增加12个字节,两个长度就照抄第10关的,开始位置则是原文件长度+12。相应的,在此之前的58个开始位置都要加上12。然后是添加正文部分。根据第10关的位置和长度找到相应的段落,复制粘贴到文件最后。这三个文件的处理方法相同。

最后是S_99.eex,改动其中调用地图的代码,调用HM58(参数值58)。

开始新游戏,正确进入战场。

唯一的缺陷是战役名称为空。Imsg.e5的五丈原2之后虽然有很多终端,但改了也没用,估计别的地方有限制。

已找到解决办法,在S剧本开头加一条“场景名”代码,场景名即战役名。

似乎上限是127,超过100的文件名是这样的:

S_:X 表示10X
S_;X 表示11X
S_<X 表示12X (X最大为7)

128关应该够用了吧,如果还不够用就把两关放到一个剧本里,通过全局变量控制进入哪一关。至于地图,我估计可能能超过128张。

2005-4-4 21:55 Phoenix
五丈原2没开打的存档

2005-4-4 21:59 范文珺
这个里面有最后一回合的

2005-4-4 22:07 博雅张生
没问题。我把R_57.eex复制到了R_58.eex。结果58关的名称变成了“五丈原 曹操军主营”我想在此之后的战役可以通过剧本控制名称。

2005-4-4 22:19 peacockwang
果然高手!

2005-4-5 01:34 mutare
呵呵,真厉害啊!

2005-4-5 01:44 湘江子龙
太好了,看来战斗可以尽情安排了。

2005-4-5 07:34 ffwwjj
数不完的战斗,数不完的汗水,zengpoem兄加油

2005-4-5 12:54 博雅张生
[quote]原帖由[i]zengpoem[/i]于2005-04-04, 21:51:22发表

似乎上限是127,超过100的文件名是这样的:

S_:X 表示10X
S_;X 表示11X
S_<X 表示12X (X最大为7)
[/quote]
唉。忘了一件事,冒号和小于号是不能用作文件名的……

2005-4-5 13:05 金圭子
第二个实验:调用新的地图。

地图的添加涉及以下几个文件:

HM58.e5:好办,直接复制HM10.e5即可。

Smlmap.e5 小地图
Spalet.e5 调色板
Hexzmap.e5 地形

这几个文件都是经过压缩的,我是修改的解压后的文件,但如果只是复制/粘贴,未解压的似乎也可以。

首先说一下这几个文件的结构:

开头是固定的字典。从110h开始是跳转表,每四个字节一个数,每三个数为一组,分别是正文每一段的压缩后长度、压缩前长度、开始位置。这几个文件都有58组,对应正文部分的58段,58个战场。

我们的目的是增加一个战场,首先要在跳转表的最后增加12个字节,两个长度就照抄第10关的,开始位置则是原文件长度+12。相应的,在此之前的58个开始位置都要加上12。然后是添加正文部分。根据第10关的位置和长度找到相应的段落,复制粘贴到文件最后。这三个文件的处理方法相同。

最后是S_99.eex,改动其中调用地图的代码,调用HM58(参数值58)。




————————————————————————

这块增加了没问题??
那看来头像的确是在程序里面有了强制性设置了………………好,我继续研究去…………

2005-4-5 13:11 博雅张生
头像我也刚刚试过。确实是有限制。
剩下的文件里,我估计MMap和Gate可能没有限制,其它的就玄了……

其实我们最需要解决得似乎是Unit战场形象的添加。

2005-4-5 13:14 金圭子
[quote]原帖由[i]zengpoem[/i]于2005-04-05, 13:11:26发表
头像我也刚刚试过。确实是有限制。
剩下的文件里,我估计MMap和Gate可能没有限制,其它的就玄了……

其实我们最需要解决得似乎是Unit战场形象的添加。 [/quote]
这个你试过没有??我倒是没试过…………

你这个做的时候是手动做的还是自己写一个程序来产生一个解压的文件的??
我现在是做了个程序,但是我不知道怎么读文件大小,暂时做的很粗糙,要手动调节大小,属于“半自动”的…………

2005-4-5 13:22 博雅张生
[quote]原帖由[i]金圭子[/i]于2005-04-05, 13:14:03发表
你这个做的时候是手动做的还是自己写一个程序来产生一个解压的文件的??
我现在是做了个程序,但是我不知道怎么读文件大小,暂时做的很粗糙,要手动调节大小,属于“半自动”的………… [/quote]
我是做了一个解压缩的程序,倒是能正确解压,就是算法很滥,解一个Gate.e5就要好几分钟。

文件大小还是比较好读的吧。从文件的跳转表里读。

还做了一个在文件中增加一段的程序,也是属于“半自动”的。需要手动计算最后段落的开始位置、要复制的段落的开始位置等。

其它的文件还没试验过……

你有没有研究过Ekd5.exe的从605DH开始的124个字节。(恰好在武将战场特殊形象之前),这124个字节对应的是31种特殊形象。我把第1-4个字节改为5-8个字节的内容,再进入游戏,也实现了曹操形象是夏侯惇的效果。

很明显,这些数与战场形象有某种特殊的对应关系。如果能够找到这种对应关系,那么至少可以增加几个特殊形象。

2005-4-5 13:58 金圭子
哦咧咧…………


另外,我以前倒是用van的核心代码写了一个完全分成碎片文件的…………倒是合成就要读文件大小…………晤,对了,可以坐在一起的,不过这两天现实的事情好忙,我妹妹结婚了,唉~~忙啊…………

页: [1]


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