昨晚测试了新增兵种番号发现还有若干问题无法解决,所以今天先发布自设兵种的替换法修改教程,替换法就是替换原有的兵种,如游戏中和各剧本不常出现,甚至打通关都碰不到的兵种,如鳄鱼,熊等,我们将其改成自己独有的兵种,只要看懂我的修改法那么带上一队霸王项羽或刘邦也是轻而易举的事,好了言归正传,教程开始:
首先,我希望大家知道在shape003.pck的分目录bfspec文件夹中有大量隐藏兵种和霸王在临的强力兵种,用rpg908解包该文件夹存在shape文件夹中备用,然后调些喜欢的兵种将兵种图片组全部复制覆盖到欲替换兵种的文件夹内,方法如下:
假如我们不喜欢69号兵种鳄鱼,那么用rpg908解包shape003.pck,并查找中意的兵种(点击ddon----压缩包操作----高级,解包bfspec下所有图片组),并将选好兵种的图片组保存到群7主目录下的shape-----bfobj-----bfsoldier文件夹,在此目录下新建个069文件夹,把新兵种图片组全部粘贴进来,这样的好处在于不需要新兵种的时候可以将整个文件夹删除,这样游戏就会默认原有兵种,好了,现在开始说说自改兵种的方法:
第一步:
在setting文件夹---obd目录下存放的全部是数据源文件,找到bfsoldier.obd文件用记事本打开会看到很多代码和数据,大家只要注意以下代码,其它的可以无视,现在我们熟悉下odb文件的命令参数。
[object]
name = ?╞?-----------------此为兵种名称
sequence = 70069----------------此为兵种编号
space = 0, 100, 0--------------很重要的一项,模型定位(这里要说下,此项影响模型在游戏中的位置,0,100,0分别是左,右,中,如果觉得模型在游戏中偏上脱离地面就调少数值,偏下则调高。)
process = bf_class_bfsoldier---------------此为数据库连接位置可以无视
directory = bfobjbfsoldier 01-------------------这点很重要,为此模型的存放地址。
sprite = wait, w010001, #12, w010002, #12, w010003, #12, w010004, #12, w010003, w010002----------------此项为模型在游戏中的待机动作(这里要说明一点,在bfspec目录下的隐藏兵种全部为w0001的编号组,而正规兵种则是以w010001的编号编写,所以我们在导入新兵种时一定要在待机编号前面加上01,否则进入游戏很可能显示原兵种模型)。
sprite = walk, r010001, #5, r010002, #5, r010003, #5, r010004, #5, r010005, #5, r010006, #5, r010007, #5, r010008, #5---------------此项为兵种冲锋编号组(替换新兵种此项无须改动)
sprite = attack1, a010001, #5, a010002, #5, a010003, #5, a010004, #5, a010005, @sp_event_act_attack, #5, a010006, #5, a010007, #5, a010008, #5, a010008, @sp_event_act_wait---------------此项为兵种攻击编号组(新兵种的攻击编号组为atk1,切记要改成attack1,否则替换的新兵在游戏里没有攻击动作)
sprite = attack2, a020001, #5, a020002, #5, a020003, #5, a020004, #5, a020005, @sp_event_act_attack, #5, a020006, #5, a020007, #5, a020008, #5, a020008, @sp_event_act_wait----------------此项为第二攻击动作(同上)
sprite = sattack1, a010001, #5, a010002, #5, a010003, #5, a010004, #5, a010005, @sp_event_act_check, #5, a010006, #5, a010007, #5, a010008, #5, a010008, @sp_event_act_wait---------------此项为副武器攻击编组号,如禁卫的飞刀等
sprite = sattack2, a020001, #5, a020002, #5, a020003, #5, a020004, #5, a020005, @sp_event_act_check, #5, a020006, #5, a020007, #5, a020008, #5, a020008, @sp_event_act_wait---------------同上
sprite = defend, d010001, d010002, #5, d010002, @sp_event_act_wait-----------此项为兵种防御编号组,如神刀兵的盾防等
sprite = hurt, h010001, #5, h010002, #5, h010002, @sp_event_act_wait-----------此项为静止动作
sprite = die1, f010001, #5, f010002, #5, f010003, #5, f010004, #5, f010005, #90, f010005, @sp_event_act_fadeout
sprite = die2, f020001, #5, f020002, #5, f020003, #5, f020004, #5, f020005, #90, f020005, @sp_event_act_fadeout
sprite = die3, f030001, #5, f030002, #5, f030003, #5, f030004, #5, f030005, #90, f030005, @sp_event_act_fadeout
sprite = die4, f040001, #5, f040002, #90, f040002, @sp_event_act_fadeout
sprite = die5, f050001, #5, f050002, #5, f050003, #5, f050004, #5, f050005, #90, f050005, @sp_event_act_fadeout---------------------此5项为兵种死亡编号组,如被杀时的模型动作(1-5是5种死法,如新兵就1种死法可将其余4项删除)
;sprite = walkhorse, r020001, #5, r020002, #5, r020003, #5, r020004, #5, r020005, #5, r020006, #5, r020007, #5, r020008, #5, r020008, @sp_event_act_fadeout---------此项可以无视。
你可以打开bfspec.odb找到新兵种的编号地址,将第6行的sprite = walk以下一直到;sprite = walkhorse, r020001, #5, r020002, #5, r020003, #5, r020004, #5, r020005, #5, r020006, #5, r020007, #5, r020008, #5, r020008, @sp_event_act_fadeout复制,然后在打开bfsoldier.odb找到需要修改的兵种编号将原数据覆盖,这样省去手动改数据的麻烦。
第二步:首先我们要知道每一个模型在指定的文件夹中都有图片组,如shapebfobjbfspec 69目录下分别有a010001.shp--a010008.shp、a020001---a020008、f010001----f010004、r010001----r010008以及w010001---w010004等图片组而以上的编号组是游戏中正规兵种的编号,对于bfspec目录下的隐藏兵种的编号组均多出了01,也就是说正规兵种为a010001隐藏兵种则是a0001,这点很重要,我们拿069号兵种鳄鱼做为实验:
[object]
name = 鳄鱼(剑仙)-----------这是原兵种名字,我改为剑仙
sequence = 70069----------编号不动
space = 0, 200, 0-----------调好模型定位
process = bf_class_bfsoldier
directory = bfobjbfsoldier 69
sprite = wait, w010001, #12, w010002, w010003, w010004, w010003, w010002, w010001--------此处换成新兵种的编号组(切记新兵种编号组一定要加01)
sprite = walk, r10001, #5, @sp_event_act_walksound, r10002, r10003, r10004, r10005, r10006, r10007, r10008------此处无须改动
sprite = attack1, a0001, #5, a0002, a0003,#7, a0004,#5, a0005, @sp_event_act_attack, a0006, a0007, a0007, @sp_event_act_wait
sprite = attack2, a0009, #5, a0010, a0011, #7, a0012, #5, a0013, @sp_event_act_attack, a0014, @sp_event_act_wait
sprite = sattack1, a0128, #4, a0129, a0130, a0131, #8, a0132, #2, a0133, a0134, #4, a0135, w0001, @sp_event_act_wait
sprite = sattack2, a0136, #4, a0137, a0138, a0139, #8, a0140, #2, a0141, a0142, #4, a0143, a0144, w0001, @sp_event_act_wait
sprite = sattack3, a0128, #4, a0129, a0130, a0131, #8, a0132, #2, a0133, a0134, #4, a0135, w0001, @sp_event_act_wait
sprite = defend, w0018, #30, w0017, #6, w0001, @sp_event_act_wait
sprite = hurt, w0022, #30, w0021, #6, w0001, @sp_event_act_wait
sprite = die1, f0001, #5, f0002, f0003, f0004, f0005, #300, @sp_event_act_fadeout
sprite = die2, f0001, #5, f0002, f0003, f0004, f0005, #300, @sp_event_act_fadeout
sprite = die3, f0001, #5, f0002, f0003, f0004, f0005, #300, @sp_event_act_fadeout
sprite = die4, f0001, #5, f0002, f0003, f0004, f0005, #300, @sp_event_act_fadeout
sprite = die5, f0001, #5, f0002, f0003, f0004, f0005, #300, @sp_event_act_fadeout------------这里改成新兵种的编号组
;sprite = walkhorse, r20001, #5, r20002, #5, r20003, #5, r20004, #5, r20005, #5, r20006, #5, r20007, #5, r20008, #5, r20008, @sp_event_act_fadeout-----------------此处无视
第三步:odb数据源我们已经搞定了,下面是给新增兵种设定属性和技能;
首先打开soldier.ini文件,找到你欲加新兵种的编号地址69号,修改如下:
[soldier]
no = 69
name = 鳄鱼(剑仙)-----这里改成我想要的名字
special =
orderno = 69-----此处为模型地址
objid = 69------同上
data01 =
data02 = -------这3项为升级兵种相关
data03 =
superhit = 25-------无须改动
feature =
sex = 0------性别
diemode =
rank = 2
upgrade = 14
offsetz = -45
sizex = 1
str = 0
int = 0
life = 1
speed = 6-------兵种速度
interval = 65
detectrangemin = 1
detectrangemax = 1---------此为副武器射程(如禁卫兵的飞刀)
weapon = 0---------此处为副武器种类
weaponspeed = 0----------此处是投掷速度
basepower = 8--------新兵种的初始攻击力
addpower = 2-----------防御力
height = 150-----------兵种高度
horse = 0
type = 1
color = 10-------兵种颜色
好了兵种的属性设定完毕,现在修改兵种在游戏中的名字显示和说明显示;
打开termtext.ini文件,由于新兵种设定编号为69,士兵名称是13000,那么我们在文件中查找string = 13069,剑仙,这是改兵种名字在游戏里正确显示,士兵说明是13500,在查找string = 13569,强大且美丽的剑灵仙女(加上说明)。
若不需要新兵可以将shapebfobjbfsoldier 69文件夹删除,在进入上面2个ini文件把名字改过来即可,系统优先读取shapebfobjbfsoldier 69文件,删除后系统会默认pacth.pak内的文件。
---------------------------------
对了,忘说了一项,直接把新兵的图片编号组改成原有兵种的图片组覆盖也可以,但兵种的其它动作和技能全没有,就像机铁大将军没有火炮和变形技能,一定要在odb数据源里改才会有技能.
-------------------------------------------
搞定,现在可以进入游戏测试了,测试图如下: