定義域是實在的實例,如果想知道如何篩選準確的定義域,請查看事件目標,如果想知道定義域的類型,查看#定義域類型
深入介紹
正如其他p社遊戲一樣,Vic3也有ROOT,PREV,THIS,FROM這些定義域。
對於特定的定義域,通常而言由特定的字符,比如var,p,s,c,law_type加上:
連接名字來使用定義域,比如說s:STATE_MINNESOTA
就定義了名為STATE_MINNESOTA的state_region類型定義域。
定義域可以通過 事件目標 連結,事件目標是一系列通過定義域得到輸出定義域的函數。
s
就是一種 事件目標,而且有requires data屬性,因此需要通過:
加上特定的名稱以定義一個定義域。又因為s
是一個有global link屬性的事件目標。因此可以獨立使用
而至於region_state
就沒有global link屬性,因此需要依賴 .
在一個 state_region定義域後連接。
.
可以快捷連接定義域。最常見的例子是s:STATE_MINNESOTA.region_state:USA
,首先定義了一個state_region類型定義域,然後通過.
連接到state類型的定義域。可以通過多個.
連接定義域,s:STATE_MINNESOTA.region_state:USA.var:usa_state_flag_block
就是一個例子
然而不確定的定義域不能快捷連結,因為上一級定義域不確定,diplomatic_play類型的定義域通常不確定,因此需要在大括號內使用事件目標
random_diplomatic_play = { # random,every通常用在效果里面 any通常用在条件里 # random,every和 any都是不确定的, 不能用.快速连接 limit = { is_war = yes } initiator = { change_infamy = 5 } # initiator是diplomatic_play类型的scope的事件目标, 输出一个country类型的定义域 }
這是詳盡的例子:
example_event.1 = { type = country_event # 定义了ROOT为发生的国家,而不是发生的人物或者地区 random_diplomatic_play = { limit = { is_war = yes any_scope_play_involved = { THIS = ROOT # THIS 就是当前的定义域。 在这里 THIS就是any_scope_play_involved } NOR = { # not or initiator = ROOT # initiator 和 target 是diplomatic_play的事件目标 target = ROOT } } initiator = { # initiator 仅能使用在 diplomatic scope 这一定义域 save_scope_as = initiator_scope # 因此,为了让其他定义域调用,需要保存定义域 } target = { save_scope_as = target_scope } if = { limit = { ROOT = { is_diplomatic_play_enemy_of = scope:initiator_scope } } # 转移定义域到ROOT if = { limit = { scope:initiator_scope = { infamy >= infamy_threshold:infamous } } # 在ROOT定义域里使用initiator的scope ROOT = { change_infamy = 5 } } ROOT = { set_owes_obligation_to = { country = scope:target_scope setting = yes } } remove_target_backers = { ROOT } # 移除外交博弈目标支持者,只能显示,没有效果,令人沮丧 } } }
地區定義域
首先,有必要甄別"state region"和"state"
用 西班牙為例, 其擁有一個名為 "STATE_GRANADA"的"state region". "STATE_GRANADA"被 西班牙和 大不列顛同時擁有, "STATE_GRANADA" 也因此裂成了兩個 "split state". 大不列顛有一個 "British STATE_GRANADA" 而 西班牙也有一個 "Spianish STATE_GRANADA". 整一塊"state region" STATE_GRANADA 就變成了兩個叫做 "British STATE_GRANADA" 和 "Spianish STATE_GRANADA"的」states「. 「state」的名稱由占有地塊相對數量決定,比如說 西班牙有 STATE_GRANADA的絕大多數地塊,因此"Spianish STATE_GRANADA"直接就叫做"STATE_GRANADA"
這是模組製作中一個很重要的概念,一言以蔽之:
- 地理性質的,一整塊的稱為"state region"
- 國家對"state region"占有的部分稱為 "state",無論這個國家擁有全部還是部分。
舉例子來說:
s:STATE_AMAZONAS = { # 这是地理意义上的state region add_homeland = brazilian } s:STATE_AMAZONAS.region_state:BRZ = { # 这是这是巴西占有的state set_state_type = incorporated }
原版的state region 在這裡,你可以很容易找到這些的名字
要了解如何改變地區特質你可以去創意工坊參見 "More State Modifiers".
建築定義域
Although technically there is a building scope, in practice, game logic that involves buildings is done indirectly through the state scope. Here's an example I use in one of my mods. Check if a specific country, in a specific state region it owns, has a specific building in level 2.
c:SIA = { any_scope_state = { state_region = s:STATE_NORTH_BORNEO any_scope_building = { is_building_type = building_sulfur_mine level >= 2 } } }
The letter to scope buildings is "b". However it's uses are very limited and is mostly used for basic world building.
if = { limit = { exists = state.b:building_sulfur_mine } add = state.b:building_sulfur_mine.level }
其他定義域
其他的定義域大同小異,都是特定符號加上:
國家定義域
Scoping to a country you use the letter "c", for example:
c:SIA = { add_treasury = 100 # example of game logic }
A list of all the vanilla countries is available here, and is useful to easily find the tag you need.
文化定義域
Culture scope seems to work in a similar fashion to buildings scope, indirectly referenced. However has more use cases.
Scoping to a culture you use the letters "cu", for example:
state_region = { is_homeland = cu:greek }
利益集團定義域
Scoping to an interest group you use the letters "ig", for example:
ig:ig_landowners = { remove_ideology = ideology_paternalistic # example of game logic add_ideology = ideology_republican_paternalistic }
The different interest groups tags are:
Pretty name | Tag name |
---|---|
Armed Forces | ig_armed_forces |
Devout | ig_devout |
Industrialists | ig_industrialists |
Intelligentsia | ig_intelligentsia |
Landowners | ig_landowners |
Petite bourgeoisie | ig_petty_bourgeoisie |
Rural Folk | ig_rural_folk |
Trade unions | ig_trade_unions |
市場商品定義域
Scoping to a market good you use the letters "mg", for example:
mg:tools = { save_scope_as = cool_tools # game logics }
定義域類型
none value bool flag country technology technology_status culture state province pop pop_type building building_type interest_group market market_goods interest_marker strategic_region diplomatic_action diplomatic_pact diplomatic_play diplomatic_relations character state_region war theater religion institution institution_type law law_type journalentry trade_route decree commander_order commander_order_type front battle interest_group_trait ideology goods canal_type country_definition civil_war state_trait country_creation country_formation hq objective battle_side political_movement combat_unit party shipping_lane
參考文檔 | 效果 • 條件 • 事件目標 • 定義域 •增益 • 變量 • Data types • 本地化 • Customizable localization |
腳本 | 腳本化函數 • 國家 • 決議 • 事件 • 日誌 • 定義 • 外交 • 附屬類型 • 修正 • Objectives • On actions |
遊戲內概念 | 建築 • Pop • 文化 • 宗教 • 利益集團 • 派系 • 科技 • 法律 • 機構 • 法令 • 貨物 • 概念 |
地圖 | 地圖 |
圖像 | 3D Models • Interface • Graphical Assets • Fonts • Flags |
音樂 | Music • Sound |
其他 | 控制台指令 • Checksum • 模組結構 • Troubleshooting |
指引 | 自定義國家 • 存檔編輯 • 地圖數據編輯 |