模组 您所在的位置:网站首页 群星文明介绍怎么改 模组

模组

#模组| 来源: 网络整理| 查看: 265

模组MOD即英文单词module的缩写)是对游戏内容修改后的产物。既有微调的小型模组也有重置类的大型模组。

目录 1 安装 2 MOD修改 2.1 创建MOD 2.2 目录结构 2.2.1 common 2.2.2 events 3 议程 4 异常 5 图标修改 6 考古遗址 7 科技 7.1 科技文件概述 7.2 添加科技 7.2.1 科技名称 7.2.2 基础内容 7.2.2.1 科技成本 7.2.2.2 科技领域 7.2.2.3 科技层级 7.2.2.4 科技类别 7.2.2.5 舰船设计更新 7.2.2.6 权重 7.2.2.7 前置科技 7.2.2.8 起始科技 7.2.2.9 杂项 7.2.2.10 本节综合应用 7.3 权重修正 7.3.1 权重修正标签 7.3.2 因子 7.3.3 修正 7.3.4 判断逻辑 7.3.5 科学家特质 7.3.6 科学家等级 7.3.7 已经过的游戏时间 7.3.8 作用域和触发器 7.3.9 示例1:锁定思潮 8 社会阶层 9 职业 9.1 相关修正 9.2 职业范例 10 派系 11 殖民地自动建造 安装

模组的下载和安装都可以在用户注册后从Paradox官方论坛或是其它有关群星社区(如贴吧)下载,或在创意工坊订阅后从Steam上自动下载。

模组的安装文件夹是:

Windows: ~\Documents\Paradox Interactive\Stellaris\mod\ GNU/Linux: ~/.local/share/Paradox Interactive/Stellaris/mod/ Mac: ~/Documents/Paradox Interactive/Stellaris/mod/

千万不要在Steam目录下安装模组(例如:C:\Program Files (x86)\Steam\SteamApps\common\Stellaris\mod),因为这样模组不会被正确加载。

在模组的描述中会说明模组对应的游戏版本。如果需要的话,您可以通过使用Steam Beta选项卡返回到旧的版本。

手动安装模组的步骤通常如下(模组自带安装方式时,请使用其自带的安装方式):

解压已下载的存档,以便mod文件夹包含该文件。mod文档和目录。 启动游戏并在模组选项中选中你安装的模组。(请注意:这个模组在启动器中可能有一个与压缩包不同的名字) 如果你是更新模组版本,请务必删除原来旧版本的模组的全部文件(即文件夹或压缩包和.mod文件)并清除gfx缓存(即~\Documents\Paradox Interactive\Stellaris\\gfx)再执行第一步,否则有可能产生问题。 MOD修改

首先提示:任何涉及common(通用)、events(事件)、map(地图)、localisation_synced(随机名,蠢驴-1000)目录的MOD的修改,包括重写事件,新加舰船,都会造成校验码的不统一,无法获得成就。

使用皮肤MOD(gfx目录)、语言MOD(localisation目录,不包括随机名称)可以获得成就。

校验文件为checksum_manifest.txt,位于游戏主目录内(同样也不可修改)。

创建MOD

群星启动器可以创建MOD、加载工坊MOD

工坊MOD需要在创意工坊订阅,订阅后,在 文档\Paradox Interactive\Stellaris\mod目录下会增加一个mod 扩展名的文件,为启动器加载MOD用,MOD本体位于 Steam文件夹\SteamApps\workshop\content\281990目录下,子目录得目录名即为工坊订阅的MOD的id

自己创建的MOD的加载文件同样是位于 文档\Paradox Interactive\Stellaris\mod目录下的一个 mod 扩展名的文件,其他信息需要自己填写

加载MOD后,MOD文件的内容会取代原来的内容,因此MOD里面的每个文件“相对位置”和原来的文件相同,因此具体制作过程仅需参考群星本身自带的内容即可。当然,想要做出优秀的MOD,还需要很多方面的努力,包括趣味性、平衡性、图像、模型等多方面。

加载文件(扩展名为mod的文件)内容如下:

name="Nier:Automata" #MOD名称 path="mod/nierrobots" #Mod文件位置 #archive="nier.zip" #资源文件位置(事实上我只在zip上见到这个,不过理论上和Path是同一个标记( tags={ #MOD类型标签(可以添加多个)(可以缺省 "Graphics" } picture="thumb.jpg" #在工坊中的预览图片,自己写的MOD再上传到工坊前可以没有这项 remote_file_id="XXXXX" #工坊中的id,自己写的MOD再上传到工坊前可以没有这项 supported_version="1.7.*" #MOD支持的游戏版本,星号为整个小版本都通用 目录结构

MOD的zip压缩包文件内的目录结构应与游戏本身目录结构相同(文件名不要求相同)。

注:

带有guardians的为利维坦扩展包的相关文件,带有horizonsignal的为地平线信号相关的文件,带有utopia的为乌托邦相关的文件,带有syntheticdawn的为机械黎明相关的文件 utilities为通用槽位/通用组件、weapons为武器 红色的为制作MOD常用的目录 common

common:游戏内绝大多数涉及到数据资料的部分都位于此目录下,包括以下子目录及文件:

agendas:议程,包含agendas.txt文件,规定了元首的议程 ambient_objects:环境物体,包含ambient_objects.txt 和ambient_objects_guardians.txt文件,定义了环境物体(废弃的巨型建筑的碎片、异常事件等的废弃船、被击毁的船遗留的可调查的残骸等) anomalies:异常,包含00_anomalies.txt、 00_anomalies_2.txt、 00_anomalies_3.txt、 00_anomalies_4.txt等文件,各种异常的事件关联、分类等 armies:陆军,包含00_armies.txt文件,定义不同类型的陆军军种,以及他们的生命值、士气等详细信息 army_attachments:陆军附件,包含00_army_attachments.txt文件,定义了陆军的各种附件,以及他们对陆军的修正、科技需求等详细信息 ascension_perks:飞升,包含00_ascension_perks.txt文件,定义了各种飞升,以及解锁他们所需的条件、解锁后的效果等详细信息 attitudes:态度,包含attitudes.txt文件,规定了AI的关系类型及行为 buildable_pops:可建造人口,包含00_robot_pops.txt文件,定义了合成人、机械帝国的机械人口等可建造人口及基本属性 building_tags:建筑标签,包含00_tags.txt文件,定义了建筑类型标签(拥有相同标签的建筑可以作为一个组,可以使用同组的通用修正) buildings:建筑,包含00_buildings.txt、00_event_buildings.txt、 00_guardian_buildings.txt、 00_habitat_buildings.txt、 00_horizonsignal_buildings.txt、 00_syntheticdawn_buildings.txt文件,定义了建筑及其前置条件、效果、建造费、维护费等详细信息 button_effects:按钮特效,原版只包含一个示例文件example.txt colors:颜色,包含00_colors.txt文件,定义了国家、堕落帝国、派系、海盗、物种的一些可用颜色 component_flags:舰船组件标识,包含component_flags.txt文件,定义了几个标识(flags),用于AI在不同情况下选择组件(默认有进攻和防守两种) component_sets:舰船组件分组,包含00_guardian_utilities.txt、00_required_sets.txt、00_strike_craft.txt等文件,定义同一分组下的组件的键值和图标 component_tags:舰船组件标签,包含00_tags.txt文件,定义舰船组件的标签,便于按照武器类型、槽位、角色等对组件进行分类 component_templates :舰船组件,包含00_enclave_utilities.txt、00_guardian_utilities.txt等文件,定义了部分组件的基本属性;00_strike_craft.txt文件定义了舰载机所有属性,weapon_components.csv文件定义了除舰载机之外的武器的详细数据(最大最小伤害、组件价格、能源消耗等),weapon_components.ods文件为weapon_components.csv的表格版本,可以用excel打开,便于修改(但游戏会读取weapon_components.csv而不是weapon_components.ods);该目录还包含一个说明文件README_weapon_component_stat_docs.txt,用于向MOD作者介绍 country_customization:国家定制项,包含00_country_customization.txt文件,用于为帝国提供一些定制项(默认防御陆军、默认的卫戍部队、殖民地基础庇护所等) country_types:国家类型,包含00_country_types.txt和01_leviathans_country_types.txt文件,定义了国家类型(默认、通用事件、原始文明、堕落帝国、觉醒帝国等) defines:定义,包含00_defines.txt文件,定义了一些基本信息(招募领导人所需的基础影响力、击杀舰队可获取的基础战争分数、行星基础防御值等"杂项") deposits:资源站点,包含00_deposits.txt和00_guardian_deposits.txt文件,定义了不同资源点的类型(轨道采集站类型)、比重(用于计算游戏开局生成概率)、概率修正(根据星球类型等改变比重,factor = 0则不会在这种星球上生成)、资源等 diplo_phrases:外交语句,包含00_diplo_action_phrases.txt和00_diplo_phrases.txt文件,用于设定不同性格国家的外交时的问候信息 diplomatic_actions:外交行为,包含00_actions.txt文件,用于设定宣战、贸易协定、共同防御等各种外交行为 edicts:法令,包含00_edicts.txt(法令)和01_planetary_edicts.txt(行星临时法令)文件,用于设定法令和行星临时法令 ethics:思潮,包含00_ethics.txt文件,设定不同思潮的具体性质 event_chains:事件链,包含00_event_chains.txt,00_event_chains_horizonsignal.txt和00_fallen_empire_chains.txt等文件,用于设定事件链的图标、头图、计数等简要信息 fallen_empires:失落帝国,包含00_fallen_empire.txt文件,用于设定失落帝国城市外观、初始化、种族、国家初始设定等简要信息 game_rules:游戏规则,包含00_rules.txt文件,用于设定游戏基本规则 global_ship_designs:全局舰船设计,包含ai_ship_designs.txt、event_ship_designs_general.txt、fallen_empire_ship_designs.txt和utopia_designs.txt等文件,用于游戏的特殊事件、中立(水晶、鲸鱼等)、特殊国家(失落帝国、天灾、守护者、商人等)等的舰船设计 governments:政府,包含authorities目录(包含00_authorities.txt文件)、civics目录(包含00_civics.txt文件),以及00_governments.txt和readme_requirements.txt文件。其中authorities用于设定权力制度,civics用于设定国家理念,00_governments.txt用于设定不同政体,readme_requirements.txt为官方给出的说明文件 graphical_culture:舰船外观,包含00_graphical_culture.txt文件,用于设定不同种族、失落帝国、原始文明等的舰船外观 (该处主要设定光效以及如果该类如果没有对应的模型会如何做回退处理) mandates:授案,包含00_mandates.txt文件,用于设定统治者授案信息(事件链等) map_modes:地图模式,包含00_map_modes.txt文件,用于设定不同地图模式下的涂色规则 megastructures:巨型建筑,包含00_ring_world.txt(环世界)、01_dyson_sphere.txt(戴森球)、02_spy_orb.txt(哨兵阵列)、03_think_tank.txt(科学枢纽)、habitats.txt(轨道栖息地)文件,以及README.txt说明文件。用于设定巨型建筑的所有详细信息 name_lists:名称列表,包含AI.txt、ART3.txt、Cybrex.txt、MAM3.txt等文件,用于设定各种舰船、设计、领导人等的随机名的列表 notification_modifiers:通知修正,包含00_notification_modifiers.txt文件,目前原版主要用于设定不同强度的肃正天灾的幽灵信号阶段的图标 on_action:触发器,包含00_on_actions.txt、01_planet_destruction.txt(轨道轰炸)文件,原版负责游戏变量的刷新和轨道轰炸的实现 species_archetypes:种族可选特征数和特征点数,包含00_species_archetypes.txt文本 species_classes:种族类型,肖像设置,包含00_species_classes.txt和01_base_species_classes.txt配置文件 species_names:种族、母星系、母星默认名称设置,包含ascension_names.txt、machine_names.txt、species_00.txt、species_01.txt等配置文件 ship_sizes:各类(包括所有dlc中的)舰船、空间站船体的基本设置,包含00_ship_sizes.txt等文件,设定舰船速度、是否可以自主设计或联邦设计、可用模块(section)、前置科技等 traditions :传统,包含原版的七种传统00_diplomacy.txt(外交),00_discovery.txt(发现),00_domination.txt(统治),00_expansion.txt(扩张),00_harmony.txt(和谐),00_prosperity.txt(繁荣),00_supremacy.txt(霸权),以及README.txt说明文件,用于设定传统的效果 traits :种族特性,包含00_admiral_traits.txt等文件,用于设定各种族的特性效果 events

events:游戏内事件触发的部分都位于此目录下,包括以下子目录及文件:

game_start:游戏初始化事件 game_start.1(生成帝国) game_start.2(移除所有行星修正效果) game_start.3 (重置教程) game_start.5 (游牧觉醒,创建大汗国家) game_start.6 (高级帝国科技资源初始化) game_start.8 (普通帝国科技资源初始化) game_start.9 (普通帝国舰船初始化,包括护卫舰、科研船、工程船) game_start.10(堕落帝初始化,包括特性、类型) game_start.12(首都星球初始化,包括地块、区划、人口、建筑) game_start.20 (高级帝国首都星球清理所有地块障碍) game_start.21 (高级帝国首都星球升级行星首府) game_start.22(高级帝国星球区划初始化) game_start.23(高级帝国星球附加人口) game_start.31(配对虫洞生成) game_start.33(玩家初始星系研究站、采矿站的所有权变更) 议程

本节将讲述如果修改或者创建一个新的议程。 议程在“common/agendas/xxx.txt”中定义。

example = { # 领袖提案此议程的可能性 weight_modifier = { # 基础权重 weight = 100 # 权重修正 # modifier 可以存在多个,根据不同的条件提供不同的权重 # 本例为,如果帝国具有军国主义思潮,则此议程的权重为 1.5 modifier = { factor = 1.5 from = { has_ethic = ethic_militarist } } } # 议程提供的国家修正 modifier = { # 防御平台建造花费减少 15% shipclass_military_station_build_cost_mult = -0.15 # 防御平台伤害增加 25% shipclass_military_station_damage_mult = 0.25 # 防御平台船体值增加 25% shipclass_military_station_hull_mult = 0.25 } } 异常

本节将讲述如何修改或创建一个新的异常。 异常在 Stellaris\common\anomalies\xxx.txt 中定义

# 异常的脚本名称 # 本地化中的名称与脚本名称相同 example:0 "异常" example = { # 异常的文本描述信息 desc = strange_signal_category_desc # 异常的显示图片 # 你可以通过 Stellaris\interface\eventpictures.gfx # 文件自定义异常的图片 picture = GFX_evt_cold_barren # 异常的等级 level = 2 # 异常产生的几率 spawn_chance = { # 基础权重 base = 100 # 权重修正 # modifier 可以存在多个,用以不同条件下的权重增减 # 本例为, 堕落帝国刷出该异常的权重为 1.5 倍 modifier = { factor = 1.5 # 此处,使用异常的产生对象from即科研船, # 在通过科研船的所有者,即 from.owner 访问帝国 # 最后判断帝国的类型为堕落帝国 NOT = { from.owner = { is_fallen_empire = yes } } } # 权重修正 # 本例为, 非堕落帝国刷出该异常的权重增加2 modifier = { add = 2 NOT = { from.owner = { is_fallen_empire = no } } } } # 默认为0 # 0.0-1.0 表示这个异常不被产生的几率。 # 它的有效性大于 spawn_chance, # 即便 spawn_chance 的权重机制选中了异常, # 也要受到该标签定义的几率限制。 # # 本例为,99%的几率不会产生这个异常,即只有1%的几率产生该异常。 null_spawn_chance = 0.99 # 当异常产生时,会执行的 effect # this/root: 都是产生异常的星球 # from:触发异常的飞船 # 本例为,为触发该异常的飞船中的科学家增加10000经验 on_spawn = { from = { leader = { add_experience = 10000 } } } # 默认为no,如果为 yes,每个帝国将只生成该异常一次 max_once = yes # 默认为no,如果为 yes,每局游戏将只生成该异常一次 max_once_global = yes # 异常完成时,执行的事件 id # on_success 只允许出现一个,所以要么直接指定一个事件 # 要么就使用下方的多事件选择写法 on_success = federations2.1 # 异常完成时,可能执行的事件 # 每个可能性由一个正整数定义权重,数值越大几率越大 # 如果所有的整数都是相同的,比如1,那么所有的可能 # 的事件几率都相同。 # 每个事件的触发几率为 当前事件的权重 / 所有事件的权重之和 on_success = { # 第一种写法为直接顶一个事件的可能性 1 = anomaly.90 # 第二种带修正的写法允许使用条件 # 该事件可能性权重初始为0,但如果触发异常的国家为堕落帝国 # 那么该异常的可能性权重从0 增加 1,变更为 1 # 如果堕落帝国触发,则实际上 anomaly.90 和 anomaly.110各有一半几率 # 如果不是堕落帝国,则一定会执行事件 anomaly.90 而不会执行事件 anomaly.110 0 = { modifier = { add = 1 owner = { is_fallen_empire = yes } } anomaly_event = anomaly.110 } } # 是否允许AI和玩家使用该异常 # 注意与 should_ai_use 的冲突 should_ai_and_humans_use = yes # 是否允许AI使用该异常,no为只允许AI,yes为只允许玩家。 should_ai_use = no } 图标修改

文件位置 gfx/portraits/.*,使用txt导入文件后可以将贴图(dds文件)引入至贴图组。

之后将想要替换的事件中的贴图替换成你加入的贴图即可。

考古遗址

本节讲述如果修改或创建考古遗址。 考古遗址定义在 common/archaeological_site_types/xxx.txt

# 考古遗址的脚本名称 # 本地化名称与脚本名称相同 example:0 "考古遗址" example = { # 该考古遗址的描述文本 desc = zroni_digsite_1_desc # 该考古遗址的图片 # 可以在 Stellaris\interface\eventpictures.gfx 中定义 picture = GFX_evt_overgrown_city # 该考古遗址的最大数量 max_instances = 1 # 挖掘该考古遗址的条件 # 允许挖掘的条件 # 这会添加/删除遗址的挖掘选项 potential = { # 科研船 is_ship_class = shipclass_science_ship # 有科学家 exists = leader } # 挖掘该考古遗址的条件 # 执行挖掘的条件 # 这启用/禁用挖掘选项按钮 allow = { # 科研船 is_ship_class = shipclass_science_ship # 有科学家 exists = leader } # 当考古遗址被创建时执行的效果 on_create = { all_random_events = yes } # 该考古遗址的显示条件 visible = { has_country_flag = zroni_intro default_site_visible_trigger = yes } # 当该考古遗址显示时执行的 effect on_visible = { country_event = { id = story.5 days = 30 } } # 阶段数量 # 该值指定为3,即需要3个stage定义 stages = 3 # 考古阶段 stage = { # 难度 difficulty = 1 # 图标 # 可以在 Stellaris\interface\archaeology_view.gfx 中定义 icon = GFX_archaeology_runes_F1 # 触发的事件 event = ancrel.2 } stage = { difficulty = {#设置动态难度 min = 1 #设置可能出现的最小难度 max = 3 #设置可能出现的最大难度 } #难度将会在二者之间随机 icon = GFX_archaeology_runes_F2 event = ancrel.3 } stage = { difficulty = 2 icon = GFX_archaeology_runes_F3 event = ancrel.4 } # 当考古失败时执行的 effect on_roll_failed = { from = { standard_archaeological_site_on_roll_failed = { RANDOM_EVENTS = all_random_events } } } # 在使用 create_archaeological_site = random # 创建考古遗址时,该权重才会被使用。 weight = 100 } 科技

可以在以下文件/文件夹中找到科技相关的游戏数据:

common/technology

你可以添加新的科技,或者复写旧有的科技。

科技文件概述

# 常量定义,你可以在支持常量使用的地方使用它们。 # 例如科技的花费,你也可以自定义一些自己的常量。 @example_cost = 1000 @tier1cost1 = 500 @tier1weight1 = 100 # 科技的脚本名称,它使用于其它需要科技引用的地方。 # 例如 00_spaceport_modules.txt technology_name = { # 设置这项科技消耗的科研点数 # 支持参数: 常量, 整数 cost = @tier1cost1 # 设置这项科技属于哪一领域 # 支持参数: physics(物理学), society(社会学), engineering(工程学) area = society # 每一个科技都被分为不同的层级。 # 你需要研究当前层级的5种科技,才能解锁下一层级的科技。 # 支持参数: 0, 1, 2, 3, 4, 5, 参见层级定义 00_tiers.txt tier = 1 # 科技的类别。 # 具有这种类别的科学家研究速度会加快或减慢。 # 支持参数: field_manipulation 力场操控 particles 粒子物理 psionics 灵能理论 voidcraft 宇航技术 biology 生物学 # computing 计算技术 industry 工业技术 materials 材料科学 military_theory 军事理论 new_worlds 新世界理论 # propulsion 推进力学 statecraft 治国术 rocketry 火箭技术 # 参见类别定义 00_category.txt category = { biology } # 设置这项科技的等级,-1表示为循环科技 # 通常不能循环的科技不写此项 # 支持参数: 整数, -1 levels = -1 # 设置这项科技每一等级花费的成本 # 通常与 levels = -1 成对出现 # 支持参数: 常量, 整数 cost_per_level = @repeatableTechLevelCost # 设置这项科技需要的前置科技 # 只有当前置科技全部研究完成,才会解锁当前科技 # 支持参数: 科技的脚本名称 prerequisites = { "prerequisite_technology" "prerequisite_technology" } # 科技的基础权重 # 权重会因为飞升、联邦等增加或减少 # 支持参数: 常量, 整数 weight = @tier1weight1 # 纯本文 # 用来描述这个科技的后续领域内容 # 例如:生物之道 此科技可允许进一步发展生物强化和适应性科技。 # 本地化字段:gateway_biological gateway = biological # 控制AI的自动更新(仅适用于舰船组件解锁的科技) # 如果值是military,研究完成该科技时,AI会更新所有军舰、恒星基地的设计。 # 如果值是all,民用船只也会更新设计。 # 不仅仅只限于AI,对玩家同样生效。恒星基地和那些不能设计的飞船可以通过这种方式更新。 # 如果玩家开启了自动设计或者自动升级,军舰也会自动更新。 # 支持参数: military, all ai_update_type = military # 定义这项科技是否开局可用。 start_tech = yes # 该项科技直接影响的国家修正 # 例如:泰坦船体值增加2000 modifier = { shipsize_titan_hull_add = 2000 } # 纯文本,用来告诉玩家这项科技的作用 # 下方列举了build_terraform_station的本地化写法 # feature_build_terraform_station:0 "环境改造" # feature_build_terraform_station_desc:0 "允许我们对星球进行环境改造。" feature_flags = { build_terraform_station } # 这用于添加本地化,告诉玩家该科技是另一项重要科技的前置 # 不同的类型图标是不一样的 # 支持内容:hide_prereq_for_desc 隐藏某一部分的文本内容 # component 舰船组件(比如解锁零点反应堆) ship 船只(比如解锁泰坦) diplo_action 外交选项(比如允许宣战) # feature 特色(通常feature_flags定义,可以使用hide_prereq_for_desc = feature 隐藏) # resource 资源(比如解锁暗物质) custom 自定义 prereqfor_desc = { hide_prereq_for_desc = component ship = { title = "TECH_UNLOCK_TITAN_CONSTRUCTION_TITLE" desc = "TECH_UNLOCK_TITAN_CONSTRUCTION_DESC" } custom = { title = "TECH_UNLOCK_ION_CANNON_CONSTRUCTION_TITLE" desc = "TECH_UNLOCK_ION_CANNON_CONSTRUCTION_DESC" } } # 这个科技的可用条件 # 如果条件不成立,则不会出现在科技选项中。 # 同样控制台和脚本也不能使它生效。 # DLC 的专属科技一般使用这种方式来隐藏。 potential = { host_has_dlc = "Apocalypse" } # 该科技的出现权重 # 如果权重的因子为0,则不会出现在科技选项中。 # 但仍然可以通过控制台、脚本来使它生效。 weight_modifier = { modifier = { factor = 1.5 has_ethic = ethic_pacifist } modifier = { factor = 2 years_passed > 130 } } # AI 选择该科技的权重 ai_weight = { factor = 1.5 modifier = { factor = 2 has_ethic = ethic_pacifist } } # 这是一个权重组,与mod_weight_if_group_picked 成对出现 weight_groups = { repeatable } # 如果一个其他科技允许成为科技选项,并在所选的权重组中,则当前科技的权重就乘以每一个值。 # 例如:如果选中了循环科技权重组,那么如果有循环科技在科技选项中,当前科技的权重就乘以0.01倍。 mod_weight_if_group_picked = { repeatable = 0.01 } }

添加科技

向游戏中添加科技的最简单方法是使用现有科技作为模板。 如果您想添加一项将食物产量提高15%的科技,则可以使用如下代码:

tech_nutrient_replication = { cost = @tier3cost3 # 花费的科研点数 area = society # 属于社会学 tier = 3 # 科技层级为第 3 级, 即需要研究3 * 5 个科技后才会出现 category = { biology } # 属于生物学 prerequisites = { "tech_nano_vitality_crops" } # 需要前置科技 纳米活性作物 weight = @tier3weight3 # 基础权重 modifier = { # 食物产量提高15% tile_resource_food_mult = 0.15 } weight_modifier = { # 如果有 和平主义 思潮,增加权重 modifier = { factor = 1.25 has_ethic = ethic_pacifist } # 如果有 极端和平主义 思潮,增加权重 modifier = { factor = 1.5 has_ethic = ethic_fanatic_pacifist } # 如果当前科研的社会学科学家有 专长:生物学 特质,增加权重 modifier = { factor = 1.25 research_leader = { area = society has_trait = "leader_trait_expertise_biology" } } } ai_weight = { # 如果有 和平主义 思潮,增加权重 modifier = { factor = 1.25 has_ethic = ethic_pacifist } # 如果有 极端和平主义 思潮,增加权重 modifier = { factor = 1.5 has_ethic = ethic_fanatic_pacifist } # 如果当前科研的社会学科学家有 专长:生物学 特质,增加权重 modifier = { factor = 1.25 research_leader = { area = society has_trait = "leader_trait_expertise_biology" } } } }

我们将这个过程分解一下,以免没有头绪:

科技名称

第一行以 tech_nutrient_replication = { 开头,声明了一个科技,而它的名字是 tech_nutrient_replication 。 每个科技名称都应该以 “tech” 开头,然后在下划线后 “nutrient_replication” 命名该科技。 这不是在游戏中显示的名称,而是其他文件(包括本地化文件)引用科技时的唯一ID。 良好的命名规范会让名称更易读懂,而名称应该与科技的实际功能相符,科技名称不允许使用空格,所以单词之间连接使用下划线。

基础内容

本部分主要设定科研成本,科技怎样显示,这是一个什么样的科技,前置条件和权重。本节将详细讲解。 首先,科研成本 @cost3tier3 这是科技的成本,成本决定研究科技需要多长时间。

科技成本

在 common\scripted_variables\00_scripted_variables.txt 中可以找到所有费用的清单:

@tier1cost1 = 2000 @tier1cost2 = 2500 @tier1cost3 = 3000 @tier2cost1 = 4000 @tier2cost2 = 5000 @tier2cost3 = 6000 @tier3cost1 = 8000 @tier3cost2 = 10000 @tier3cost3 = 12000 @tier4cost1 = 16000 @tier4cost2 = 20000 @tier4cost3 = 24000 @tier5cost1 = 32000 @tier5cost2 = 40000 @tier5cost3 = 48000

在考虑消耗的成本时,应该考虑玩家何时会研究这项科技。 如果您希望在游戏早期解锁科技(例如,当玩家首次选择科技时),请使用 @tier1cost。 如果您希望在游戏中早期解锁科技,请使用 @tier2cost。 如果您希望在游戏中期解锁科技,请使用 @tier3cost。 如果您希望在游戏中晚期解锁科技,请使用 @tier4cost。 如果您希望在游戏后期解锁科技,,请使用 @tier5cost。 应根据您对该科技的强弱来选择成本。 如果您认为它很强大,请使用 @tier3cost。如果您认为它很弱,请使用 @tier1cost。 示例:

cost = @tier1cost2

这将使研究成本达到 2500 科研点数。 如果要编写自定义值,请使用以下代码:

cost = 整数

你可以在整数部分填写你需要的科研成本点数。

科技领域

科技研究的基本类别。它的编写方式如下:

area = society

支持的研究领域,例如:

#物理学研究 area = physics #社会学研究 area = society #工程学研究 area = engineering

该代码将确定科技的显示在哪一个领域分类中,以及哪种研究点数的产生会影响研究速度,例如,社会学研究点数将加速社会学技术的发展。

科技层级

它可以控制何时可以使用该科技。 允许的层级如下:

# previously_unlocked 决定在研究当前层级的科技时,需要研究多少个上一层级的科技。 0 = { # Tier 0 } 1 = { # Tier 1 previously_unlocked = 0 } 2 = { # Tier 2 previously_unlocked = 6 } 3 = { # Tier 3 previously_unlocked = 6 } 4 = { # Tier 4 previously_unlocked = 6 } 5 = { # Tier 5 previously_unlocked = 6 }

数值指的是必须从上一层研究多少个科技。 要选择一个等级,请考虑何时需要玩家解锁该科技。 第1层是早期游戏,第2层是中早期游戏,第3层是游戏中期。 第4层是中后期游戏。 第5层是游戏后期。 如果您希望该科技成为初始科技,请使用第0层。

科技类别

科技类别进一步划区分了您的科技。 它会影响由科学家专长引起的研究速度提升,例如“专长:工业”。 科技类别不会限制谁可以研究该科技。 这是如何编写代码的示例:

# 注意 {} category = { field_manipulation }

尽管它使用花括号,但这不是一个数组,每种科技只能有一个类别。 以下是所有类别的列表:

# 材料科学 materials = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_materials.dds" } # 火箭技术 rocketry = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_rocketry.dds" } # 宇航技术 voidcraft = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_voidcraft.dds" } # 工业技术 industry = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_industry.dds" } # 力场操控 field_manipulation = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_field_manipulation.dds" } # 粒子物理 particles = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_particles.dds" } # 计算技术 computing = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_computing.dds" } # 灵能理论 psionics = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_psionics.dds" } # 新世界理论 new_worlds = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_new_worlds.dds" } # 治国术 statecraft = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_statecraft.dds" } # 生物学 biology = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_biology.dds" } # 军事理论 military_theory = { icon = "gfx/interface/icons/traits/leader_traits/leader_trait_expertise_military_theory.dds" }

每一个花括号就是一个科技类别,icon 是它的图标。你可以在科学家的专业知识特质中使用它们。科技类别并不与科技领域相关,你可以设定一个科技在社会学领域内,并设置为工业类别。

舰船设计更新

ai_update_type = military

控制AI的自动更新(仅适用于舰船组件解锁的科技) 如果值是military,研究完成该科技时,AI会更新所有军舰、恒星基地的设计。 如果值是all,民用船只也会更新设计。 不仅仅只限于AI,对玩家同样生效。恒星基地和那些不能设计的飞船可以通过这种方式更新。 如果玩家开启了自动设计或者自动升级,军舰也会自动更新。

权重

权重控制着科技出现的可能性,数字越高,科技出现的可能性越高。 这是默认权重的列表:

@tier1weight1 = 100 @tier1weight2 = 95 @tier1weight3 = 90 @tier2weight1 = 85 @tier2weight2 = 75 @tier2weight3 = 70 @tier3weight1 = 65 @tier3weight2 = 60 @tier3weight3 = 50 @tier4weight1 = 45 @tier4weight2 = 40 @tier4weight3 = 35 @tier5weight1 = 30 @tier5weight2 = 25 @tier5weight3 = 20

名称中的 tier 仅是名称,而不是意味着权重被科技层级限制。 要选择权重,请考虑您希望该科技出现的可能性。 数字越高,可能性越大。 如果您希望通用一些,请使用“@tier1weight1”。 您可以使用 weight = 整数 编写自己的自定义权重。 请记住,权重在1-100的范围内。 0将使该科技只能通过作弊获得。 这是一个如何使用权重的例子:

#使用预设的权重 weight = @tier1weight3 #使用自定义的权重 weight = 15

警告:原版游戏使用的最低权重是20,任何较低的权重都会使该科技极为罕见。 如果需要,请使用“is_rare”。(稍后会详细介绍。)

前置科技

前置科技是科技解锁之前所需的科技列表。 例如,让我们看一下具有多个先决条件的Synthetics。

prerequisites = { "tech_droid_workers" "tech_galactic_administration" "tech_sentient_ai" }

让我们分解一下。 第一个词,prerequisites,指出这些是前置科技。 下一部分,花括号,是数组开始的位置。 每个技术都用引号 “” 引起,并且以空格分隔。 科技名称是通过引用科技的脚本名称来使用的。 这是一个示例,前置件为“智能人”和“殖民集中”:

prerequisites = { "tech_droid_workers" "tech_colonial_centralization" }

在解锁此科技之前,“智能人”和“殖民集中”科技是必须的。

起始科技

如果您想使该科技成为起始科技,请在本节中进行。 标签“start_tech”将其设置为起始科技,而“tier = 0”意味着它没有任何层级花费。 这是示例:

start_tech = yes tier = 0

这些标签的结合使用将使科技从一开始就被研究。 对于自定义FTL,请参阅高级科技改装教程。

杂项

还有其他标签,例如“is_rare”,“is_dangerous”和“is_reverse_engineerable”。 “is_rare” 稀有科技标签。 它将会使科技变为紫色并降低权重。 “is_dangerous” 危险科技标签,它会使科技变为红色,附带的你需要编写大量的脚本来触发事件等等。 “is_reverse_engineerable” 可逆向研究标签,应仅在舰船部件上使用,例如失落帝国的暗物质反应堆等。 标签是这样添加的:

#稀有科技 is_rare = yes #危险科技 is_dangerous = yes #可逆向研究科技 is_reverse_engineerable = yes

它们的值允许 yes 或者 no。

本节综合应用

这是基础内容部分的完整示例。 该示例将使用所有标签,“is_dangerous”除外。

cost = @tier2cost1 area = physics tier = 2 category = { particles } weight = 55 is_rare = yes is_reverse_engineerable = yes 权重修正

现在我们来看一下权重的逻辑写法,它修改了这些科技被重新抽中的可能性。 权重修正的示例:

weight_modifier = { factor = 4 modifier = { factor = 0.75 NOT = { OR = { has_ethic = ethic_pacifist has_ethic = ethic_fanatic_pacifist } } } }

让我们分解一下。

权重修正标签

关于权重修正的定义,它是这样写的:

weight_modifier = { 因子

因子影响科技出现的可能性。乘法,因此小于1的因数会减少机会,而大于1的因数会增加机会。 它写在modifier内。

modifier = { factor = 0.75 }

您可以在 modifier 之外编写因子以设置基础因子。 像这样:

factor = 4

如果你想仅通过作弊获得该科技,或者对于某些帝国不可用,你可以设置 factor = 0。

修正

这是计算实际权重的地方。你可以拥有多个,因此可以有许多不同的事情来决定是否获得科技。

关于修正语句如何编写,请参考修正表。

#单一的修正 modifier = { } #多个修正 modifier = { } modifier = { } 判断逻辑

你可以使用以下几个逻辑标签: AND(如果标签内的条件同时成立,则将触发) OR(如果标签内的任意条件成立,则将触发) NOT(如果标签内的条件不成立,单一条件,则将触发) NOR(如果标签内的任意条件不成立,则将触发) 示例如下:

OR = { # 如果有 和平主义 或者 极端和平主义 思潮就会触发 has_ethic = ethic_pacifist has_ethic = ethic_fanatic_pacifist } AND = { # 具有 专制帝国 帝国信仰 才会触发 has_government = "gov_despotic_empire" has_civic = "civic_imperial_cult" } factor = 0 NOR = { # 如果不是 唯心主义 或者 极端唯心主义 就设置因子为0, 即只有唯心思潮才会拥有基础权重 has_ethic = "ethic_spiritualist" has_ethic = "ethic_fanatic_spiritualist" } 科学家特质

权重会受到科研科学家的影响。 首先,使用“research_leader = {” 进行定义。 接下来是“has_trait”,它用于增加或减少因为某个特质存在或者缺少导致的科技权重变更。 这是可以使用的所有特质的列表(对于科学家):

################## # 通用特质 # ################## #开明 (+25% 经验) "leader_trait_adaptable" #顽固 (-25% 经验) "leader_trait_stubborn" #快速复原 (+25 领袖寿命) "leader_trait_resilient" #药物依赖 (-20 领袖寿命) "leader_trait_substance_abuser" #活力四射 (-33% 招募费用) "leader_trait_eager" #没有前途 (领袖不在增加经验) "leader_trait_arrested_development" #################### # 科学家特质 # #################### #警惕 (-10% 异常失败 ) "leader_trait_careful" #细致 (+10% 异常发现) "leader_trait_meticulous" #灵光一闪 (+10% 研究速度) "leader_trait_spark_of_genius" #无忧无虑 (+35% 异常研究速度) "leader_trait_carefree" #漫游者 (+25% 调查速度) "leader_trait_roamer" #考古学家 (+50% 考古研究速度, -25% 考古失败几率) "leader_trait_archaeologist" #偏执 (-5% 研究速度, -10% 异常研究速度) "leader_trait_paranoid" #狂热 (+5% 研究速度) "leader_trait_maniacal" #定制AI助理 (+5% 研究速度, +10% 调查速度, +15% 异常研究速度) "leader_trait_custom_AI_assistant" #知性AI副官 (+10% 研究速度, +20% 调查速度, +30% 异常研究速度) "leader_trait_sapient_AI_assistant" #专长:材料科学 (+15% 研究速度 (材料科学)) "leader_trait_expertise_materials" #专长:推进力学 (+15% 研究速度 (推进力学)) "leader_trait_expertise_propulsion" #专长:宇航技术 (+15% 研究速度 (宇航技术)) "leader_trait_expertise_voidcraft" #专长:工业 (+15% 研究速度 (工业)) "leader_trait_expertise_industry" #专长:力场操控 (+15% 研究速度 (力场操控)) "leader_trait_expertise_field_manipulation" #专长:粒子物理 (+15% 研究速度 (粒子物理)) "leader_trait_expertise_particles" #专长:计算技术 (+15% 研究速度 (计算技术)) "leader_trait_expertise_computing" #专长:灵能理论 (+15% 研究速度 (灵能理论)) "leader_trait_expertise_psionics" #专长:新世界理论 (+15% 研究速度 (新世界理论)) "leader_trait_expertise_new_worlds" #专长:治国术 (+15% 研究速度 (治国术)) "leader_trait_expertise_statecraft" #专长:生物学 (+15% 研究速度 (生物学)) "leader_trait_expertise_biology" #专长:军事理论 (+15% 研究速度 (军事理论)) "leader_trait_expertise_military_theory"

这仅包括基础游戏,不包括DLC内容。

科学家等级

此标签“has_level”使用不等号()来根据级别提高或降低权重。 这是在游戏中用法的一个示例:

modifier = { factor = 1.25 research_leader = { area = physics has_trait = "leader_trait_expertise_voidcraft" has_level > 2 } } modifier = { factor = 1.50 research_leader = { area = physics has_trait = "leader_trait_expertise_voidcraft" has_level > 3 } }

在这里,“has_level” 标签用于检查科学家是否高于3级,如果是,则将科技的权重提高 * 1.5。

已经过的游戏时间

如果自游戏开始以来的年份大于或小于特定年份,则增加权重。 像这样:

years_passed < 20 # 你可以使用这些判断符号中的任意一个 < > >= = 1 # 不是格式塔意识 NOT = { has_ethic = ethic_gestalt_consciousness } } # 预定义的参数 # 参数用来在 actions 中使用 # 本例中 empire 将保存为创建派系的国家对象 parameters = { empire = { type = country valid_objects = { is_same_value = root } } } # 人口加入派系的前置条件 # 如果没有这个标签,将会降低性能 # 本例中,只有被殖民星球上的开化种族人口 # 他们也不是被同化或净化状态,同时也不是机器人或奴隶 # 才会允许加入该派系 can_join_pre_triggers = { # 在星球上 必须写yes has_planet = yes # 星系是否殖民并存在所有者国家 必须写yes has_owner = yes # 正在同化 如果选择no, 同化人口将会被过滤 is_being_assimilated = no # 正在净化 如果选择no,净化人口将会被过滤 is_being_purged = no # 是奴隶 如果选择no,奴隶将会被过滤 is_enslaved = no # 是一个机器人口 如果选择no,机器人口将会被过滤 is_robot_pop = no # 是未开化的 如果选择no,未开化的人口将会被过滤 is_sapient = no } # 人口加入派系的条件 can_join_faction = { # 不是合成人 is_shackled_robot = no # 不是土著人口 has_culture_shock = no # 没有被精神阉割 NOT = { has_trait = trait_nerve_stapled } } # 派系对人口的吸引力 attraction = { # 基础吸引力 base = 150 # 吸引力修正 # modifier 可以存在多个,针对不同条件下的吸引力修正 # 本例为具有领导人的派系吸引力将会为 1.25 倍 modifier = { factor = 1.25 exists = from from = { exists = leader leader = { leader_class = ruler } } } } # 派系对领袖的权重 # 权重较高的派系将会优先选择领袖 leader = { # 基础领袖吸引力 base = 100 # 吸引力修正 # modifier 可以存在多个,针对不同条件下的吸引力修正 # 本例为事件领袖将不会被选为派系领袖 modifier = { factor = 0.0 is_event_leader = yes } } # 派系对国家的诉求 # 该标签可以存在多个 demand = { # 标题 title = TECHNOLOGIST_ROBOTS_ALLOWED # 为满足诉求时的标题 unfulfilled_title = TECHNOLOGIST_ROBOTS_BANNED # 该派系诉求的描述 desc = TECHNOLOGIST_ROBOTS_ALLOWED_DESC # 如果诉求被满足,对派系认可度的影响 # 间接影响该派系人口的幸福度 fulfilled_effect = 10 # 如果诉求未被满足,对派系认可度的影响 # 间接影响该派系人口的幸福度 unfulfilled_effect = -30 # 该诉求存在的条件 potential = { exists = owner } # 如果 potential 中的条件成立,即该诉求存在于这个派系中 # 本标签内的条件即为满足该诉求的实际条件 trigger = { owner = { NOR = { has_policy_flag = robots_outlawed has_policy_flag = ai_outlawed } } } } # 创建派系时执行的 effect # 本例为 触发派系事件,告诉玩家这个派系被建立了 on_create = { pop_faction_event = { id = factions.1 } } # 派系解散时执行的 effect # 本例为,将支持派系和镇压派系的修正在派系解散时移除 on_destroy = { if = { limit = { has_modifier = promoted_materialist } remove_modifier = promoted_materialist } if = { limit = { has_modifier = suppressed_materialist } remove_modifier = suppressed_materialist } } # 派系管理中可以使用的操作 actions = { # 操作的脚本名称 # 可以定义多个操作 embrace_faction = { # 该操作的标题 title = EMBRACE_FACTION # 该操作的描述文本 description = EMBRACE_FACTION_DESC # 执行该操作的花费 # 本例为500影响力,但也可以是其他的 cost = { influence = 500 } # 该操作生效的条件 # 本例为 没有主权丧失,即不是附庸国 potential = { exists = owner owner = { OR = { is_subject = no NOT = { is_subject_type = dominion } } } } # 该操作可以被使用的条件 valid = { # 自定义提示文本 # 本例重新设置了当操作不可用的时候错误提示文本 custom_tooltip = { # 当本标签内的条件不成立时显示的文本 fail_text = EMBRACE_FACTION_COOLDOWN # 当本条件不成立时会显示上边的错误文本并且也没办法使用这个操作 # 本例为在没有当前操作使用后的计时器修正的情况允许使用操作 parameter:empire = { NOT = { has_modifier = embraced_faction_timer } } } # 如果支持率大于 20% support > 0.20 # 没有极端唯物主义思潮 parameter:empire = { NOT = { has_ethic = ethic_fanatic_materialist } } } # 使用这个操作时执行的效果 effect = { # 添加一个该操作的修正,倒计时为10年 add_modifier = { modifier = embraced_faction days = 3600 } parameter:empire = { # 帝国的思潮向唯物主义转变 shift_ethic = ethic_materialist # 不显示提示信息的效果 hidden_effect = { # 添加一个该操作冷却计时器修正 add_modifier = { modifier = embraced_faction_timer days = 3600 } # 为所有的其他派系添加修正,使认可度减少20% every_pop_faction = { limit = { NOT = { is_same_value = root } } add_modifier = { modifier = embraced_another_faction days = 3600 } } } } hidden_effect = { # 将当前的派系保存为事件对象 save_event_target_as = TargetFaction # 对所有和我们有通信的帝国执行 主流思潮发生转变 事件 parameter:empire = { every_relation = { limit = { is_ai = no is_country_type = default has_communications = prev } country_event = { id = factions.2000 } } } } } # AI 执行这个操作的权重 ai_weight = { # 基础权重 base = 1 # 权重修正 # modifier 可以存在多个 # 本例为如果帝国有唯物主义,并且支持率小于 50 %,AI就不会使用这个操作 modifier = { factor = 0 support < 0.50 owner = { has_ethic = ethic_materialist } } } } } } 殖民地自动建造

文件位置 Stellaris\common\colony_automation

# 自动建造模板的名字,如果存在重复的名字, # 以最后一个被加载的内容为准 # 清理障碍和建筑升级会自动完成 # 所以模板内的建造只需要写1级建筑即可 automate_example = { # 建造模板可用的条件 # 作用域为星球 available = { # 判断星球的设计模板为首都 has_designation = col_capital # 判断国家类型为普通帝国 owner = { is_regular_empire = yes } # 判断空闲职位过低 free_jobs < 1 } # 区划优先级 # 写入的区划会平均建造,当写入的所有区划都造满 # 将会建造所有可用的区划,也是平均建造。 # 此例为建造采矿区划,采矿造满后 # 将会建造城市、发电、农业区划各一个,直到全部造满 # 不能使用条件判断 prio_districts = { district_mining } # 建造列表 # 可以使用1-16个建筑类型,但不是必须要有16个 # 建造的优先顺序为序号,即1 2 3 4 # 建筑只需要建造第 1 级即可,资源检查和条件检查自动完成 # 建筑的升级自动完成,不需要写 buildings = { # 优先建造首都建筑,不同星球和国家首都建筑不同 1 = { building = building_capital available = {# 始终建造 always = yes } } # 建造民用工厂 2 = { building = building_factory_1 available = {# 只有星球大于15尺寸才会建造 planet_size > 15 } } # 建造合金厂 3 = { building = building_foundry_1 available = { # 优先建造5个合金厂,此写法会固定建筑栏位 # 即后续的建筑应该检查建筑的数量大于5才可以建造 # 因为合金厂有等级区别,所以建筑数量只能使用 any # 所以建筑类型不能使用 building_foundry_1 OR = { num_buildings = { type = any value = 1 } num_buildings = { type = any value = 2 } num_buildings = { type = any value = 3 } num_buildings = { type = any value = 4 } num_buildings = { type = any value = 5 } } } } # 最后一个将始终使用首都建筑 # 以避免一定情况下的BUG导致建筑缺少一个 4 = { building = building_capital available = { always = yes } } } }

如果我们需要对区划的建造顺序进行限制,我们可以通过模板的判断条件来设置。 比如按照采矿、发电、农业的顺序。

automate_example_1 = { available = { has_designation = col_capital owner = { is_regular_empire = yes } free_jobs < 1 num_free_districts = { type = district_mining value > 0 } } prio_districts = { district_mining } buildings = { 1 = { building = building_capital available = { always = yes } } } } automate_example_2 = { available = { has_designation = col_capital owner = { is_regular_empire = yes } free_jobs < 1 num_free_districts = { type = district_mining value = 0 } num_free_districts = { type = district_generator value > 0 } } prio_districts = { district_generator } buildings = { 1 = { building = building_capital available = { always = yes } } } } automate_example_3 = { available = { has_designation = col_capital owner = { is_regular_empire = yes } free_jobs < 1 num_free_districts = { type = district_mining value = 0 } num_free_districts = { type = district_generator value = 0 } num_free_districts = { type = district_farming value > 0 } } prio_districts = { district_farming } buildings = { 1 = { building = building_capital available = { always = yes } } } }

(未完待续)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有