打造自己的曹操传

发布时间:2012-10-18 14:22:32   来源:文档文库   
字号:

打造自己的曹操传(完整版)

1、初始数据

改存档文件大家都很熟悉了,不过一般也就改改人物属性和宝物而已。借助于解压以后的data.e5文件,可以进行更多的修改。(data.e5文件放在www.freewebs.com/vbvan/data.rar

data.e5中包含了很多文件,下面依次进行解析。

第一个Char.dat。人物初始属性,512*20h

0h~chName

dhfhIndex之类的东西

12h~16h:五围(*2就是统武政智魅)

17hHP

19hMP

1ah:兵种编号

1bhLv

第二个是Item.dat。宝物,104*19h

0h~Name

11h:宝物类型

12h:特殊效果的类型(没有则为ff

13h:价格/100ff表示非卖品)

14hIcon

15h:基本效果值

16h:特殊效果值

17h:升级加的效果值

18h:是否是特殊宝物

第四个是Troop.dat。部队属性,53*1bh

0hSpeed

1h:攻击范围

2h~8h:每升一级加的属性值(234分别对应BAS

9~1bh:可以装备的宝物类型(1表示可以,0表示不可以)

第五个是Terrain.dat。地形属性,27*3ch

0h~1dh:某个兵种对应的各种地形效果(例如a表示100%b表示110%

1eh~3bh:某个兵种对应的各种地形消耗移动力(ff表示不能移动)

第六个是Magic.dat。魔法属性,73*46h

0h~ahName

bh:魔法类型

ch:对敌为0,对己为1

dhhitarea(攻击范围)

eheffarea(效果范围)

fh:消耗的MP

10hIcon

11~45h:不同兵种习得此项魔法所需的最小Lv0表示不能学会)

2、图像资源。

酝酿中。。。不过估计还是需要用外部程序先将图片转换到指定的256色调色板位图。

3、剧本文件

详见后面的帖子

第一讲.修改敌人的出场设定

我想这个应该是许多人希望的,特别是喜欢自虐的朋友,可能希望敌人变态一点。下面的应当能满足你的要求

首先需要修改的文件是s_XX.eex。先查找“440045002600”(十六进制,一般出现在文件的第0x20~0x30字节之间),找到后在“0x45”处向后移18个字节,这个就是出场时敌人小兵的等级加成值。举个例子,比如根据计算我方的平均等级是20级(具体算法可以参考我以前的帖子),那么出场敌人小兵的等级就会在20的基础上根据这个加成值进行修正。我们一般看到的小兵都是18级,这是因为修正值是-2。具体的表达式是这样的,假设修正值为x,如果x<50,那么最后的等级要加上x,否则会减去x-50。你会看到文件里此处的修正值一般都是52,也就是减2

所以可以把它改成一个小于50的数,那么你会发现敌人的等级会高很多

在“0x45”处向后移46个字节,你应当发现前面的字节是0x46。好,这就是友军的出场数据了,具体结构如下

0200XXXX

2600XXXX

0400XXXXXXXX

0400XXXXXXXX

2b00XXXX

3e00XXXX

4500XXXX

0700XXXX

0200XXXX

0400XXXXXXXX

0400XXXXXXXX

一共有20

接下来就是敌人的,结构如下

0200XXXX

2600XXXX

2600XXXX

0400XXXXXXXX

0400XXXXXXXX

2b00XXXX

3e00XXXX

4500XXXX

0700XXXX

0200XXXX

0400XXXXXXXX

0400XXXXXXXX

一共有80个。

换句话说,战场上至多有20个友军,80个敌军以及15个我方人员

其中0200后面跟的就是出场武将的编号,比如你把它后面的XXXX改成0300,那出场的就是关羽了。

第一个0400后面跟的是武将在地图上的横坐标,第二个0400是纵坐标

2b00后面是朝向,3e00后面是武将等级相对于小兵的加成

要想新增出场人物的话,找第一个0200后面跟ffff的,将ffff(表示没有武将)改成你要的武将编号,设定地图上的位置,并将3e00后面改成你要的等级加成即可

第二讲.我军出场设定

我军出场的人物因为是由玩家选择的,所以剧本里的信息和前面的敌军出场设定的格式有所不同。

简单的方法,先搜索字符串“HEX我军设定”,在字符串后找到“0x4b”,就是我军的设定了。格式如下:

0400XXXXXXXX

0400XXXXXXXX

0400XXXXXXXX

2b00XXXX

2600XXXX

第一个0400后面跟的是武将的标号,比如你在出场武将选择里第一个选择的武将他的编号就是0

后面两个0400后面跟的是武将在地图上的坐标

2b00后是武将的朝向

第三讲.敌人的特殊装备

一般,有名字的敌方武将会有一些区别于小兵的装备,主要是辅助系和特殊宝物。这也是剧本里面指定的。先搜索字符串“个人装备设定”,在字符串后找到“0x48”,格式如下:

0200XXXX

3b00XXXX

4900XXXX

3c00XXXX

4900XXXX

3d00XXXX

0200是武将编号。3b3c3d后面分别是攻防辅的装备对应的Index

Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F

00000000 45 45 58 00 01 02 00 00 00 00 16 00 00 00 EE 1B EEX...........î.

00000010 00 00 31 38 00 00 01 00 D4 1B 02 00 05 00 00 00 ..18....Ô.......

00000020 00 CB 1B 44 00 45 00 26 00 00 00 26 00 00 00 04 .Ë.D.E.&...&....

00000030 00 14 00 00 00 3E 00 34 00 32 00 00 00 02 00 FF .....>.4.2.....ÿ

00000040 FF 32 00 01 00 02 00 00 00 47 00 00 00 22 00 01 ÿ2.......G..."..

00000050 00 46 00 02 00 03 00 26 00 FF FF 04 00 12 00 00 .F.....&.ÿÿ.....

00000060 00 04 00 0D 00 00 00 2B 00 03 00 3E 00 06 00 45 .......+...>...E

00000070 00 FF FF 07 00 01 00 02 00 FF FF 04 00 00 00 00 .ÿÿ......ÿÿ.....

00000080 00 04 00 00 00 00 00 02 00 63 00 26 00 FF FF 04 .........c.&.ÿÿ.

00000090 00 09 00 00 00 04 00 09 00 00 00 2B 00 03 00 3E ...........+...>

000000A0 00 04 00 45 00 FF FF 07 00 02 00 02 00 FF FF 04 ...E.ÿÿ......ÿÿ.

可能有些朋友对十六进制编辑不太熟悉,这里举个例子(汜水关,s_01.eex)。首先先要装一个十六进制编辑器,譬如winhex或者Ultraedit。打开s_XX.eex文件就会看到类似于上面的东西。(最左边的一排就是pos)。

先看pos=0xA的地方,也就是第一行,第A列处的值,它就是剧本数据开始的偏移量。这里是0x16,所以先移动到pos=0x16winhex里面也可以使用position->go offset)。一般剧本一开始都是0100xxxx02000500000000xxxx,这些字节是控制用的,可以跳过。接着就是战场设定的数据了。对上面的例子,可以看到控制字节之后是4400pos=0x23)。从这里开始搜索hex value4600”就会跳到pos=0x51了,于是就可以修改后面的友军出场设定了。

譬如第一个人就是关羽,对应的数据是

02 00 03 00 26 00 FF FF 04 00 12 00 00 00 04 00 0D 00 00 00 2B 00 03 00 3E 00 06 00 45 00 FF FF 07 00 01 00

第四讲.战役的全局控制变量

战役的全局变量是由一开始的4500控制的。从上一贴的例子可以看到4400后面就是4500,它的结构如下:

2600XXXX

2600XXXX

0400XXXXXXXX

3e00XXXX

3200XXXX

0200XXXX

3200XXXX

0200XXXX

4700XXXX

2200XXXX

(前面已经提到,3e00是控制小兵等级加成的)

0400后面就是限制的回合数

第一个0200后面是胜利条件中“击退XX”中敌方武将的index

第二个0200后面是失败条件中“XX撤退”中我方武将的index

第五讲、我方武将不死

许多人对郭嘉、典韦死掉感到很惋惜。当然直接改存档文件可以让他们复活,不过也可以直接改剧本,这就是下面要介绍的3b00的功能

直接搜索"3b000200"(在r_XX.eex中搜)就会找到如下的数据

3b00

0200XXXX

0e00XXXX

3e00XXXX

其中第一个0200后面就是武将的Index,而0e00就是控制武将登场或死亡的,0表示登场,FF表示死亡。3e00和以前的含义一样,代表等级加成。

比如,典韦之死是s_11.eex里面的,在其中搜一下"3b00020010000e00ff00",并把最后的ff00改成0000就可以了。

郭嘉是s_25.eex,夏侯渊是s_36.eex,庞德是s_39.eex

当然,只是把3e00后面改成0000的话,过场动画还是会说那个武将死掉了,所以要想完美的解决这个问题,就要对剧情动动手脚了,这也是后面几讲的内容

总结一下,曹操传的剧本文件是通过Code来控制各项功能的(也可以把它看成是函数的代号),Code之后就是具体的参数,每个参数都由类型和具体的值组成。

比如说控制升级的3b00代码也可以写成:

3b00 CharJoin(

0200XXXXint CharIndex

0e00XXXXbool Option

3e00XXXXint LvAddOn)

而类型都是固定的,譬如说0200代表CharIndex3e00代表LvAddon等等

介绍猎雕强化战役补丁中三项功能的实现的原理

1、战利品:特指战斗结束后得到的物品。代码是59

0400XXXXXXXX

1700XXXX

4900XXXX

1700XXXX

4900XXXX

1700XXXX

4900XXXX

2600XXXX

17后面就是宝物的代号,一场战斗至多可以给三件宝物。要多的话,可以通过3d来实现

1700XXXX

4900XXXX

2600XXXX

0200XXXX

2、战力削弱

许多人对如何让第二关孙坚军一开始不扣血很感兴趣,其实这是通过4d来实现的

4100XXXX

0200XXXX

0400XXXXXXXX

0400XXXXXXXX

0400XXXXXXXX

0400XXXXXXXX

0400XXXXXXXX

0300XXXX

2f00XXXX

1800XXXX

3000XXXX

0400XXXXXXXX

0400XXXXXXXX

其中最后两个4后面就分别代表了扣的hpmp。而前面的4则划定了一个矩形,这个削弱操作会对矩形中所有的人进行

3、许子将不消失

这是由31控制的

2c00XXXX

0200XXXX

0400XXXXXXXX

0400XXXXXXXX

0400XXXXXXXX

0400XXXXXXXX

0300XXXX

2后面是消失的武将代码(需将2c后设为0),至于那些4,和4d中的是类似的,用来进行批量的武将消失(此时需将2c后面设为12后面设为ffff

猎雕的版本里实际上是把武将代码改成了另外一个人,从而达到了偷天换日的目的

许子将的等级可比小兵要高30级哦

隆重介绍曹操传战斗剧情的一些修改方法

战斗剧本存放在s_XX.eex中,它由三部分组成。

第一部分就是初始出场设定以及一开始的固定剧情。这个前面大概的介绍过了

第二部分就是各种事件。

第三部分是一些收尾的工作。

那么我们就来看看第二部分。这一部分的偏移存放在第e字节(比如说第一个剧本s_00.eex里,第二部分的偏移就是0x1dfe)。找到第二部分开始的地方以后,首先看到的是一个整数,说明这个剧本里面有多少个事件,之后我们就能看到许多个以020*******开头的事件了。

事件的一般结构如下:

XXXX(事件的长度)

02000500

XX...XX(硬性测试条件)

0500XX...XX(事件测试条件)

{

XX(事件的代码)

0b00

0400XXXXXXXX

2700XXXX(对变量XXXXXXXX赋值XXXX

}

当然,事件里面还能再嵌套0500操作符

所谓硬性测试条件是根据战场上的情况,当满足条件时会触发事件。而所谓事件测试条件,则是根据其他事件发生与否,来确定本事件是否发生

因为曹操传内部对事件的处理比较特殊,所以最好不要直接修改代码,但是可以对代码的参数进行修改

比较常见的硬性测试条件有以下一些,后面会有介绍

25:武将进入指定地点测试

26:武将进入指定区域测试

2e:武将相邻测试

36:武将撤退测试

41:战场人数测试

3f:回合测试

42:战斗胜利测试

43:战斗失败测试

第三讲.敌人的特殊装备

一般,有名字的敌方武将会有一些区别于小兵的装备,主要是辅助系和特殊宝物。这也是剧本里面指定的。先搜索字符串“个人装备设定”,在字符串后找到“0x48”,格式如下:

0200XXXX

3b00XXXX

4900XXXX

3c00XXXX

4900XXXX

3d00XXXX

0200是武将编号。3b3c3d后面分别是攻防辅的装备对应的Index

你是说增加敌军或友军数量?

需要分别设置0200Index,2b00(朝向),pos,0700(一般设为01即可)后的值

至于要增加我军的出场武将数,则需要修改r_xx.eex

控制的代码是0600

2e00XXXX

0400XXXXXXXX

3800XXXX

3800XXXX

3800XXXX

3800XXXX

3800XXXX

3900XXXX

3900XXXX

3900XXXX

3900XXXX

3900XXXX

其中4后面就是出场的最大人数,38后面就是必须出场的武将(一般有两个0600,改2e00后面跟01的那个)

顺便提醒一下,我方至多出场15人,这是物理限制,无法突破

这里对几个测试条件进行说明

25:武将进入指定地点测试

0200XXXX

0400XXXXXXXX

0400XXXXXXXX

这个很容易,4后面就是地点的坐标。至于2后面除了跟武将的Index之外,还可以跟通配符,比如401代表我方和友军的任何一个部队

26:武将进入指定区域测试

0200XXXX

0400XXXXXXXX

0400XXXXXXXX

0400XXXXXXXX

0400XXXXXXXX

和上面类似

2e:武将相邻测试

0200XXXX

0200XXXX

2600XXXX

武将相邻之后可以触发对话或者单挑。单挑本身并不是由单一的代码控制的,而是由一系列的6X的代码来实现的

36:武将撤退测试

0200XXXX

2300XXXX

0400XXXXXXXX

2400XXXX

实际是通过测试hp是否等于0来判断的。

41:战场人数测试

0300XXXX

0400XXXXXXXX

2400XXXX

3f00XXXX

0400XXXXXXXX

0400XXXXXXXX

0400XXXXXXXX

0400XXXXXXXX

3指明要统计的人物的属性。比如说0代表我军,1代表友军等等。4就是要求人数。24的含义见下面。3f=0时表示统计整个战场,否则统计由4指定区域内的武将数

3f:回合测试

0400XXXXXXXX

2400XXXX

24=012分别表示大于等于、小于、等于。4后面是回合数

42:战斗胜利测试

43:战斗失败测试

没有参数

这里介绍控制剧情分支最重要的Code--5

Code5类似于if语句,根据全局变量来决定跳转。其格式如下

0500

3500XXXX

...

3500XXXX

...

35后面跟的是变量个数,...就是具体变量的代号

比如说虎牢关之战后,如果孙坚撤退了,游戏中会设置全局变量2bd

之后在剧本R_02.eex中,就用如下的代码来判断

0500

35000100

bd02

35000000

其中第一个35后面的变量要求值为1,第二个35后面的变量要求值为0。和在一起取and

举个例子

0500

35000200

bd02

0100

35000100

0200

这个表达式在变量2bd11,且变量20的时候才成立。

因此,可以通过这个来改变剧情的跳转。当然如果要改剧情,这些还是不够的

本文来源:https://www.2haoxitong.net/k/doc/60e288dead51f01dc281f189.html

《打造自己的曹操传.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式