精華區beta Emulator 關於我們 聯絡資訊
這一篇將介紹城市相關的修改。 除了特別說明的例外,進行任何修改時請注意下列幾點事項: 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以後,其排列順序應是按地區編號。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.56.172 ※ 文章網址: https://www.ptt.cc/bbs/Koei/M.1523109140.A.C40.html
cito: 推 04/07 22:12
※ 編輯: iamcrazyforu (111.243.56.172), 04/07/2018 22:30:15
Batou: 先推再看 04/08 00:20
Batou: 城市兵種那邊之前自己看了好久都沒看懂 原來是這樣... 04/08 01:47
Batou: 想請問i大 知道特殊人物兵種加成效果是寫在執行檔的哪裡嗎 04/08 01:51
iamcrazyforu: 類似城市兵種這樣的格式在武將修改還會見到 04/12 22:36
iamcrazyforu: 另外兵種加成的部分,目前還不知道位址。 04/12 22:37
※ 編輯: iamcrazyforu (140.112.112.64), 04/16/2018 15:10:02