[成吉] 成吉思汗4剧本修改汇总(4):城市

楼主: iamcrazyforu (爱吃糖的猫)   2018-04-07 21:52:18
这一篇将介绍城市相关的修改。
除了特别说明的例外,进行任何修改时请注意下列几点事项:
1.请先预备修改所需的必要工具。(请参见:事前准备与各档案功能篇 #1Qmtu68b (Koei))
2.进行修改时,请以您的hex编辑软件打开档案,并将软件调整到hex编辑模式。
3.内文提到的“位址”全部以16进位表示。
4.在进行任何编辑后,请务必确认档案的字符数和原本没有差异。
城市
各剧本中包含的城市数目,位于CKW95.exe执行档内,最多80个,其位址依各剧本分别为:
第一剧本 90ABB
第二剧本 90AC8
第三剧本 90ACF
第四剧本 90AD6
例如第三剧本的的原有城市数为54个(16进位为36),若想要增加为56个,就要将90ACF从36
改为38(就是十进制的56)。
这里必须注意,剧本内的城市数与城市资料的长度必须与执行档一致,否则会当机。
若有强者愿意开发编辑器,建议可以在读取剧本档时先请使用者输入剧本内国家与城市数
作为剧本档案是否有效的检查。
(若对城市的资料标准化,虽然游戏可以正常读取,但是因为剧本选单中对第一个国家的武
将数的判断,是以最后一个有效城市后面的资料长度为基准,如果放入空白城市,会造成
选单中第一个国家显示的武将数大幅膨胀的bug)
城市的资料在剧本档SCEDAT1~4.ck中的位置,在各剧本的国家资料之后,因此没有固定位
址。各城市在剧本档中排列的顺序,就是在武将资料中的城市编号,编号从00开始。
每座城市的资料长度固定为61 byte,但由于在各剧本中包含的城市数不同,所有城市的资
料在剧本档中的字符总数通常不会相同,并且可以依国家数的增减而变动。城市资料的格
式如下:
aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
aa aa aa aa aa bb cc dd ee ee ff ff gg gg hh hh
ii ii jj 00 kk 00 ll mm mm mm mm mm mm mm mm mm
mm nn nn nn nn nn nn nn nn oo oo oo pp
其中:
aa为城市名称,共21个 byte,最多可容纳10个全角字,在最后一个字的后面一个byte要放
入16进位码00,如果不到10个字,后面用空白(16进位码20)填补。
bb为城市的固定编号,通常同一个城市在各剧本档内的固定编号相同。会影响与城市相关
的事件的触发,建议在同一剧本内不要重复。
cc为城市所属国家编号,就是各国的资料在剧本档中排列的顺序。(注意:是国家编号,不
是固定编号)
dd为城市规模。
ee为城市防御,最小为1,最大800(16进位的320,显示为20 03),请配合城市规模修改。
ff为城市金钱,最大50,000(16进位的C350,显示为50 C3)。
gg为城市粮食,最大50,000(16进位的C350,显示为50 C3)。
hh为城市兵力,最大50,000(16进位的C350,显示为50 C3)。
ii为城市伤兵数,最大50,000(16进位的C350,显示为50 C3),剧本开始通常都设为0。
jj为城市位置的X座标。
kk为城市位置的Y座标。(座标的部份会在后面的段落一并说明)
ll为城市所属文化圈代码。
mm为城市的文化值,依十种文化值的代码顺序排列,各种文化值的代码请参见共通设定篇。
nn为城市拥有宝物的编号,每座城最多可以拥有8种,不满8种的部分请补上十六进制码50。
各种宝物的编号规则会在后面的妃子与宝物篇介绍。
例如一个城市拥有3种宝物,分别为宝物00、08、79(十六进制的4F),这一段就会显示为:
00 08 4F 50 50 50 50 50
oo为城市的可编组兵种。其中:
第一个byte控制编号00~07的兵种,在可编组兵种00~03时,分别将其个位数+1、+2、+4、
+8、可编组兵种04~07时,分别将十位数+1、+2、+4、+8
第二个byte控制编号08~15的兵种,在可编组兵种08~11时,分别将其个位数+1、+2、+4、
+8、可编组兵种12~15时,分别将十位数+1、+2、+4、+8
第三个byte控制编号16~23的兵种,在可编组兵种16~19时,分别将其个位数+1、+2、+4、
+8、可编组兵种20~23时,分别将十位数+1、+2、+4、+8
兵种编号就是各兵种资料在剧本档中的排列顺序,从00到23。
例如,第四剧本中帖古雷特的可编组兵种显示为81 40 0C,显示了在帖古雷特可编组的兵
种为:
兵种00~03段–兵种00(默认是轻步兵)
兵种04~07段–兵种07(默认是短弓兵)
兵种08~11段–无
兵种12~15段–兵种14(默认是轻弓骑兵)
兵种16~19段–兵种18(默认是骆驼兵)、兵种19(默认是象兵)
兵种20~24段–无
若是要让帖古雷特可编组的兵种中加入兵种01(重步兵)、兵种02(长枪兵)、兵种15(狩猎骑
兵),就要将第一个byte个位数的值+2再+4,第二个byte的十位数的值+8,
转换为16进位后,可得帖古雷特的可编组兵种资料就会变成87 C0 0C。
pp不明,在剧本中的值皆为00。
若要增加新城市,在剧本档内只要在原本的最后一个城市后面插入61个byte,填入各项设
定即可。
内建城市
游戏中80个内建城市名称资料的位置,在CKW95.exe执行档的位址1D8DC0~1D9087。如果要
把字数由多改少,可以在后面补上空白(16进位码20)。
其中,名称可容纳6个全角字的有1个、可容纳5个全角字的有4个、可容纳4个全角字的有13
个、可容纳3个全角字的有29个、可容纳2个全角字的有33个。
内建城市座标资料的位置,在CKW95.exe执行档的位址1D8B40~1D8C7F,每组座标资料的格
式为xx 00 yy 00(xx指内建城市的x座标,yy指内建城市的y座标,下一段会对座标进行完
整介绍)
须注意座标资料的排序和名称资料相反,第一组座标资料对应的是最后一组名称资料。
例如名称资料中的第二个是阿纽拉德普勒,对应的座标资料就是座标资料中倒数第二组的
A3 00 D9 00(换成十进制可知此内建城市的座标为163,217)。
座标
游戏的大地图大小为250×225格,故x座标的范围从0~249,y座标的范围从0~224。座标的
原点在地图左上角,x轴的方向以右为正,y轴的方向以下为正。
座标的排列是菱形穿插,下面以地图最左上的25格为例:
0,0 0,1 0,2 0,3 0,4
1,0 1,1 1,2 1,3 1,4
2,0 2,1 2,2 2,3 2,4
3,0 3,1 3,2 3,3 3,4
4,0 4,1 4,2 4,3 4,4
改变城市座标请先注意当地地形是否可建设建筑物。
另外,改变剧本SCEDAT1~4.ck内既有城市的座标,需要一并更动对应的MAPVAR1~4.ck建筑
设定档(MAPVARx.ck对应的就是第x剧本的设定),否则会出现bug,说明如下:
城市所在的位置在建筑设定档中,那一个座标上应该要有一座建筑物“城市入口”,部队
的进出和对城市的扩建都需要此建筑正确设定在城市的座标上。
在MAPVAR1~4.ck建筑设定档中,从位址0000B以后的168,750个byte为各座标上的建筑与道
路资讯,每一座标的资料有3 byte,其排列为先右再下,即放完(0,0)至(0,249)以后,接
下来放(1,0)至(1,249)的资料。
如果要快速寻找某个座标(X,Y)的资料位址,可利用下列公式进行:
座标(X,Y)资料的第一个byte的十进制位址=11+(3×X+750×Y)
将得到的位址由十进制转为16进位,即可得到(X,Y)正确的资料位址。
一个座标若为城市之所在(即有“城市入口”建筑),在建筑设定档中的代码为:00 01 FF
其他建筑物与道路的设定,会在地图修改篇继续介绍。
随机城市命名
在自建新国家、或玩家在游戏中不在内建城市地点新建城市时,委任电脑命名城市的候选
名称列表,在NEWNAME.ck档案的位址C98以后,其排列顺序应是按地区编号。
作者: cito (シト)   2018-04-07 22:12:00
作者: Batou (小當家)   2018-04-08 00:20:00
先推再看城市兵种那边之前自己看了好久都没看懂 原来是这样...想请问i大 知道特殊人物兵种加成效果是写在执行档的哪里吗
楼主: iamcrazyforu (爱吃糖的猫)   2018-04-12 22:36:00
类似城市兵种这样的格式在武将修改还会见到另外兵种加成的部分,目前还不知道位址。

Links booklink

Contact Us: admin [ a t ] ucptt.com