[成吉] 成吉思汗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