SC4LOT製作初級教程

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 29

SC4LOT 製作

初級教程

作者:入世枕霞湖

目錄
敍 ................................................................... 壹
第一節 SC4LOT 製作基礎知識 .......................................... 贰
第二節 Exemplar File 與 Cohort File 概述 ............................. 肆
第三節 Exemplar File 初步 之 LotConfigration ...................... 陆
第四節 Exemplar File 初步 之 Prop、Flora、Foundation、RetainingWall 玖
第五節 Exemplar File 初步 之 Building ......................... 壹拾壹
第六節 Exemplar File 初步 之 參數探討 ........................... 贰拾
第七節 UI File 初步 之 語法結構 ................................. 贰拾
第八節 UI File 初步 之 功能調用 ............................... 贰拾伍
第九節 SC4LOT 初步 之 實例分析 ................................ 贰拾捌
第十節 SC4LOT 初步 之 LUA File 與 LText File 概述 ............... 贰拾捌
附錄 ............................................................. 贰拾捌

第零葉 共贰拾玖葉

模擬城市四是一款相當開放的遊戲,玩家可以把自己製作的建築加入到遊戲中,製作符合自身風
格的圖標和用戶界面,甚至可以對遊戲原有參數設置進行一定的修改,以打造屬於自己的城市。
插件應該放在哪裡才能起作用?
首先,您的模擬城市四必須加載了資料碟尖峰時刻(Rush Hour),或者是包含資料碟的豪華版
(Deluxe Edition)。然後在模擬城市四中,插件允許的路徑通常有兩個,一個是[我的文檔]\Simcity
4\Plugins,另一個是[遊戲目錄]\Plugins。在任一路徑下遊戲都允許玩家建立若干層文件夾,插件放
在不同文件夾下在遊戲中功能是等效的。
插件通常包括哪些,什麽是 MOD、LOT、BAT?
MOD 是英文 Modification 的简称,指玩家针对游戏原有數據做的一定的改动,或为游戏添加更多
的内容。MOD 是一個統稱,在模擬城市四中包括幾乎所有的插件,但通常特指非 LOT 的部分,包括對
遊戲本身參數、算法的修改,比如地表 MOD、水面 MOD 等,也包括對非建築物内容的添加,比如交通
類的 NAM(NetwortAddonMOD)。
BAT 是英文 Building Architect Tool 的簡稱,指玩家通過 3D 軟件導出的建築模型。
LOT 是模擬城市四特有的一種 MOD,指玩家在遊戲中添加的建築和設施,經常已與 MOD 區隔開,包
括各種住宅樓、商業樓、公共事業設施、市政設施等。一個 LOT,可以配備自己的 BAT,擁有符合玩家
風格的建築模型,也可以直接調用遊戲原有的建築模型。
插件通常包括哪些文件?
模擬城市四中,插件通常包括這樣幾類文件:.SC4LOT、.SC4DESC、.SC4MODEL、.DAT。雖然文件
後綴名有異,但對文件進行剖析后,可以發現它們並沒有太大的實質差別,都是一組 SC4File 的文件
包。只是.SC4LOT 一般存儲 LOT 的基本屬性文件,包括 LOT 的物件(Object)、類別(Type)、屬性
(Property)、參數(Value)、圖標(Icon)、用戶界面描述(User Interface)等;.SC4DESC 一般存
儲 LOT 的描述文件,包括 LOT 中物件的類別、屬性、參數等;.SC4MODEL 一般存儲插件的模型文件,
包括 3D 模型、2D 貼圖等。
LOT 製作通常有哪些編輯軟件?
BAT 通常由軟件 Gmax+BATInstaller 導出,LOT 的結構佈局模型(Configration,以下簡稱 LOT
模型)部分一般由軟件 LotEditor 導出,LOT 的其它部分一般由軟件 ILiveReader 或者 DatGen 進行配
置,並用它們對 LOT 模型的參數進行一定的修改;而在 LOT 的製作過程中,一般也遵循上面的步驟。
本教程以 LotEditor 導出 LOT 模型為起點,通過對 LOT 文件的分析,介紹 LOT 製作的基本過程、
要點和技巧。本教程的主要内容並不在於手把手地教您製作一個 LOT,因爲這樣的覆蓋面相對較窄;
而是側重於對 SC4LOT 文件的剖析,當您對 SC4LOT 文件的内容有所熟悉,SC4LOT 的製作也便會迎刃而
解。如果您對 SC4LOT 的製作並不十分熟悉,在此筆者建議您選擇複製和修改,而不是新建;如果您希
望自己的 SC4LOT 的製作水平更進一步,在此筆者建議您打開遊戲本身的數據文件(豪華版存儲在
Simcity_1.dat 中,福爾摩莎存儲在 Simcity_2.dat 中,其他數據文件多數存儲的是 2D 貼圖)進行分
析和調用。
本教程在 LOT 模型導出部分使用的編輯軟件是 LotEditor 1.0.12.0(下面簡稱 LE),在後續部分
使用的編輯軟件是 ILiveReader 0.9.3(下面簡稱 Reader),在文本編輯方面使用的軟件是 DatGen
0.6.0.41650,軟件的使用將在相關章節進行簡要的介紹,但在此建議您對數制轉換、數據類型有初步
的了解。本教程對整型數一律採用十六進制,而不再標註 0x,提及某一整型數的某一位也是指十六進
制數的某一位。
本教程為了方便説明,直接引用的英文較多,希望大家予以諒解。
鑒于作者水平有限,本教程中可能存在一些錯誤,希望網友們批評指正。
下面,我們開始我們的教程。

第壹葉 共贰拾玖葉
第一節 SC4LOT 製作基礎知識
在敍言中我們提到插件文件 SC4File 的文件包,用 Reader 打開一個插件文件後刷新(F5)。

圖壹
在這裡我們看到了插件文件中包含的 SC4File。每個 SC4File 有不同的入口標識(Entry ID) 。入口標
識由三個 Uint32 類型的參數組成:類型(Type)、組別(Group)和實例(Instance),其中 Type 表示
SC4File 的文件類型,插件中常見的文件類型如下表所示;Group 在同一文件類型中繼續細分,有的用
於細划功能和文件類型,有的用於對一組共同實現某一功能的文件進行統一標識和管理;Instance 的
參數值是文件的編號,對於不同類型的文件,實例值通常可以相同;但對於相同類型不同組別的文件,
實例值可否相同則需視文件的類型而定,一般說來和引用的情形有關。一個 SC4File 對另一個 SC4File
進行引用時,根據不同的引用方式可能需要引用一個參數,也可能需要引用幾個。當需要引用一個參
數時,引用的是目標文件的實例值;需要引用兩個參數時,引用的是目標文件的組別值和實例值;需
要引用三個參數時,三個參數也就都需要了。顯然,如果某一類文件如果被引用時可能只引用一參數,
那麽這一類文件之間即便組別值不同,它們之間實例值也不可以相同了。最後,每個插件文件中都使
用一個 Dir File(856DDBAC-00000000-00000000)來存儲該插件文件中 SC4File 列表。
Type Value Type Value Type Value
Cohort File 05342861 Exemplar File 6534284A FSH File 7AB50E44
LText File 2026960B LUA File CA63E2A3 PNG/BMP File 856DDBAC
RUL File 0A5BCF4B S3D File 5AD0E817 SC4Path File 296678F7
UI File 00000000-96A006B0
其中:
S3D File 存儲了 3D 模型的參數,每個 3D 模型由一組 S3D File 組成。由於模擬城市四中存在四
個視角、六种視距(視距五和六使用相同的模型,在遊戲中可以明顯看出視距六較爲模糊),所以 BAT
中每組 S3D File 中通常包含二十個文件,實質上就是從不同的視角、不同視距對 3D 模型進行拍照。
它們的入口標識的確定方法是這樣的:組別值和實例值的高五位分別相同;拍照的視距由實例值的第
六位標出,分別為 0-4,依次代表視距 1-5,就是説 4 代表距離最近,也就是模型視圖最大,0 代表距
離最遠,也就是模型視圖最小;拍照的角度由第七位標出,分別為 0-3,依次代表南(South)、東(East) 、
北(North)、西(West);第八位為 0。對於一個 3D 模型,僅僅有一堆 3D 參數顯然是不夠的,還必須
有 2D 貼圖。模擬城市四中 3D 模型用 FSH File 貼圖,每個 S3D File 都至少有一個 FSH File 與之對應,
它們之間組別值和實例值一般相同(通過 Material ID 由 S3D File 指向 FSH File,可以調整,下同);
當 3D 模型較大時模型被拆分成若干塊(Group),每塊配有一個貼圖,也就是說有若干個 FSH File 與
該 S3D File 對應,由實例值的最後一位相區別。當範例(Exemplar)對 3D 模型進行引用時,引用的
是實例值的低三位均為零那個 S3D File 的入口標識。

第贰葉 共贰拾玖葉
FSH File 提供了對 2D 貼圖的引用。除了用於 3D 模型的貼圖外,還經常被用於紋理(Texture)。
同樣由於模擬城市四中存在六种視距,所以每個紋理由五個 FSH 文件組成,圖片尺寸分別為 128×128、
64×64、32×32、16×16、8×8(單位:像素)。它們的入口標識的確定方法是這樣的:組別值相同,
實例值由連續的五個數以區別之(一般前七位相同,第八位使用 0-4、5-9、A-E),其中尺寸最大的圖
片的實例值最小,尺寸最小的圖片的實例值最大,其餘的類推。當範例對紋理進行引用時,或者引用
的是最小的那個實例值;或者由七個參數構成,前兩個分別是 FSH File 的類型值和組別值,后五個依
次為五個 FSH File 的實例值;或者由五個參數構成,依次為五個 FSH File 的實例值。
PNG File 提供了對圖片的引用。LOT 中圖片可以使用 JPEG、BMP、PNG 等格式,但多數情況下使用
的是 PNG,因爲這種格式體積較小、色彩不失真而且遊戲的支持較好。圖片在 LOT 中多用於圖標(Icon)
和用戶界面(UI)引用。用作圖標的 PNG,圖片尺寸為 176×44,由四個 44×44(單位:像素)的圖
標組成,從左到右依次在下列情況下使用:無法選中時(LOT 不能建造時,一般用灰度圖片)、一般情
況、默認選中時、鼠標懸停時。供 GUID 引用的 PNG 將在第七節中予以介紹。
LText File 提供了對文本的引用,字符用 Unicode 編碼。其實範例(Exemplar)中有一些屬性
(Property)的數據類型為字符串(String),就是説它本身可以打印出一些文本,但 LText File 更
適合于較長和帶控制字符、超鏈接等的文本。還有一個好處是,模擬城市四的語言包是基于 LText File
工作的,如果您要製作帶有中文文本的 LOT,則必須使用 LText File。建議您對語言包有一定的了解,
這樣製作出的 LOT 可以通用于不同語言版本的模擬城市四,本教程將在第八節中對用戶界面中對經常
引用的 LText File 予以列出。由於 Reader 對無法提供對中文字符的支持,含有中文字符的 LText File
推薦使用 DatGen 進行編輯,本教程將在第十節予以介紹。
UI File 用於描述圖形用戶界面。LOT 中的 UI File 描述的是查詢(Query)界面,以便向玩家提供
LOT 的當前狀態並方便玩家對部分狀態參數進行修改。UI File 使用的 GUID(Graphical User Interface
Dialogs)是一种標簽語言,應該說是比較容易讀懂和使用的。本教程將在第七節中予以詳細介紹。
Exemplar File 描述了模擬城市四中的範例,存儲了大多數參數和算法。LOT 中 Exemplar 描述了
圖像和功能屬性,是 LOT 必不可少的部分,一般 LOT 型都至少包含一個 LotConfiguations 類型的
Exemplar File 和一個 Building 類型的 Exemplar File,由它們調用其它的 SC4File。
可見,Exemplar File 是一個 LOT 的中心,我們的教程下面也將從 Exemplar File 開始介紹 LOT
製作中常用的幾種 SC4File。在介紹之前,我們先來看一下編輯軟件 Reader 的使用。
如果您第一次使用 Reader,建議您選擇菜單 Option-Options,選擇 Auto fills the main list,
在 SimCity folder 中輸入您的遊戲目錄,重啓 Reader 您便可以在左側的目錄中(Simcity DAT、
LotEditor DAT、Plugins)顯示相關的文件;如果您要查看其它位置的文件,選擇 Open 文件會在 Loaded
DAT 中顯示。選中您要查看的文件自動刷新,便會在軟件界面中間對包含的 SC4File 列表。手動刷新
可以選擇上面的 Filters 按鈕,並可以選擇只顯示哪些類型的 SC4File。
如果您要修改某 SC4File 的入口標識,選擇上面的 FileInfo 按鈕編輯參數。如果您要導出某
SC4File,選中該 SC4File 並右擊鼠標選擇 Save Selected File。如果您要導入一個 SC4File,右擊鼠
標選擇 Insert File 或者 Insert & Compress File,默認插入在當前選中的 SC4File 之後。如果導入
的 SC4File 沒有配對的 eqz 文件,還要選擇文件類型,注意記得修改入口參數。您還可以對 SC4File
進行複製、黏貼、刪除等操作。
如果您要查找一個範例,當插件中 Exemplar File 較多時,選擇上面的 Navigator 按鈕,程序將
參考範例的類型進行分類,找到您需要的 Exemplar File。這時右擊鼠標選擇 synchronise,就可以在
主界面中查找到該 Exemplar File。如果您要對範例進行修改,選中需要修改的屬性,下方便會出現
該屬性的説明(Description)。雙擊進行修改,數據類型有 Uint8、Uint32、Sint32、Float32、Sint64、
String、Bool,Rep 表示該屬性中參數的個數。如果您要增加屬性,選擇 Add Property,選擇問號便
會出現屬性列表。選擇您要的屬性,選擇 Select it。這時請注意名稱值(Name Value)和數据類型
(Data Type),當若干個屬性的名稱(Name)相同時,可能會出現錯誤,在這種情況下建議不要選擇
第叁葉 共贰拾玖葉
問號進行選擇,而是直接在 Value 框中黏貼名稱值。修改完后注意要兩次選擇確認(Apply)。您還可
以對屬性進行複製、黏貼、刪除等操作。

圖貳

圖叁
如果您要修改一個文本文件,選中后在右邊的文本編輯區内編輯,保存前注意選擇確認。而當您
選中一個 UI File 時,右邊將顯示分層的參數列表和預覽(Preview),當然您可以在參數列表中修改,
但建議您直接修改文本。選中 UI File 右擊鼠標選擇 TextView,右邊的文本編輯區内將顯示 UI 文本,
選擇 Editor 進行編輯,保存前注意選擇確認。
完成模擬城市四參數文件的修改后保存。
第二節 Exemplar File 與 Cohort File 概述
Exemplar File 入口標識的類型值為 6534284A。
用 Reader 打開一個範例 Exemplar File,可以看到它有若干屬性(Property)組成。每條屬性 Reader
顯示了名稱(Name)、名稱值(Name Value)、數據類型(Data Type)、參數數目(REP,Range Estimating
第肆葉 共贰拾玖葉
Programme)、參數值(Value)五個項目。名稱僅僅是一個標識符,區別各個屬性是名稱值,這是一個
Uint32 類型的參數;名稱值確定了數據類型也就確定了,但您必須確認一下,因爲數據類型設置不正
確的屬性是不發生效力的,這兒使用的數據類型有無符號整型數(Uint8、Uint32)、帶符號整型數
(Sint32、Sint64)、實型數(Float)、字符串(String)和布爾量(Bool),其中整型數 Reader 中一
律採用十六進制。
我們先來看這樣一條,ParentCohort。它並不是一條屬性,而是引用了一個 Cohort File 的入口
參數。這類文件的記錄方式和 Exemplar File 是一樣的,它記錄的是一些範例所共有的屬性,而引用
它的範例繼承了它所記錄的所有屬性。從面向對象(Object Oriented)的角度看,Exemplar 相當於
對象(Objcet),Cohort 相當於類(Class)。

圖肆
Exemplar File 有如下兩個基本屬性:(名稱-名稱值-數據類型-默認值,下同)
Exemplar Type 00000010 Uint32
Exemplar Name 00000020 String

圖伍
Exemplar Type 描述了範例的類型,參數表如下:
00 Other/Unknown 01 Turning 02 Buildings 03 RCI
04 Developer 05 Simulator 06 Road 07 Bridge
08 MiscNetwork 09 NetworkIntersection 0A Rail 0B Highway
0C PowerLine 0D Terrain 0E Ordinances 0F Flora
10 LotConfiguations 11 Foundations 12 Advice 13 Lighting
14 Cursor 15 LotRetainingWalls 16 Vehicles 17 Pedestrians
18 Aircraft 19 Watercraft 1E Prop 1F Construction
20 AutomataTuning 21 Network Lot 22 Disaster 23 Data View
24 Crime 25 Audio 26 MySimTemplate 27 TerrainBrush
28 MiscCatalog 2A Trend Bar 2B Graph Control
在 SC4LOT 中常用到的範例種類並不多,我們將在第三節中介紹 LotConfiguations 類型,第四節
中介紹 Prop、Flora 和 LotRetainingWalls、Texture 類型,第五節中介紹 Building 類型。其中
LotConfiguations 類型和 Building 類型尤爲重要,因爲自製 LOT 這兩种文件是必不可少的。

第伍葉 共贰拾玖葉
第三節 Exemplar File 初步 之 LotConfigration
LotConfiguations 類型的 Exemplar 描述了 LOT 模型,一般用軟件 LotEditor 導出。
在介紹屬性之前,我們先來回顧一下 LOT 模型應該由哪些部分組成的。首先模型有大小(Size),
那麽哪些地方允許建造呢?便有了地形傾角(Slop)和劃分類型(ZoonTypes)及一系列參數,比如地
基(Foundation)和擋土墻(RetainingWall),然而有的建築必須建在河岸海岸邊,於是又有了陸地
部分(Land)和水上部分(Water);然後地表有紋理(Texture)有主要建築(Building);在模擬城市四
中 LOT 的功能屬性是划在主要建築下的,因此主要建築只有一個,而其他建築和設施、市民等被一併
划成了道具(Prop);城市必須有樹,道具類型的樹是常綠的,不夠真實,於是又划出了可生長植物
(Flora)。此外,模擬城市四市民模式裏可以開車,哪些地方可以開進哪些車、相當於什麽樣的道路
便成了 LOT 的又一組屬性。
下面我們來分析一下 LotConfiguations 類型的 Exemplar File。
LotConfiguations 類型的 Exemplar File 的入口標識中組別的參數值應當為 A8FBD372。
屬性表大致可以分成兩個部分:基本數據部分和對象數據部分(ObjectData)。

基本數據部分有如下常用屬性:(可以參考 LE 的説明文件)
Growth Stage 27812837 Uint8 01
Groad Corner Indicator 4A4A88f0 Uint8 08
Building Foundation 88FCD877 Uint32
以下屬性名稱前原有“LotConfigProperty”,現省略
Size 88EDC790 Uint8
MinSlopAllowed 699B08A4 Float32 0
MaxSlopAllowed E99B068C Float32 90
MaxSlopBeforeLotFoundation 88EDC790 Float32 5
RetainingWallType 88EDC798 Uint32
ZoneTypes 88EDC793 Uint8 00
WealthTypes 88EDC795 Uint8 00
PurposeTypes 88EDC796 Uint8

圖陸
GrowthStage 描述了 Growable Lot 的密度等級,一般随建築體積增加而增加,隨面積增加而減少,當
然自製 LOT 中就全由您定啦。對於居民建築和商業建築,它的參數值可設為 1-8;對於工業建築
和農業建築,它的參數值可設為 1-3。它影響 Growable LOT 出現的時間和順序,建議您不要把它
設得太高,否則您製作的建築就很難出現了。該值和城市人口共同決定某一等級建築物出現的概
率,關係表見第六節,數據存儲在 Exemplar File(6534284A-67CD5FA1-0000XXXX)中。
Groad Corner Indicator 描述了道路相對于 LOT 的位置。理論上有十六种參數,但常用參數表如下:
第陆葉 共贰拾玖葉
08 Normal 09 LeftCorner 0C RightCorner
Building Foundation 和 LotConfigPropertyRetainingWallType 描述了當地面傾角過大時,LOT 為平
整地形擡高或降低地基而使用的地基或擋土墻種類。兩個屬性分別引用的是 Foundation 和
LotRetainingWall 類型的 Exemplar File 的入口標識的實例,後者的常用參數值為 C96D2132-7,
前者的常用參數建議參看 LE,也可以在 Reader 中打開 Simcity_X.dat 查看 Navigator 頁中找到。
地基和擋土墻只有在傾角大於 LotConfigPropertyMaxSlopBeforeLotFoundation 的參數值時,平
整地形時又無法圓滑地形(比如旁邊有公路之類)時才會出現。LOT 的實際高度以 LOT 的朝南方
向中間點的高度為准,周邊比該點低的地方將出現地基,比之高的地方將出現擋土墻。
LotConfigPropertyMaxSlopBeforeLotFoundation 描述了建築 LOT 時出現地基和擋土墻時地形傾角度
的最小值,單位:度。對於多數建築該參數值一般小於 10。
LotConfigPropertyMinSlopAllowed 和 MaxSlopAllowedMaxSlopAllowed 描述了能夠建築 LOT 的地形傾
角的最小值和最大值,單位:度。多數建築參數值前者設為 0;後者參數值設置在 20 至 50 之間,
當地形傾角大於該值時,Ploppable LOT 將顯示地形太陡,而 Growable LOT 將不會生成。
Size 描述了 LOT 的面積,由兩個參數組成,分別為長和寬,單位是格子(Cell)。該屬性不可缺省。
ZoneTypes 描述了 LOT 可能出現的分區種類,可以由若干個參數組成,該屬性對於 Growable LOT 不可
缺省。參數表如下:
00 Unzoned 01 LowResidential 02 MediumResidential 03 HighResidential
04 LowCommercial 05 MediumCommercial 06 HighCommercial 07 Argriculture
08 LightIndustrail 09 HeavyIndustrail 0A Military 0B Airport
0C Seaport 0D Spaceport 0E Landfill 0F PloppedBuilding
比如低密度住宅可能出現在三种密度的住宅分區,那麽該屬性就應當為 01,02,03;再比如高密度商業
樓只能出現在高密度的商業分區,那麽該屬性就應當為 06;而 Plopabel LOT 該屬性就應當為 0F。
下面兩個參數一般用在 Growable LOT 中:
WealthTypes 描述了 LOT 的財富等級。參數表如下:
00 No Wealth 01 Low Wealth 02 Medium Wealth 03 High Wealth
PurposeTypes 描述了 LOT 的類別。參數表如下:
01 Residetial 02 Service(CS) 03 Office(CO) 05 Argriculture(IR)
06 Processing(ID) 07 Manufact(IM) 08 High Tech(IH)
對象數據部分只有一類屬性:
ObjectData 88edc900-88edcdff Uint32

圖柒
LotConfigPropertyObjectData 每一個描述 LOT 中的一個對象,包括紋理、主要建築、道具、植物、
水上部分、陸地部分和通勤(Transit)。前四種每個一般由十三個參數數組成,中間兩種每個由
第柒葉 共贰拾玖葉
十二個參數數組成,后一種由十五個參數數組成,功能如下:
第一個參數描述了對象的類型,參數表如下:
00000000 Building 00000001 Prop 00000002 Texture 00000003 Flora
00000005 Water 00000006 Land 00000007 Transit
第二個參數一般設置為零。
第三個參數描述了對象的朝向,參數值為對象的 3D 模型朝南方向在 LOT 中的朝向,參數表如下:
0000000 South 00000001 East 00000002 North 00000003 West
后面七個參數值為坐標,以 LOT 的西北方向的頂點為原點,單位為米。
第四至第六個參數描述了對象基點位置的坐標,依次為 X-Width、Height、Z-Width。X-Width、Z-Width
的參數值的高三位為整數部分,餘為小數部分;Height 的參數值的高四位為整數部分,餘為小數
部分。根據 Occupant Size 的參數值確定規則,基點位于由其確定大小的長方體的底面中心。
第七和第九個參數描述了在 LOT 的朝西和朝東方向對象邊緣的 X 值(即經綫值),第八和第十個參數描
述了在 LOT 的朝北和朝南方向對象邊緣的 Z 值(即緯綫值),它們均由對象的基點位置和 Occupant
Size 參數值確定,參數值的高三位為整數部分,餘為小數部分。
第十一個參數一般設置為零。
第十二個參數是一個流水號,同一 LOT 中除了處於同一格的紋理和通
勤對象外,各對象的該參數建議不要相同。
第十三個參數描述了對象的種類,紋理類型的對象引用的是一組 FSH
File,主要建築、道具、植物類型的對象引用的是相應類型的
Exemplar File,參數值為 Exemplar File 的入口參數的實例。
下面針對不同類型的對象的注意點予以進一步説明:
Texture 分爲底層紋理(Base Texture)和上層紋理(Overlay Texture),他們並沒有太大的差別,
一般說來上層紋理有透明的部分。對紋理的引用已在第一節進行了説明;而由於紋理的整格特性,
第四個參數至第十個參數有一定的特點:設所在格子相對于位于 LOT 的西北角的格子的坐標為
(X,Z),X、Z 為整數,則第四個參數至第十個參數應依次為 00X80000,00000000,00Z80000,
00X00000,00ZY00000,00(X+1)00000,00(Z+1)00000。
Water 和 Land 沒有第十三個參數,第四個參數至第十個參數與紋理類型的對象仿佛。
Transit 並非使 LOT 擁有通勤能力,而是使玩家在市民模式下駕駛的交通工具可以在其中通行並在圖
像中可以與相鄰道路相接。它由十五個參數組成,第三個參數一般設置為零,第四個參數至第十
個參數與紋理類型的對象仿佛。第十三個參數描述的是道路類型,參數表如下:
00000000 Road 00000001 Rail 00000002 HighWay 00000003 Street
00000006 Avenue 00000008 ElevTrain 00000009 MonoRail 0000000A OneWayRoad
0000000C GroundHighWay
第十四個參數一般設置為零。第十五個數描述了四個方向的通勤能力,每兩位表示一個方向,依次為
朝北、朝西、朝南、朝東。參數表如下:
00 NoTransit 01 For highway onramp only-adjoining title is highway
02 Standard 03 For highway only-adjoining title is highway onramp
04 For avenues and highways-title beside is avenue or highway
(大道和高速公路寬兩格,指向並排格方向用 04)。
通過上面的敍述,您應該可以使用 Reader 對 LOT 模型進行修改了。雖然可以通過寫入參數表製作 LOT
模型,這裡仍推薦您使用 LE 導出 LOT 模型,Reader 僅僅用來修改參數表以實現一些 LE 不能做出
的效果。比如多層 Texture、實現 Transit 等。應當注意的是,描述對象的各屬性的名稱值最好
是從 88DEC900 開始的一組連續的數;對於覆蓋了相同位置的類型相同的對象,圖像顯示上名稱值
較大的對象將蓋在名稱值較小的對象上,功能上名稱值較大的對象將覆蓋名稱值較小的對象,而
同一格一般只能設置一种通勤。
第捌葉 共贰拾玖葉
第四節 Exemplar File 初步 之 Prop、
Flora、Foundation、
RetainingWall
上一節我們介紹對象數據部分時,說到主要建築建築、道具、植物類型的對象引用了相應類型的
Exemplar File。前者將在下一節介紹;下面先介紹 Prop 類型的 Exemplar File。
Prop 類型的 Exemplar File 主要用於將 3D 模型設為道具,從而可以被 LotConfigration 引用而
搭出 LOT 模型;後綴名為.SC4DESC 的插件文件多數存儲的都是這類 SC4File。
Prop 類型的 Exemplar File 主要有如下常用屬性:
ApperanceZoomsFlag 0ABFC024 Uint32
OccupantSize 27812810 Float32
ResourceKeyType1 27812821 Uint32
Building/prop Family 27812870 Uint32
Flammability 29244DB5 Uint8
Requester Satisfaction 49A1E05A Uint32
MaxFireStage 49BEDA31 Uint8
Prop Time of Day 4A149631 Float32
User Visible Name Key 8A416A99 Uint32
Previewable 4A89FCF3 Bool
Light 4A9F188B Bool
Qrient To Slop 69F14D33 Bool
Query as main Building 6A95E503 Bool
Is Ground Model 8A5E5DB8 Bool
Prop Wealth E9A316EB Uint8
ApperanceZoomsFlag 描述了道具可能顯示的區域大小,該值不宜設置得太小。
OccupantSize 描述了道具的大小,它由三個參數組成,依次為 X-Width、Height、Z-Width,參數值不
一定需要是 3D 模型的實際值。模型的基點位于由其確定的長方體底面的中心,該屬性不可缺省。
ResourceKeyType1 指向道具的 3D 模型,它由三個參數組成,引用的是 3D 模型的入口標識。
Flammability 描述了道具的可燃率;MaxFireStage 描述了道具遭受火災等級的最大值,範圍是 0-5。
Requester Satisfaction 參數表如下:
49A1E995 Wealth 49A1E996 Crime E9A4300B Garbage
Building/prop 參數值為所屬道具組的編號。若干個道具可以構成一個道具組,道具組便有一個編號。
在 LOT 模型中對象數據可以對道具組直接引用,當道具類型的數據對象屬性第十三個參數為該編
號時,在遊戲中該對象將是該道具組中隨機確定的某一道具。
Prop Time of Day 描述了非靜態道具出現的時間,由兩個參數組成,在該模擬時間段内道具才會出現。
User Visible Name Key 指向道具名稱所在的文本,它引用的是一個 LText File 的入口參數。當 LOT
被建造好鼠標懸停于道具上時將顯示該文本。
Prop Wealth 描述了道具遇到了災難(Disaster)時的損失。
下面幾個屬性的數據類型為 Bool,01 表示真(True),00 表示否(False)。
Previewable 為真時在 LOT 被 Plop 之前半透明的圖形中顯示,為 False 則不顯示。
Light 在有光源時需要設置,為 True 時晚上方亮燈。
Qrient To Slop 為真時遇到地形有一定傾角時,自將動調整 X-值和 Z 值以適應地形。
Is Ground Model 為真時視爲地面建築,顯示陰影等。
Query as main building 為真時在某些方面視爲 LOT 主要建築,比如在夜間亮燈方面、鼠標懸停方面
(爲真時顯示 LOT 的名稱,為否時顯示道具的名稱)。
對於自制的 3DModel,建議您盡可能為其配一個 Prop 類型的 Exemplar File 使之能夠成爲道具。
這樣一來可以被更多的 LOT 引用,因爲一個 LOT 只能有一個主要建築,但可以擁有很多道具;二來可
以彌補主要建築超出 LOT 邊界時顯示效果方面的某些不足。

第玖葉 共贰拾玖葉
遊戲中植物可以大致分爲三類,一類是以 LOT 的道具形式出現的,一類是上帝模式下種植的植物,
另一類則市長模式下種植的樹,包括玩家選擇菜單種植的樹,也包括 LOT 裏可生長的樹。前一類使用
的是 Prop 類型的 Exemplar File,后兩類均使用的是 Flora 類型的 Exemplar Flie。Flora 類型的
Exemplar 使用得不多,而且 3D 模型構建不易,在此僅對 LOT 裏使用的常用屬性列表:
FlorParameters 083DC35B Float32
FloraPreferences 083DC487 Float32
FloraCursor 083DE16F Uint32
Shadow Texture ID 085489C8 Uint32
Shadow strength 085489CC Float32
ResourceKeyType5 27812825 Uint32
Pollution at center 27812851 Sint32
Flammability 29244DB5 Uint8
MaxFireStage 49BEDA31 Uint8
Plop Cost 49CAC341 Sint64
Pollution Radius 68EE9764 Float32
User Visible Name Key 8A416A99 Uint32
Is Ground Model 8A5E5DB8 Bool
FloraFamily A8F149C5 Uint32
Item Description Key CA416AB5 Uint32
Special case only E9D117C3 Bool
遊戲裏提供了五種植物供引用,入口標識為 6534284A-e83e0437-16(6-A)00000。

上一節我們介紹基本數據部分時,也說到地基和擋土墻引用了相應類型的 Exemplar File。


Foundation 類型的 Exemplar File 提供了對地基的引用。模擬城市四中地基大致可以分爲三類,
一類是道路橋梁的地基,使用的是 3D 模型,故有 Exemplar ID、ResourceKeyType1、User Visible Name
Key 等屬性;一類是渡口等水上建築的地基,使用面相當窄,更像是 Prop;另一類則供 LOT 使用,採
用對長方體的地基進行 2D 貼圖的方法。這一類 Foudation 類型的 Exemplar File 主要有如下常用屬性:
Exemplar ID 00000021 Uint32
FoundationSideTextures 68FCFF37 Uint32
FoundationMaxHeight 88FCC3E3 Float32
User Visible Name Key 8A416A99 Uint32
FoundationSideTextureSize C911EDA0 Float32
FoudationSideTextures 指向紋理,由五個參數組成,引用了由小到大五個 FSH File 入口標識的實例。
FoundationMaxHeight 描述了地基的最大高度,單位:米。
FoundationSideTextureSize 描述了地基引用的紋理的邊長,單位:米。由於遊戲中每格代表 16 米,
故該參數一般設置為 16,而 FoundationMaxHeight 的參數值一般也設置為 16 的整倍數。
遊戲裏提供了四種地基供引用,入口標識為 6534284A-C977C536-890B731(2-5)。
LotRetainingWalls 類型的 Exemplar File 提供了對擋土墻的引用。模擬城市四中對擋土墻採用
的是與地基類似的方法,LotRetainingWalls 類型的 Exemplar File 主要由如下常用屬性:
Exemplar ID 00000021 Uint32
RetainingWallPropertyWallTextures 295961F2 Uint32
RetainingWallPropertyWallTextureSize 295961F3 Float32
User Visible Name Key 8A416A99 Uint32
PropertyWallTextures 指向紋理,由五個參數組成,引用了由小到大五個 FSH File 入口標識的實例。
PropertyWallTextureSize 描述了擋土墻引用的紋理的邊長,單位:米。一般也設置為 16。
遊戲裏提供了六種擋土墻供引用,入口標識為 6534284A-C977C536-C96D213(2-7)。

第壹拾葉 共贰拾玖葉
第五節 Exemplar File 初步 之 Building
Building 類型的 Exemplar File 是一個 LOT 的不可缺少的部分,由它實現 LOT 的功能。
Building 類型的 Exemplar File 的屬性可以大致划為如下基本部分和功能部分。

基本部分主要有如下常用屬性:
Occupant Size 27812810 Uint32
ResourceKeyType1 27812821 Uint32
Building/prop Family 27812870 Uint32
Flammability 29244DB5 Uint8
MaxFireStage 49BEDA31 Uint8
Worth 8A1C3E72 Sint64 00000064
OccupantSize 描述了建築的大小,它由三個參數組成,依次為 X-Width、Height、Z-Width,參數值不
一定需要是 3D 模型的實際值。模型的基點位于由其確定的長方體底面的中心,該屬性不可缺省。
ResourceKeyType1 指向建築的 3D 模型,它由三個參數組成,引用的是 3D 模型的入口標識。當該屬性
缺省時,則不顯示建築但能實現建築的功能,草坪開放區等就是這樣實現的。
Flammability 描述了建築的可燃率,當該參數值大於覆蓋消防局的功效(Strength)時便易發生火災。
MaxFireStage 描述了建築遭受火災等級的最大值,範圍是 0-5。Worth 描述了建築遇到災難時的損失。
Building/prop 參數值為所屬建築組的編號。若干個建築可以構成一個建築組,建築組便有一個編號。
在 LOT 模型中對象數據可以對建築組直接引用,當主要建築類型的數據對象屬性第十三個參數為
該編號時,在遊戲中該對象將是該建築組中隨機確定的某一建築。遊戲中住宅工商建築中同以 LOT
模型下可以產生不同的主要建築,就是這樣實現的。
以上的屬性其實跟 Prop 類型的 Exemplar File 差不多,以下是特有的建築屬性和環境影響:

圖玖
Bulldoze Cost 099AFACD Sint64 00000064
Demand Satisfied 27812840 Uint32
Demand Created 27812841 Uint32
Landmark Effect 2781284F Sint32
Park Effect 27812850 Sint32
Pollution at Center 27812851 Sint32
PowerConsumed 27812854 Uint32
Plop Cost 49CAC341 Sint64 00000064
Pollution Radius 68EE9764 Float32
第壹拾壹葉 共贰拾玖葉
WaterConsumed C8ED2D84 Uint32
Mayor Rating Effect CA5B9305 Sint32
Plop Cost 和 Bulldoze Cost 描述了建築和拆毀該 LOT 需要的花費,前者只用于 Ploppable LOT。
PowerConsumed 和 WaterConsumed 描述了 LOT 每月耗費的電力和水資源。
Demand Satisfied 和 Demand Created 描述了 LOT 對需求的改變(減少和增加)。該屬性由一對或若干
對參數組成。每對參數前一個參數表示改變的需求的類型,參數表如下:
00001810 Amenities$ 00001820 Amenities$$ 00001830 Amenities$$$
00002010 Jobs$ 00002020 Jobs$$ 00002030 Jobs$$$
00003B20 CO$$ Cap 00003B30 CO$$$ Cap
00004900 Industrial Resource Cap 00004A00 Industrial Dirty Cap
00004B00 Industrial Manufacturing Cap 00004C00 Industrial High-Tech Cap
第二個參數表示改變的量。只有通過前一屬性參數值的纍加,遊戲中才能突破預設的就業和人口瓶頸,
而后一屬性,可視爲公共建築提供的就業崗位。
Pollution at Center 和 Pollution Radius 描述了 LOT 對環境的影響,它們均由四個參數組成,依次
對應空氣污染(Air Pollution)、水污染(Water Pollution)、垃圾(Garbage)和輻射(Radiaion)。
前一屬性描述了 LOT 中心位置的污染的程度,如果您把它設為負數(參數表中帶符號整型數使用
的是補碼)則對環境有改善作用。后以屬性描述了環境污染的作用範圍,參數值是作用範圍的半
徑,單位是格子,在該範圍内隨著距離該 LOT 的距離的增加,該 LOT 對環境的影響綫性減弱。同
時請注意,前一屬性中垃圾的參數值的單位是遊戲中垃圾的統計值的單位的百分之一。
Park Effect 和 Landmark Effect 描述了 LOT 對公園屬性和地標屬性的影響。它們均由一對參數組成,
前一個參數描述了 LOT 對中心位置的兩種屬性的影響,后一個參數描述了影響範圍,單位是格子。
在該範圍内隨著距離該 LOT 的距離的增加,該 LOT 對公園屬性和地標屬性的影響綫性減弱。
Mayor Rating Effect 描述了 LOT 對市長評價的影響。它由一對參數組成,前一個參數描述了 LOT 對
中心位置市長評價的影響,后一個參數描述了影響範圍,單位是格子。在該範圍内隨著距離該 LOT
的距離的增加,該 LOT 對市長評價的影響綫性減弱。
下面這些屬性提供了用戶界面和菜單參數,實現了對其他 SC4File 的引用。
Query exemplar GUID 2A499F85 Uint32
PluginPackID 6A871B82 Uint32
Item Name 899AFBAD String
Item Icon 8A2602B8 Uint32
Item Order 8A2602B9 Uint32
Item Description 8A2602A9 String
User Visible Name Key 8A416A99 Uint32
Occupant Groups AA1DD396 Uint32
SFX:Query Sound AA1DD397 Uint32
SFX:Default Plop Sound C9B93A56 Uint32
Item Description Key CA416AB5 Uint32
LOT Resource Key EA260589 Uint32
Item Icon 描述了 Propable LOT 使用的圖標,引用的是用作圖標的 PNG File 的入口標識的實例值。
Item Order 描述了 Propalbe LOT 的圖標在菜單裏的位置,在菜單同一目錄下不同的 LOT 參照該值從
小到大排列,當同一目錄下有兩個或兩個以上的 LOT 該屬性的參數值相同時,則還要參考 LOT 的
建造花費(Prop Cost)排列。
選擇菜單鼠標停於圖標上時會顯示説明文字,説明文字包括三部分:LOT 名稱、建造花費和説明。
Item Name 和 User Visible Name Key 描述了 LOT 的名稱,後者引用的是一個 LText File 的入口標識。
如果設置了后一屬性,則 LOT 的名稱即為該文本的内容;如果後一屬性缺省,則 LOT 的名稱即為
Item Name 的字符串;遊戲中鼠標懸停於 LOT 上時,將顯示 LOT 的名稱,在 UI 中也通常會調用 LOT
第壹拾贰葉 共贰拾玖葉
的名稱。在此筆者推薦使用 Ltext File,Ltext File 的好處已經在第一節做了説明,這裡還有一
點好處是,通過 UI 我們可以修改 LOT 的名稱,當某 LOT 在城市中有若干個時,此處如果調用的是
Item Name,對某一 LOT 的修改將是對城市中所有的相同 LOT 進行修改,而如果調用的是 LText File
的話,則可以實現若干 LOT 的分別修改。
Item Description 和 Item Description Key 描述了 LOT 的説明,後者引用的是一個 LText File 的入
口標識。如果設置了后一屬性,則 LOT 的説明即為該文本的内容;如果後一屬性缺省,則 LOT 的
説明即為 Item Description 的字符串。
Query exemplar GUID 指向描述用戶界面的文本,它引用的是一個 UI File 的入口標識的實例值。
SFX:Default Plop Sound 和 SFX:Query Sound 指向建築 LOT 時和查詢 LOT 時配的聲音,引用的是 TRK File
的入口標識的實例值。遊戲自帶的 TRK File 存儲在 Sound.dat 中,入口標識的類型值為 0B8D821A,
組別值為 2A4D193D。
LOT Resource Key/PluginPackID 指向 LOT 模型的 LotConfiguation 類型的 Exemplar File,引用的是
入口標識的實例值。這兩個屬性選擇其一即可,遊戲自帶的 LOT 一般使用 LOT Resource Key,而
LE 導出的 LOT 一般使用 PluginPackID。在此筆者推薦您製作的 LOT 中 Building 類型的 Exemplar
File 和 LotConfiguation 類型的 Exemplar File 的入口標識使用相同的實例值。
Occupant Groups 描述了該 LOT 所屬的分類,它影響 LOT 的圖標在菜單中出現的位置、在市民模式下
允許駕駛交通工具的種類、LOT 周圍可能出現的人群等等。參數表見附錄。
以上是 Building 類型 Exemplar File 通常共有的屬性。但一個 LOT 之所以存在是為了完成某些功
能,完成功能通常還必須依賴于功能部分的屬性。

功能部分主要有如下常用屬性:
每月花費:
Budget Item:Department EA54D283 Uint32
Budget Item:Line EA54D284 Uint32
Budget Item:Purpose ES54D285 Uint32
Budget Item:Cost EA54D286 Sint64
這四個屬性共同描述了 LOT 的花費,均由一個或若干個參數構成。它們參數的個數必須相同,排
列在一起便形成了一張表,表中每一列描述了某一方面的花費。

圖拾
Budget Item:Department 描述了花費所屬的項目,參數表如下:
09188F42 Health Staff 09188F4C Education Staff 28F55A9F Fire Department
2A5A723F Business Deals 4A4155AB Seaports 4A538CC6 EducationCoverage
6A4119F0 Airports 6A42A8F5 Sanitation 8910BC8A Power Department
8A416368 Landmarks 8A4260A6 Park and Rec A2963983 PoliceDepartment
A2963984 Jails AA4014B4 Water Department AA538CB3 Health Coverage
C921CEEA Roads C921CEEB MassTransit EA59717A Government Buildin
Budge Item:Department 描述了花費的目的,參數表如下:
第壹拾叁葉 共贰拾玖葉
0A567BAA Police Protection 0C3BF549 Toll Both Maintenance
4A5654BA School Coverage 4A5A495E Business Deal Income
AA59670C Landmark Effect CA550301 Mass Transit Switch
CA565486 Hospital Staff EA56549E Hospital Coverage EA5654B6 School Staff
CA58C9D5 Water Production CA58E540 Power Production CA58EDC7 Sanitation
CA639989 Park Effect EA56768A Jail EA567BC3 Fire Protection
Budge Item:Cost 描述了每月的花費的數額。花費的參數雖然看上去複雜,但通常有著固定的組合,
列表如下:Budget Item:Department Budget Item:Line Budget Item:Purpose
能源 (8910BC8A)Power Department 00000000 (CA58E540)Power Production
水源 (AA4014B4)Water Department 00000000 (CA58C9D5)Water Production
衛生 (6A42A8F5)Sanitation 0000000A (CA58EDC7)Sanitation
警務 (A2963983)PoliceDepartment 00000001 (0A567BAA)Police Protection
法務 (A2963984)Jails 00000001 (EA56768A)Jail
消防 (28F55A9F)Fire Department 00000001 (EA567BC3)Fire Protection
教育 (09188F4C)Education Staff 00000000 (EA5654B6)School Staff
校車 (4A538CC6)EducationCoverage 00000001 (4A5654BA)School Coverage
健康 (09188F42)Health Staff 00000000 (CA565486)Hospital Staff
救護車 (AA538CB3)Health Coverage 00000001 (EA56549E)Hospital Coverage
地標 (8A416368)Landmarks 00000000 (AA59670C)Landmark Effect
公園 (8A4260A6)Park and Rec 00000000 (CA639989)Park Effect
商業建築 (2A5A723F)Business Deals 00000000 (4A5A495E)Business Deal Income
通勤 (C921CEEB)MassTransit 00000001 (CA550301)Mass Transit Switch
收費站 (C921CEEA)Roads 00000006 (0C3BF549)Toll Both Maintenance
在介紹各個部門需要使用到的屬性之前,我們先回顧一下參數表中對曲綫(Curve)是如何描述的。
曲綫用來表述兩個參數值之間的的關係,在參數表中確切說來是折綫,參數表中由一組配對的參數表
示,記錄的是折綫兩個端點和各個拐點的坐標,按照 X 方向值從小到大排列。

圖拾壹
住宅工商:
Wealth 27812832 Uint8
Purpose 27812833 Uint8
Capacity Satisfied 27812834 Uint32
Capacity Satisfied 描述了 LOT 能夠提供的就業崗位。它由一對或幾對參數組成,每對參數中前一個
參數描述了 LOT 能夠提供的就業崗位的類型。參數表如下:
00001010 R$ 00001020 R$$ 00001030 R$$$ 00003110 CS$
00003120 CS$$ 00003130 CS$$$ 00003320 CO$$ 00003330 CO$$$
00004100 IR 00004200 ID 00004300 IM 00004400 IH
后一個參數描述了 LOT 能夠提供的就業崗位的數量。
第壹拾肆葉 共贰拾玖葉
Wealth 描述了 LOT 的財富等級,這裡是建築的初始財富等級,在城市發展中可能下降。參數表如下:
00 None 01 Low Wealth 02 Medium Wealth 03 High Wealth
Purpose 描述了 LOT 提供就業崗位的類型,參數表如下:
01 Residential 02 CommercialService 03 CommercialOffice 05 Argriculture
06 IndustrailDirty 07 IndustrailManu. 08 IndustrailHighTech

圖拾貳
公共設施(Public Utility):
公共設施的三個部門,LOT 的建造時間的長短會影響它的狀態,以下屬性便是控制這個狀態的。
Age degradation Rate EA1CF220 Float32 0.00319
Age to out put level 8A1E07EE Float32
Age to maintenance cost 0911E2E7 Float32
Soft Failure Threshold EA1CF221 Float32 1
Hard Failure Threshold EA1CF222 Float32 1.1
Hard Failure Type 6A43150F Uint32
Age degradation Rate 描述了 LOT 每月的折舊率,相當於描述了 LOT 的壽命。它的參數值=1÷LOT
的壽命(年)÷12。後面四個屬性中的 Age 是這樣確定的:LOT 的建造時間÷LOT 的壽命。
Age to out put level 描述了 LOT 的功能的降低程度和它的建造時間的關係。它由一條曲綫確定。
Age to maintenance cost 描述了 LOT 的花費的增加程度和它的建造時間的關係。它由一條曲綫確定
這三個屬性不可缺省,下面列出遊戲原有建築上面兩個屬性的參數值以供參考:
能源設施(PowerDepartment)
Age 0.000000,0.400000,0.500000,0.650000,0.750000,0.850000,0.900000,1.000000
Rate 1.000000,0.950000,0.920000,0.860000,0.770000,0.600000,0.350000,0.000000
Cost 1.000000,1.030000,1.050000,1.150000,1.300000,1.550000,1.850000,3.000000
供水設施(WaterDepartment)和回收中心(RecyclingCenter)
Age 0.000000,0.500000,0.650000,0.750000,0.900000,1.000000,1.100000
Rate 1.000000,0.950000,0.900000,0.800000,0.550000,0.300000,0.000000
Cost 1.000000,1.030000,1.100000,1.200000,1.500000,1.750000,2.200000
Soft Failure Threshold 和 Hard Failure Threshold 描述了 LOT 出現故障的時間。
Hard Failure Type 描述了 LOT 出現硬件故障的種類,參數表如下:
00 doesn't explode 01 low energy explosion 02 high energy
能源部門:
Power Generated 27812851 Uint32
Power Plant Type 27812853 Uint32
Waste to energy Capacity 48EBD0B1 Uint32
Power Generated 描述了 LOT 發電的能力,參數值為 100%狀態 100%預算下能源部門每月的發電量。
Power Plant Type 描述了 LOT 的能源類型。下面列出遊戲原有建築該屬性的參數值以供參考:
00000001 CoalPower 00000002 HydrogenPower 00000003 NatralGasPower
00000005 NuclearPower 00000006 OilPower 00000007 SolorPower
第壹拾伍葉 共贰拾玖葉
00000008 WastetoEnergy 00000009 WindPower
Waste to energy Capacity 描述了垃圾發電廠減少垃圾的能力。需要指出的,該屬性的參數值的單位
是遊戲中顯示的參數的單位的百分之一。
供水部門:
WaterProduced 88ED3303 Uint32
WaterSource 48F23A7E Uint8 00
WaterTreatmentCapcity C8EBD131 Uint32
WaterProduced 描述了 LOT 供水的能力,參數值為 100%狀態 100%預算下供水部門每月的供水量。
WaterSource 描述了 LOT 的水源類型。參數表如下:
00 Fresh 01 Saltwater 02 Aquifer 一般設為 02。
WaterTreatmentCapcity 描述了水處理厰每月消除水污染的能力。
衛生部門(SanitationDepartment):
Population Served 68ED1736 Uint32
PercentReduction 88ED1059 Uint32
Incinerator monthly Cap. A8EBCF0C Uint32
Population Served 和 PercentReduction 用于回收中心,前一屬性描述了回收中心服務人口的數量,
後一屬性描述了回收中心減少垃圾的能力,參數值為減少的垃圾量佔服務人口產生量的百分比。
Incinerator monthly Cap.疑似用於垃圾處理場之類的建築,描述了每月減少垃圾的能力,同樣該屬
性的參數值的單位是遊戲中顯示的參數的單位的百分之一。
市民設施(Civic):

圖拾叁
警務部門(PoliceDepartment):下列屬性名稱前有“PoliceStation”,現省略
CenterStrenth 48D71ED0 Sint32 000000F0
ExteriorStrength 48D71ED1 Sint32
Radius 48D71ED2 Float32 400
Total Dispatches 48D71ED5 Sint32
Total Conter Dispatches CC0B0705 Sint32
Dispatch Center Strength 48D71ED9 Sint32 0000001E
Dispatch Eterior Strength 48D71EDA Sint32
Dispatch Radius 48D71EDB Float32 200
PoliceDepartment Radius 描述了警務部門的作用範圍,參數值為 100%預算下作用範圍的半徑,單位:
米。PoliceDepartment CenterStrength 和 PoliceDepartment ExteriorStrength 描述了警務部
第壹拾陆葉 共贰拾玖葉
門在作用範圍的中心和邊緣的功效,在作用範圍内功效隨到警務部門的距離的增加而綫性減弱。
遊戲中原有建築後一屬性的參數值為 00000000,前一屬性的參數值列表如下以供參考:
治安亭 00000064 派出所 000000C8 警察局 0000012C 高級警察局 0000015E
PoliceDepartment Total Dispatches 和 PoliceDepartment Total Conter Dispatches 描述了警務部
門的警車和警務直升機的數量。PoliceDepartment Dispatch Raius 描述了警車和警務直升機
出動時的作用範圍,參數值為作用範圍的半徑,單位:米。PoliceDepartment Dispatch Center
Strength 和 PoliceDepartment Dispatch Exterior Strength 描述了警車和警務直升機出動時
在作用範圍的中心和邊緣的功效,在作用範圍内功效隨到警車或警務直升機的距離的增加而綫
性減弱。遊戲中原有建築前一屬性的參數值為 000000C8,後一屬性的參數值為 00000014。
法務部門(Jail):下列屬性名稱前有“Jail,”,現省略
Inmate Capacity 48D71EE0 Sint32 000003E8
Overcapacity Cost 48D71EE4 Sint32 0000000A
Jail, Inmat Capacity 描述了法務部門的能力,參數值為 100%預算下監獄牢房數。
Jail, Overcapacity Cost 描述了法務部門超負荷使用的花費,參數值為實際關押的犯人數超過牢房
數時每個犯人每月需要增加的花費。
消防部門(FireDepartment):下列屬性名稱前有“FireStation”,現省略
CenterStrenth 08F55DC0 Sint32 000000F0
ExteriorStrength 08F55DC1 Sint32
Radius 08F55DC2 Float32 400
Total Dispatches 08F55DC5 Sint32
Total Conter Dispatches 0C0AFDD7 Sint32
Dispatch Center Strength 29233E9A Sint32 0000001E
Dispatch Eterior Strength 29233E9B Sint32
Dispatch Radius 29233E9C Float32 200
FireDepartment Radius 描述了消防部門的作用範圍,參數值為 100%預算下作用範圍的半徑,單位:
米。FireDepartment CenterStrength 和 FireDepartment ExteriorStrength 描述了消防部門在
作用範圍的中心和邊緣的功效,在作用範圍内功效隨到消防部門的距離的增加而綫性減弱。遊戲
中原有建築前一屬性的參數值為 000000C8,後一屬性的參數值為 00000032。當覆蓋範圍内建築的
燃燒率小於消防部門的功效時,該建築便不會發生火災。
FireDepartment Total Dispatches 和 FireDepartment Total Conter Dispatches 描述了消防部門的
消防車和消防直升機的數量。FireDepartment Dispatch Raius 描述了消防車和消防直升機出動
時的作用範圍,參數值為作用範圍的半徑,單位:米。FireDepartment Dispatch Center Strength
和 FireDepartment Dispatch Exterior Strength 描述了消防車和消防直升機出動時在作用範圍
的中心和邊緣的功效,在作用範圍内功效隨到消防車或消防直升機的距離的增加而綫性減弱。遊
戲中原有建築前一屬性的參數值為 00000060,後一屬性的參數值為 00000020。

圖拾肆

第壹拾柒葉 共贰拾玖葉
教育部門(EducationDepartment):下列屬性名稱前有“School”,現省略
Student Capacity 8922041B Uint32 000003E8
EQ Boost A92AE446 Float32 0000000A
Coverage Radius 691B42B3 Float32 0000000A
Effectiveness vs. Average Age C9299662 Float32
Population vs. Distance EA21A936 Float32
Population vs. Wealth C92D7EC0 Float32
School Patient Capacity 描述了教育部門的接納能力,參數值為 100%教育預算下學校能夠接納的學
生數、圖書館許可的借書數或藝術館能夠接納的門票數。School Coverage Radius 描述了教育部
門的作用範圍,參數值為 100%校車預算下作用範圍的半徑,單位:米。
School EQboost 描述了教育部門的作用能力。下面列出遊戲中原有建築該屬性的參數值以供參考:
學校/學院 24.0 私立學校 30.0 圖書館 0.3 主圖書館 0.4
大學 30.0 博物館 40.0 主博物館 50.0 歌劇院 2.4
School Effectiveness vs. Average Age 描述了教育部門的作用能力和覆蓋範圍人口年齡的關係。它
由一條曲綫確定,下面列出遊戲中原有建築的參數值以供參考:
年齡 20.000000,30.000000,40.000000 ,50.000000,60.000000,70.000000,80.000000
學校 5.000000, 5.500000, 5.000000 , 2.500000, 0.000000, 0.000000, 0.000000
學院 0.000000, 0.500000, 1.500000 , 5.000000, 2.500000, 0.500000, 0.000000
圖書館 30.000000,30.000000,30.000000,30.000000,30.000000,25.000000,20.000000
大學 2.500000, 0.500000, 0.500000, 5.000000, 5.000000, 1.500000, 0.500000
博物館 0.000000, 0.300000, 0.300000, 0.300000, 0.750000, 1.500000, 3.000000
主博物館 0.000000, 0.300000, 0.300000, 0.300000, 0.600000, 1.500000, 3.000000
歌劇院 0.000000, , 0.000000, 0.000000, , , 5.000000
School Population vs. Distance 描述了教育部門作用人口和到教育部門的距離距離的關係。它由一
條曲綫確定, X 值為作用範圍内住宅建築至教育部門的距離,Y 值為作用人口占當地人口的百分比。
遊戲中原有建築該屬性的參數值為(0,100,100,100)。
教育部門的實際能力(學校的學生數、圖書館的借書數、博物館的訪客數)大致為上面兩個屬性的參
數值與人口乘積的積分,而作用效果大致為 EQBoost×實際能力÷縂人口。
School Population vs. Wealth 描述了教育部門作用人口和財富的關係,僅用於私立學校。
健康部門(HealthDepartment):下列屬性名稱前有“Hospital”,現省略
Patient Capacity 69220415 Uint32 000003E8
HQ Boost C9299659 Float32 0000000A
Coverage Radius 091B42A2 Float32 0000000A
Effectiveness vs. Average Age A92AE3BD Float32
Population vs. Distance 2921A9CC Float32
Hospital Patient Capacity 描述了健康部門的接納能力,參數值為 100%預算下能夠接納的病人數。
Hospital Coverage Radius 描述了健康部門的作用範圍,參數值為 100%救護車預算下的作用範圍的半
徑,單位:米。
Hospital HQboost 描述了健康部門的作用能力,遊戲中原有建築該屬性的參數值為 11.52。
Hospital Effectiveness vs. Average Age 描述了健康部門的作用能力和覆蓋範圍人口年齡的關係。
它由一條曲綫確定,遊戲中原有建築診所(Clinic)和醫療中心(LargeMedicalCenter)該屬性
的參數值為(0,8,100,8),疾病中心(DiseaseCenter)該屬性的參數值為(0,3,100,3)。
Hospital Population vs. Distance 描述了健康部門作用人口和到健康部門的距離距離的關係。它由
一條曲綫確定,X 值為作用範圍内住宅建築至健康部門的距離,Y 值為作用人口占當地人口的百分
比。遊戲中原有建築該屬性的參數值為(0,100,100,100)。
第壹拾捌葉 共贰拾玖葉
健康部門的實際能力(醫院的病人數)大致為上面兩個屬性的參數值與人口乘積的積分,而作用效果大
致為 HQBoost×實際能力÷縂人口。
通勤(MassTransit):下列屬性名稱前有“Transit Switch”,現省略
Point E90E25A1 Uint8
Entry Cost E90E25A2 Float32 6
Traffic Capacity E90E25A3 Float32 20
Fare 0BFC0A4C Float32

圖拾伍
Transit Switch Point 描述了 LOT 通勤功能的類型,它有一組或若干組參數組成,每組參數包括四個
參數。第一個參數表示 I/O,參數表如下:
81 Outside to Inside 82 Inside to Outside
第二個參數表示方向,后四位為 0000,前四位表示四個方向,依次代表朝西、朝北、朝東、朝南,某
一位 1 代表該方向有本組參數指定的通勤能力,0 代表沒有,比如 C0 代表朝西+朝北,而 B0 代表
朝西+朝東+朝南。第三個參數和第四個參數描述了交通工具的類型,依次代表第一個參數指定的
Outside 或 Inside。參數表如下:
00 Walk 01 Car 02 Bus 03 Train
04 Freight Truck 05 Freight Train 06 Subway 07 ELTrain
08 Monorail
要設好這個屬性,需要對 LOT 的通勤功能進行具體的分析,在此僅擧幾個例子:
鐵路:81,A0,03,03,82,A0,03,03,81,A0,05,05,82,A0,05,0581,A0,04,04,82,A0,04,04
公路:81,F0,00,00,82,F0,00,00,81,A0,01,01,82,A0,01,01,81,A0,02,02,82,A0,02,02,
81,A0,04,04,82,A0,04,04 公車站:81,F0,02,00,82,F0,00,02
客運站:81,F0,03,00,82,F0,00,03 地鐵站:81,F0,00,06,82,F0,06,00
停車場:81,F0,00,00,82,F0,00,00,81,F0,01,00 貨運站:81,F0,04,05,82,F0,05,04
單軌鐵路站:81,A0,08,08,82,A0,08,08,81,F0,00,08,82,F0,08,00
捷運轉換站:81,F0,07,07,82,F0,07,06,81,F0,06,07,82,F0,07,07
Transit Switch Traffic Capacity 描述了 LOT 的通勤能力,參數值為 100%預算下的各類通勤運送人
數及貨物(Traveller)的總和。Transit Switch Entry Cost 描述了 LOT 超負荷的花費,參數值
為實際運力超過了通勤能力的部分每個 Traveller 需要的額外花費。
Transit Switch Fare 描述了收費站的費率,參數值為收費站從通過的每個 Traveller 獲得的收入。
獎勵建築(Reward):
Goofy Stat Response Curve AA60E745 Float32
Goofy Stat Response Curve 在獎勵建築的用戶界面中有一個無釐頭的項目,它的參數值便由該屬性
的參數值確定的曲綫確定。
以上簡要敍述了 Building 類型的 Exemplar File 常用的屬性,内容比較多,可能有一些遺漏,但
相信您已經可以製作出一個普通的 LOT,下一節將對其中部分屬性的參數值進行探討。

第壹拾玖葉 共贰拾玖葉
第六節 Exemplar File 初步 之 參數探討
Stage
$ 人口 0 300 360 432 518 622 746 895 1074 1289 1547 1856 2227
$$、$$$ 0 300 390 507 659 857 1114 1448 1882 2447 3181 4135 5376
Stage 1 100 95 80/92 60/89 45/86 30/83 27/80 24/77 21/74 17/71 14/68 12/66 10/64
Stage 2 00 05 20/08 35/10 40/12 45/16 40/17 36/18 33/19 30/20 26/20 23/20 20/19
Stage 3 00 00 00 05/01 15/02 25/03 28/03 30/04 32/04 35/05 33/05 31/06 28/06
Stage 4 00 00 00 00 00 00 05/01 10/02 14/03 18/03 23/04 27/04 32/05
Stage 5 00 00 00 00 00 00 00 00 00/01 00/02 04/03 07/04 10/04
Stage 6 00 00 00 00 00 00 00 00 00 00 00 00 00/01
Stage 7 00 00 00 00 00 00 00 00 00 00 00 00 00
Stage 8 00 00 00 00 00 00 00 00 00 00 00 00 00
$ 人口 2672 3206 3847 4616 5539 6647 7976 9571 11485 13782 16538 19846
$$、$$$ 6989 9086 11812 15356 19963 25952 33738 43859 57017 74122 96359 125267
Stage 1 09/62 08/60 07/58 06/56 05/54 04/52 03/50 02/48 02/46 01/44 01/42 01/40
Stage 2 17/19 15/18 13/18 11/17 09/16 08/16 07/17 05/14 04/14 03/14 02/14 02/15
Stage 3 25/07 21/07 18/08 15/08 12/08 10/09 08/09 07/09 06/10 05/10 05/10 05/10
Stage 4 36/05 39/06 37/06 34/07 32/07 28/08 26/08 22/08 19/09 16/09 13/09 10/09
Stage 5 13/05 14/05 19/06 24/06 27/07 30/07 27/07 24/07 22/08 19/08 17/08 15/08
Stage 6 00/02 3/03 06/04 10/04 15/05 18/05 24/06 27/06 25/06 24/07 21/07 18/07
Stage 7 00 00 00 00/01 0/02 2/03 5/04 11/04 16/05 21/05 25/06 29/06
Stage 8 00 00 00 00 00 00 00 2/01 6/02 11/03 16/04 20/05
单位:R-CO%/CS%,同等財富所需人口同,同等類型比例同,CO 和 R 比例同
農業 0 300 360 432 518 622 746 895 1074 1289 1547 1856 2227
工業 0 300 390 507 659 857 1114 1448 1882 2447 3181 4135 5376
Stage 1 100 99 98 97 96 94 91 89 86 83 79 75 71
Stage 2 00 01 02 03 04 06 09 11 14 16 19 21 22
Stage 3 0 0 0 0 0 0 0 0 0 1 2 4 7
農業 2672 3206 3847 4616 5539 6647 7976 9571 11485 13782 16538 19846
工業 6989 9086 11812 15356 19963 25952 33738 43859 57017 74122 96359 125267
Stage 1 66 61 56 50 44 37 31 23 16 08 07 07
Stage 2 23 24 25 26 27 29 29 32 33 35 29 23
Stage 3 11 15 19 24 29 34 40 45 51 57 64 70
Demand Satisfied
Demand Created
Pollution at Center
Pollution Radius
Park Effect
Landmark Effect
Mayor Effect
Capacity Satisfied
Age degradation Rate
Age to out put level
Age to maintenance cost
School EQboost
School Effectiveness vs. Average Age
Hospital HQboost
Hospital Effectiveness vs. Average Age

第七節 UI File 初步 之 語法結構


UI File 的入口標識的類型值為 00000000,組別值為 96A006B0。
LOT 的 UI File 描述的是 LOT 的圖形用戶界面,使用的是 QUID(Graphical User Interface
Dialogs)。我們先回顧一下查詢界面通常由哪些部分組成。首先是底板,這個底板可移動,而且其他
第贰拾葉 共贰拾玖葉
内容也跟隨它移動;然後是一個文本框用來標出該 LOT 的名稱,這個文本框可編輯;接下來是一些文
本,來表示該 LOT 當前的狀態,這些文本又能分爲兩种,一種是説明文字,表示這裡標出的是什麽樣
的狀態,另一种標出了狀態的參數;然後有一些圖片,來表示該 LOT 的財富等級或狀態;最後有一個
關閉按鈕。此外還可能有一些滑條(Slider),用來調整該 LOT 的預算。


下面我們來分析一下 UI File 文本。
QUID 是標簽式的語言,所有元素和分層均用標簽標識。元素標簽由“<LEGACY”開始,後面為該
標簽的各個屬性值,之間用空格隔開,標簽以“>”結尾。分層標簽有一對<Children>和</Children>
組成,該層包含的子層和元素位于這一對標簽之間。分層標簽與前面一個 Gen 類型的元素配套使用,
該層中的子層和元素繼承了該元素的部分屬性,該層中的子層和元素的坐標以該元素描述的矩形框的
左上角為原點。
元素標簽中屬性由“屬性名稱=屬性值”的形式表示。在屬性值中,坐標由矩形框四頂點確定,如
(0,2,3,5)表示左上角坐標(0,2)右下角坐標(3,5)的矩形;顔色用 RGB 方法表示,如(255,0,0)表示紅
色;Bool 類型的屬性值用 yes 或 no 表示;引用文件引用的是 SC4File 的入口標識的組別值和實例值,
如{00000000,00000000}。標簽類型由 iid 屬性表示,通常有:Gen、Text、TextEdit、BMP、Slider、
Button、FlatRect。下面予以分別介紹,由於各類標簽的屬性較多,對於影響不大的或其他參數效果
並不好的在此僅給出建議參數值:
Gen 用來分層,一般可分爲兩种。
一种處於 Root 位置,通常使用的屬性和 LOT 中的建議參數值如下:
clsid=GZWinGen iid=IGZWinGen id=0x10000005
area=(,,,,) fillcolor=(0,0,0) winflag_visible=yes
winflag_enabled=yes winflag_moveable=yes winflag_sizeable=no
winflag_sortable=no winflag_pbuff=no winflag_pbufftrans=yes
winflag_pbufferase=yes winflag_pbuffvid=no winflag_alphablend=no
winflag_acceptfocus=yes winflag_mousetrans=no winflag_ignoremouse=no
image={,} blttype=edge userdata=0
moveable=yes sizeable=no defaultkeys=yes
closevisible=yes gobackvisible=no minmaxvisible=no
closedisabled=no gobackdisabled=no minmaxdisabled=no
titlebar=no fill=no outline=no
paint=yes sidebar=no gutters=(64,64)
需要説明的是下面幾個屬性:
winflag_visible 和 winflag_enabled 只有設為 yes,對象才能正常顯示並發揮作用,其他標簽同。

第贰拾壹葉 共贰拾玖葉
gutters 屬性影響到您鼠標移動 UI 位置的區域的寬度,建議不要設置得太小。
area 描述了 UI 顯示界面時,相對于屏幕左上角的默認位置。
另一种處於 Node 位置,通常使用的屬性和 LOT 中的建議參數值如下:
clsid=0x89e1567c iid=IGZWinGen id=0x10000005
area=(,,,,) fillcolor=(0,0,0) winflag_visible=yes
winflag_enabled=yes winflag_moveable=yes winflag_sizeable=no
winflag_sortable=no winflag_pbuff=yes winflag_pbufftrans=yes
winflag_pbufferase=yes winflag_pbuffvid=no winflag_alphablend=yes
winflag_acceptfocus=yes winflag_mousetrans=no winflag_ignoremouse=no
image={,} blttype=edge userdata=0
moveable=yes sizeable=no defaultkeys=no
closevisible=yes gobackvisible=no minmaxvisible=no
closedisabled=no gobackdisabled=no minmaxdisabled=no
titlebar=no fill=yes outline=no
paint=yes sidebar=no gutters=(64,64)
需要説明的是下面兩個屬性:
winflag_alphablend 為 yes 時,查詢界面會有一圈陰影,為 no 時沒有。
Image 指向 UI 界面底板的圖片,引用的是圖片的入口標識的組別值和實例值。
Text 用來顯示文本。該類元素通常使用的屬性和 LOT 中的建議參數值如下:
clsid=GZWinText iid=IGZWinText area=(,,,,)
fillcolor=(63,73,103) caption="*****" captionres={,}
id= winflag_visible=yes winflag_enable=yes
winflag_movable=yes winflag_sortable=no winflag_pbuff=no
winflag_pbufftrans=yes winflag_erase=yes winflag_pbuffvid=no
winflag_alphablend=no winflag_acceptfocus=yes winflag_mousetrans=no
winflag_ignoremouse=yes font=GenBodyMedium notify=no
wrapped=no opaque=no forecolor=(63,73,103)
bkgcolor=(63,73,103) gutters=(2,2) textoffsets=(0,0)
需要説明的是如下幾個屬性:
id 當元素用來標出 LOT 的狀態參數時需要使用本屬性,參數值是一個 Uint32 類型的參數,指向
需要標出的狀態參數,具體的參數值將在下一節列出。如果本屬性非法時,顯示的是 caption 屬性的
字符串。captionres 當元素用來顯示文本時需要使用本屬性,描述的是文本的内容,指向的是一個
LText File。當本屬性缺省、格式非法或指向的 LText File 不存在的時候,顯示的是 caption 屬性的
字符串。上面兩個屬性一般只使用一個。
fillcolor、forecolor、bkgcolor 共同描述了文本的顔色。由於字號不大,建議把三個值設置得
相同。align 描述了文本的對齊方式,通常參數值為 lefttop、centertop、righttop、leftcenter、
center、rightcenter、leftbottom、centerbottom、rightbottom。
另外説明的是遊戲中默認的漢字字號大小是 13 像素。
TextEditor 用來顯示可編輯文本。通常用來顯示 LOT 名稱,id=0x00001000。該類元素通常使用的屬
性和 LOT 中的建議參數值如下:
clsid=GZWinTextEdit iid=IGZWinTextEdit area=(,,,,)
fillcolor=(245,249,247) winflag_visible=yes winflag_enable=yes
winflag_movable=yes winflag_sortable=no winflag_pbuff=no
winflag_pbufftrans=yes winflag_erase=yes winflag_pbuffvid=no
winflag_alphablend=no winflag_acceptfocus=yes winflag_mousetrans=no
winflag_ignoremouse=yes editable=yes wrapped=no
hscrollbar=no vscrollbar=no outline=yes
第贰拾贰葉 共贰拾玖葉
opaque=no caretvisible=yes allowinsert=yes
allowundo=yes singleline=yes font=GenHeader
initvalue="" colorfontnormal=(,,) colorfontdisable=(,,)
colorfonthilited=(,,) colorfontnormalbkg=(,,) colorfontdiablebkg=(,,)
colorfonthilitedbkg=(,,) caretcolor=(0,0,255) outlinecolor=(255,255,255)
maxtext=128 gutter=(5,2) overwrite=no
insertindex=0 insertpos=(0,0) caretperiod=1000
maxundo=64
另外説明的是遊戲中默認的漢字字體大小是 15 像素。
BMP 用來顯示圖片。該類元素通常使用的屬性和 LOT 中建議參數值如下:
clsid=GZWinBMP iid=IGZWinBMP area=(,,,,)
caption="*****" id= fillcolor(,,)
winflag_visible=yes winflag_enable=yes winflag_movable=yes
winflag_sortable=no winflag_pbuff=yes winflag_pbufftrans=yes
winflag_erase=yes winflag_pbuffvid=no winflag_alphablend=no
winflag_acceptfocus=yes winflag_mousetrans=no winflag_ignoremouse=yes
image={,} imagerect=(,,,) notify=no
transparentbkg=yes edgimage=no
需要説明的是下面三個屬性:
image 指向需要的圖片,引用的是圖片的 Group 和 Instance。
imagerect 描述了圖片的大小,由四個參數組成。
id 當圖片時用來標出 LOT 的財富等級或當前狀態時需要使用本屬性,它的值是一個 Int32 類型的
參數,指向需要標出的狀態參數。具體的參數值將在後文列出。,
Slider 用來顯示滑條,可以向程序輸入一個百分比。通常用來調整預算等。該類元素通常使用的屬性
和 LOT 中建議參數值如下:
clsid=GZWinSlider iid=IGZWinSlider area=(,,,,)
caption="*****" id= fillcolor=(,,)
winflag_visible=yes winflag_enable=yes winflag_movable=yes
winflag_sortable=no winflag_pbuff=no winflag_pbufftrans=yes
winflag_erase=yes winflag_pbuffvid=no winflag_alphablend=yes
winflag_acceptfocus=yes winflag_mousetrans=no winflag_ignoremouse=no
image={,} minmaxvalue=(0,120) direction=
initvalue=0
需要説明的是下面幾個屬性:
winflag_ignoremouse 必須為 no 才能使對象接收鼠標的動作。
winflag_alphablend 建議設為 yes,否則圖像底色是黑的,非常丑。
minmaxvalue 描述了滑條能控制的百分比的範圍,多數設施參數值為(0,120)。
direction 描述了滑條滑動的方向,參數值通常為 horizontal 和 vertical。
image 指向滑條的圖片。建議與 direction 的參數值配對,當 direction=horizontal 時該參數值
為{46a006b0,46a006a7},direction=vertical 時該參數值為{46a006b0,46a006a8}。
另外說明的是滑條的尺寸為 72×18 像素,其中兩圖片中中心綫分別距離上端和左端 8 像素,注意
調整高 area 的參數值以與文本位置平齊。
Button 用來顯示按鈕。在 LOT 中通常由下面兩种用途,分別敍述之:
一是關閉按鈕,常使用的屬性和建議參數值如下:
clsid=GZWinBtn iid=IGZWinBtn area=(,,,,)
caption="Close" fillcolor=(,,) winflag_visible=yes
winflag_enable=yes winflag_movable=yes winflag_sortable=no
第贰拾叁葉 共贰拾玖葉
winflag_pbuff=yes winflag_pbufftrans=yes winflag_erase=yes
winflag_pbuffvid=no winflag_alphablend=yes winflag_acceptfocus=yes
winflag_mousetrans=no colorfontnormal=(,,) colorfontdisabled=(,,)
colorfonthilited=(,,) colorfontnormalbkg=(,,) colorfontdisabledbkg=(,,)
colorfonthilitedbkg=(,,) font=GenButton toggle=off
triggerondown=off showcaption=yes fill=yes
autosize=no wrapcaption=no shiftcaption=yes
tips=no tipsdelay=no tipstimeout=no
style=standard gutters=(0,0,0,0) tiptext=""
tipoffsets=(0,0) tipflag=0x01000000 align=center
image={46a006b0,144161eb}
btnclicksnd={ca47efd9,4a5c31d7} captionres={6a231eaa,6a6cf073}
需要説明的是下面個參數:
style 必須為 standard 才能使關閉按鈕實現功能。
二是居住工商建築中,保留為歷史建築的選項,常使用的屬性和建議參數值如下:
clsid=GZWinBtn iid=IGZWinBtn area=(,,,,)
id=0x0000107a caption="Make Historical" fillcolor=(,,)
winflag_visible=yes winflag_enable=yes winflag_movable=yes
winflag_sortable=no winflag_pbuff=yes winflag_pbufftrans=yes
winflag_erase=yes winflag_pbuffvid=no winflag_alphablend=yes
winflag_acceptfocus=yes winflag_mousetrans=no image={,}
font=GenBodyMedium toggle=off triggerondown=off
showcaption=yes colorfontnormal=(,,) colorfontdisabled=(,,)
colorfonthilited=(,,) colorfontnormalbkg=(,,) colorfontdisabledbkg=(,,)
colorfonthilitedbkg=(,,) fill=yes autosize=no
wrapcaption=no shiftcaption=yes tips=no
tipsdelay=no tipstimeout=no style=radiocheck
gutters=(5,5,5,5) tiptext="" tipoffsets=(0,0)
tipflag=0x01000000 align=center
btnclicksnd={ca4d1943,2a5c322b} captionres={ea5524eb,cc22f6fb}
需要説明的是下面幾個參數
id 必須為 0x0000107a 且 style 必須為 radiocheck 才能實現保留為歷史建築的功能。
image 指向圖片,建議為{46a006b0,14416245}(矩形)或{46a006b0,14416246}(圓形)。
FlatRect 用來顯示矩形和綫條(當矩形寬趨於 0 時不就是綫條嗎?)。該類元素通常使用的屬性和 LOT
中的建議參數值如下:
clsid=GZWinFlatRect iid=IGZWinFlatRect area=(,,,,)
fillcolor=(,,) winflag_visible=yes winflag_enabled=yes
winflag_moveable=yes winflag_sizeable=no winflag_sortable=no
winflag_pbuff=yes winflag_pbufftrans=yes winflag_pbufferase=yes
winflag_pbuffvid=no winflag_alphablend=no winflag_acceptfocus=yes
winflag_mousetrans=no winflag_ignoremouse=no colorleft=(,,)
colortop=(,,) colorright=(,,) colorbottom=(,,)
需要説明的是下面幾個屬性:
fillcolor 描述了填充色,colorleft、colortop、colorright、colorbottom 分別描述了四條邊
的顔色。
LOT 中 QUID 一般分爲兩層,Slider 和 Close Buttom 一般位于 Root 位置的 Gen 下,其他對象位于
一個 Node 位置的 Gen 下。

第贰拾肆葉 共贰拾玖葉
第八節 UI File 初步 之 功能調用
我們在上一節中敍述了 UI File 的基本語法結構和 LOT 中常用的參數,但這做出的只是一個面板。
一個 LOT 的 UI 真正作用在於及時反饋給玩家該 LOT 當前的狀態,而與程序内部變量的鏈接則由各標簽
中 id 屬性的值完成。
我們在第五節中說過,LOT 到 UI File 的鏈接由 Building 類型的 Exemplar File 中的 Query
exemplar GUID 這個屬性完成。我們先列出遊戲為原有建築配備的 UI 的入口標識的實例值,因爲能調
用盡量調用,這樣便捷而省事(參考繁體語言包翻譯):
0A562A05 公園 0A8B819E 聯邦監獄 0A8B98FE 市立動物園
0A8B9A67 法庭 0A8B9C43 廣播電臺 0A8B9C6A 農蓄產品市場
2A554F6D 警務部門 2A564884 市立大學 2A56675C 地標
2A567DC1 工業類建築 2A8B7E1C 大學 2A8B97C1 農產中心
2A8B99D0 高爾夫俱樂部 2A8B9DF2 度假飯店 2C096DE6 燈塔
4A562DA5 港口 4A565D13 火車站 4A5672BF 住宅類建築
4A8B7FE7 總圖書館 4A8B9396 市長官邸 4A8B9936 軍事基地
4A8B9C92 證券交易所 4C0969E2 航太港 4C47800E 收費站
6A51506F 消防部門 6A555A84 市立博物館 6A561B3A 機場
6A562F56 焚燒發電廠 6A566151 公車站 6A8B9875 遊客娛樂中心
6A8B9ACC 飛彈基地 6A8B9AF3 電影製片廠 8A554483 學校
8A8B95B0 高等研究中心 8A8B9811 市長雕像 8A8B98A7 毒廢料處理廠
8A8B9D12 電視臺 8A948D49 水處理廠 AA554AEA 健康部門
AA555346 市立監獄 AA565036 地方圖書分館 AA5661EB 捷運站
AA5BEF41 資源回收中心 AA561F93 垃圾掩埋場 AA8B9755 市政大廳
AA8B9971 行政管理局 AA8B999E 賭場 AC096AC7 遊艇碼頭
AC3B72F6 公共停車場 CA56783A 商業類建築 CA8B8408 醫學研究院
CA8B8564 私立學校 CA8B96C2 公墓 CA8B9845 歌劇院
CA8B9AA2 禮拜堂 CA8B9CE7 體育場 CA8B9D40 貿易中心
CC097FC0 5.1 特區 CC313F17 渡口 EA5655E4 能源部門
EA565970 供水部門 EA8B82DB 大型美術館 EC096E72 小艇碼頭
另有 2A5621EE 未知衛生部門,疑似垃圾處理建築;4A8B9DAB,未知獎勵建築,疑似運動場。
描述 LOT 狀態的文本分爲兩部分,一為説明文字,二為狀態參數。狀態參數的表示方式可能為滑
條、文本或圖片。下面列出 QUID 中經常用到的説明文字的 Ltext File 的入口標識的實例值(組別值
為 EA5524EB,參考繁體語言包翻譯):
0A54E6BA 狀況 0A54E6CF 犯罪數 0A58F036 學生人數
0A58F03B 學生容量 0A5BA264 教授人數 0A5BA2AF 全球基金
0A5BA2E7 本月淨垃圾(噸) 0A5BA2EA 污染 0A5E1339 使用水量
0A5E133A 回收的垃圾 0AABED61 供水 2A58F02F 消防車數量
2A58F051 醫生人數 2A58F033 等級 2A5BA26E 使用量
2A5BA29C 居住人數 2A5BA2FC 焚化之垃圾 2A5BA271 實際能量
2A5BA27C 通勤 2AABED81 貨運往來 4A58F140 展覽收票數
4A5BA278 被產生的空氣污染 4A5BA291 每方格花費 4A5BA2F8 服務品質
4A5BA2FF 使用 6A58F047 地方校車經費 6A58F138 藏書量
6A5BA298 犯罪 6A5BA29F 顧客 6A5BA2D5 市長支持度
6A5BA303 使用量 8A58F03F 老師人數 8A58F12F 病人容量

第贰拾伍葉 共贰拾玖葉
8A58F134 借書量 8A58F13C 參觀人數 8A5BA295 每小時使用瓦數
8A5BA2A7 效率 8A5BA307 水污染 8AABED5B 供電
8AABED6D 醫院等級 8AABEE2E 交通噪音 AA54E6CA 逮捕數
AA58F04D 地方救護車經費 AA58F055 病患人數 AA5BA2ED 使用電力
AAABED65 環境條件 AAABED71 模擬市民 AAABED69 教育等級
CA54E6BE 牢房數量 CA58F043 地方經費 CA58F145 展覽數量
CA5BA2C2 土地價值 CAABED75 員工人數 CC06A5E1 通勤時間過長廢棄
CC22F6FB 宣佈為歷史建築 EA54E6C2 入獄者數量 EA54E6C6 每月維護花費
EA54E6D7 巡邏車數量 EA5BA274 實際使用量 EA5BA280 運行狀況
EA5BA2CE 最大能量 EA5BA2DC 每月服務花費 EA5BA30F 收入
另有 F6A3FF01C-4A579C5B 垃圾。
下面列出 QUID 中經常用到的用于描述狀態的 PNG 的入口標識的實例值(組別值為 46A006B0,由
滿和空兩個圖標組成):
1441620E 財富等級 1441620F 停車場 14416210 教育部門
14416211 消防部門 14416212 警務部門 14416213 未知
14416214 機場 14416215 港口 14416216 健康部門
14416217 衛生部門 14416218 能源部門 14416219 供水部門
1441621A 公車站 1441621B 火車站 1441621C 捷運站
1441621D 未知 1441621E 未知 1441621F 未知
另有 46a006a7、46a006a8 滑條,14416245、14416246 選擇按鈕。
下面列出 QUID 中經常用到的用于描述狀態的元素的類型和標簽的 id 值。
住宅類建築:
顯示 1079 通勤時間過長而廢棄 數字 1051 居住人數 圖片 1053 收入(財富等級)
文本 1058 市長支持度 文本 1056 土地價值 文本 1076 供電(是否)
文本 1077 供水(是否) 文本 1054 污染(程度) 文本 1075 垃圾(程度)
文本 1059 學校等級(高低) 文本 105A 醫院等級(高低)文本 1055 犯罪(多少)
文本 1074 交通噪音(程度) 文本 1057 通勤時間(長短)顯示 125B 模擬市民
顯示 115B 模擬市民圖片 顯示 105B 模擬市民圖片 按鈕 107A 設置為歷史建築
商業類建築:
顯示 1079 通勤時間過長而廢棄 數字 1051 員工人數 圖片 1053 收入(財富等級)
文本 1056 土地價值 文本 1076 供電(是否) 文本 1077 供水(是否)
文本 1054 污染(程度) 文本 1075 垃圾(程度) 文本 1055 犯罪(多少)
文本 1074 顧客(多少) 按鈕 107A 設置為歷史建築
工業類建築:
顯示 1079 通勤時間過長而廢棄 數字 1051 員工人數 圖片 1053 收入(財富等級)
文本 1056 土地價值 文本 1076 供電(是否) 文本 1077 供水(是否)
文本 1054 污染(程度) 文本 1075 垃圾(程度) 文本 1055 犯罪(多少)
文本 1057 貨運往來(長短) 按鈕 107A 設置為歷史建築
機場:
圖片 1011 效率 數字 1012 被產生的空氣污染數字 1013 每月維護花費
數字 1014 丟失的行李 數字 107B 使用量(%) 數字 107C 最大能量
港口:
圖片 1015 效率 數字 1016 水污染 數字 1078 每月維護花費
數字 107D 使用量(%) 數字 107E 最大能量
第贰拾陆葉 共贰拾玖葉
捷運部門:
圖片 1041 服務品質 數字 1042 使用量(%) 數字 1043 地方維護經費
數字 1044 實際使用量 數字 1045 最大能量 數字 1046 全球基金
能源部門:
圖片 1034 效率 數字 1035 最大能量 數字 1036 實際能量
數字 1037 使用電力 數字 1038 實際使用量(%)數字 1039 每小時使用瓦數
數字 1062 運行狀況(%) 滑條 1063 地方經費 數字 1163 地方經費
焚燒電廠
圖片 102D 效率 數字 102F 最大能量 數字 1030 實際能量
數字 1031 使用電力 數字 102E 實際使用量(%)數字 1032 每小時使用瓦數
數字 1033 焚化之垃圾 數字 1061 運行狀況(%) 滑條 1063 地方經費
數字 1163 地方經費
供水部門:
圖片 103A 效率 數字 103C 最大能量 數字 103D 實際能量
數字 103E 使用水量 數字 103B 使用(%) 文本 103F 每方格花費
文本 1040 水污染(程度) 數字 1073 狀況(%) 文本 1076 供電(是否)
污水處理厰:
圖片 106D 效率
垃圾掩埋場:
圖片 1026 效率 數字 1027 本月淨垃圾(噸)數字 1028 每月服務花費
垃圾處理場:
圖片 1029 效率 數字 102A 使用量(%) 數字 102B 焚化之垃圾
圖片 102C 被產生的空氣污染
資源回收中心
效率 105E 效率 數字 1060 回收的垃圾
警務部門:
圖片 1006 效率 數字 1007 逮捕數 數字 1008 犯罪數
滑條 1009 地方經費 數字 1109 地方經費 數字 100A 巡邏車數量
數字 100B 每月維護花費 數字 100D 牢房數量 數字 100E 入獄者數量
法務部門:
圖片 100C 效率 數字 100D 牢房數量 數字 100E 入獄者數量
消防部門:
圖片 1001 效率 滑條 1002 地方經費 數字 1002 地方經費
數字 1003 消防車數量
教育部門
圖片 1017 等級 滑條 1018 地方經費 數字 1118 地方經費
滑條 1019 地方校車經費 數字 1109 地方校車經費 數字 101A 教師/教授/展覽數
數字 101B 學生容量 數字 101C 學生人數/借書量/訪客人數
數字 101D 展票數 數字 101E 藏書量 數字 101F 借書量
健康部門
圖片 1020 等級 滑條 1021 地方經費 數字 1121 地方經費
滑條 1022 地方救護車經費 數字 1122 地方救護車經費 數字 1023 醫生數量
數字 1024 病人容量 數字 1025 病患數量
地標
第贰拾柒葉 共贰拾玖葉
數字 1049 每月維護花費
獎勵建築
數字 106B 每月維護花費 數字 106C 無釐頭參數
公園
數字 1010 每月維護花費
確切說來,公園的維護花費調用的 id 值應為 0000106B,而 00001010 調用的是 LOT 各方面的縂花費。
從上表中我們也可以看到,LOT 的 QUID 中元素的 id 前五位為 00001,第六位為 0,如果可以用滑條調
整參數的元素,Slider 類型的 id 為 0,Text 類型的 id 為 1。我們使用到的 id 的後兩位如下:
00、01、02、03、 、05、06、07、08、09、0A、0B、0C、0D、0E、0F
10、11、12、13、14、15、16、17、18、19、1A、1B、1C、1D、1E、1F
20、21、22、23、24、25、26、27、28、29、2A、2B、2C、2D、2E、2F
30、31、32、33、34、35、36、37、38、39、3A、3B、3C、3D、3E、3F
40、41、42、43、44、45、46、 、 、49、 、4B、4C、4D、4E、
、51、 、53、54、55、56、57、58、59、5A、5B、 、 、5E、
60、61、62、63、 、 、66、67、68、69、6A、6B、6C、6D、 、
、 、 、73、74、75、76、77、 、79、7A、7B、7C、7D、7E、
其中灰色的用於鄰城連接,在此附帶介紹一下:
文本 104B 連接到(城市名) 文本 104C 市長(名) 文本 104D 壅塞
文本 104E 鄰近交易(是否) 數字 1066 交易電量 數字 1067 交易水量
數字 1068 交易量(金額) 數字 1069 交易種類 數字 106A 交易垃圾
第九節 SC4LOT 初步 之 實例分析

第十節 SC4LOT 初步 之 LUA File 與 LText File 概述

附錄

第贰拾捌葉 共贰拾玖葉

You might also like