第八章 迷宫和剧情战斗的遇敌群(layoutgr.enc)
很多迷宫内都会遇到随机一组敌人并与之交战,每一组那样的敌人,我们称之为一个遇敌组,它们有特定的阵容,如第八章所说的那样。而一个迷宫内,会碰到好几种特定的遇敌组,这些遇敌组的集he,我们称之为该迷宫的遇敌群。
(遇敌群和遇敌组两个概念不要搞混了,以前的教程可能没说清楚,但自此之后,要把它们的含义区分并固定下来。遇敌群可能简称为敌群,遇敌组有时则简称为敌组。)
剧情战也对应有一个遇敌群,不过,往往只包含一个遇敌组,所以剧情战里我们碰到的遇敌组都是固定不变的,不像迷宫战斗那样,会随机出现各种不同组合的敌人。
遇敌群的信息包含在layoutgr.enc文件里。打开layoutgr.dat,拉到offset=0x00001FC0那附近。
附图:


每个遇敌群数据块大小是0x1fc(跟遇敌组一样)
如附图,从注释栏可以大概知道,这是冰窟某些/个地图内的遇敌群。
这个遇敌群的数据,从offset=0x00001fc0开始,直到offset=0x000021bb,大小正是0x1fc
同样,这也没有标明该敌群的代码,实际计算方法也是算之前有多少个大小为0x1fc的数据块,跟遇敌组代码计算方法一样。比如这个遇敌群,它的数据起始地址是0x00001fc0(辨认方法之一:0x18个字节后便是敌组数存储地址),那么这意味着之前的数据块总大小为0x1fc0,根据0x1fc0/0x1fc=0x10(用计算器或程序去算),可知,它的代码就是0x10。不过这个代码在初阶修改行为中一般不会用到,只在更改剧情文件时会用到。
以0x00001fc0为基址,偏移0x18处(即0x00001fd8),就是该敌群内所包含的敌组数,附图内为0x0a,亦即有10个敌组。这个位置上的代码不能超过0x0a,亦即最多只有10组。如果把这里的0x0A改为7,那么这表明随后的前7个遇敌组代码才是有效的,又如果,此处为1,那说明到时候只会碰到一个固定的遇敌群组(多见于剧情战)。
以0x00001fc0为基址,偏移0x1C~0x40(即0x00001fdc~0x00002000),为10个指定的遇敌组代码,届时,这些敌组会在战斗时等概率随机出现。相同遇敌组代码可以重复出现——如果要加大某些敌组的出现概率,就采取这个办法。
以0x00001fc0为基址,偏移0x44(即0x00002004),为该敌群描述。
偏移0x6c处(即0x0000202c),为该敌群所可能采用的战斗背景地图总数。
原版里此处一般为1,意即进入战斗时只会出现一个固定的战斗背景地图,偏移0x70的代码便是地图代码。
如果为2,那将会在两个地图中随机选择一个作为战斗背景地图,而这种情况下,偏移0x70和偏移0x74的两个代码即是两个可选地图的代码。
又如果偏移0x6c处代码为3,那将会有3个可选地图及相应代码,分别在偏移0x70、偏移0x74和偏移0x78处。以此类推。最多不能超过6个可选地图。
战斗背景地图代码所对应地图名称,包含在battlegb.enc文件里。请自行打开battlegb.dat加以查看,数据结构很简单,就是先地图代码,然后是地图名称(可以用rpgviewer根据名称找相应图片来查看),后面再跟着无关紧要的文字注释。如此反复。
偏移0x88处(即0x00002048),为该敌群的战斗所采用的背景音乐。
此处为0,则系统会采用castle\multimedia\fight\audio\mp3里的music0030.mp3作为战斗音乐,原版里即为战阵
此处为1,则系统会采用castle\multimedia\fight\audio\mp3里的music0031.mp3作为战斗音乐,原版里即为破暗
此处为2,则系统会采用castle\multimedia\fight\audio\mp3里的music0032.mp3作为战斗音乐,原版里即为神威
为3,即采用music0033.MP3,幽煌
为4,即采用music0034.MP3(原版没有,民间mod里可能会有,需同时改动miscinfo.enc文件)
……
如果采用原版的rpg.exe,则新增战斗音乐不要超过music038.mp3。
偏移0x9c处(即0x0000205c),为该敌群的逃跑概率。剧情战一般为0,意即不可逃跑。这个概率是单人单次逃跑概率。在300块3.0里,只要此处值高于0,就能100%成功逃跑。
若采用原版rpg.exe,本部分内容介绍到此为止,以下为300块3.0新增功能。
偏移0xa0处(即0x00002060),为该敌群是否为限时战的判断代码。为0,不限时;为1,限时。这个是300块3.0版的新增功能,原版不起作用。
偏移0xa4处(即0x00002064),关系该敌群战斗时限的数值。具体时限=该数值/10×(100%~150%),也就是说,时限下限值为该数值/10,上限值为该数值/10×1.5,有50%的随机涨幅。例,此处若为0x1F4(10进制的500),则实际战斗时间为50~75秒。
偏移0xD8处(即0x00002098),附加敌组数。原版里一个敌群至多包含10个敌组,为丰富迷宫战斗的敌组数,新增了附加敌组设定功能。此处值即为附加敌组的总数。接下来的代码分别是各敌组的代码。
第九章 五魂化蕴表(magictb.enc)
这部分信息包含在magictb.enc里。
用winhex打开magictb.dat查看。
每个技能习得信息对应大小为0x24的数据块。
比如offset=00000000~00000020这9个位置就是夏侯仪习得冰霜雪舞的级别条件和五内要求。
00000000:01 夏侯仪代码
00000004:03 最低级别(习得冰霜雪舞的最低级别)
00000008:08 最高级别
0000000b:迅
00000010:烈 10
00000014:神
00000018:魔 5
0000001c:魂
00000020:9d 01(冰霜雪舞代码)
其他技能习得的格式完全类似。
附图
