Stellaris开发日志#253 | 5/5 三合一日志:补丁附记以及更多!(第二部分)

牧游社 牧有汉化翻译
Stellaris Dev Diary #253 - Three in One 3.4 'Cepheus' Patch Notes and more! (Part-2)
Obidobi, Producer – Stellaris
Moddability Changes in 3.4 'Cepheus' by @Caligula Caesar
3.4版本号“仙王座”模组兼容改动(@Caligula Caesar)
I'm going to keep this one fairly brief, by my standards. Recent updates have given modders plenty to get their teeth into, and 3.4 is no different. We already described the Situations system a few weeks back, which will doubtless see much use and abuse from modders, so I'll focus on other scripting language changes.
按我作风这段内容会比较简洁。近期更新给各位modder好多要推敲的东西,3.4版本号也会如此。我们几周前已经讲过了情势系统,无疑modder们会对其大动干戈,所以我就专门讲编码上面的变动。
The biggest improvement that springs to mind is in the field of modifiers. In triggered modifiers, you can now define a "mult" value, which lets you apply a modifier or script value to that triggered modifier:
首先最大的改进就是修正项方面。在触发修正上,现在可以定义一个“mult”值,允许作者应用某个修正或将脚本值对应触发了的修正。
Code:
triggered_pop_modifier = {
potential = {
NOT = { is_same_species = owner }
}
modifier = { pop_citizen_happiness = 1 }
mult = modifier:non_main_species_happiness_mult
}
As you can see, I've defined a modifier that we do not have in the game there. That is because we can now define our own ad hoc modifiers in script, for instance:
如各位所见,我写的代码里定义了一个游戏里没有的修正,这是因为现在可以定义自己独创的修正了,比如这里就是脚本编码。
Code:
non_main_species_happiness_mult = {
icon = mod_planet_happiness_mult
percentage = yes
good = yes
category = pop
}
This modifier will of course only do something so long as it is applied somewhere, but nowadays there's plenty of places where that is possible (everywhere that script values are valid). For instance, we have refactored species traits’ amenities and trade output from jobs to use this system, which cut down on the effort it takes to tweak their numbers (and let us track down a few bugs in that regard).
当然这个修正只会在某处启用时生效,不过现今有一大堆预选位置(前提是在脚本值可用的地方)。比如我们重构了物种特质的岗位舒适度及贸易产出,以便能应用这个系统,降低了调整数值消耗的投入(并且让我们能在这方面抓出几个bug)。
As a low-key but quite nice improvement, you will also no longer get load order errors where certain modifiers do not work in certain contexts (e.g. ethos modifiers in traits).
作为一个简易但挺好的改进,你也不会在特定情况下特定修正运作有误时收到一大堆加载顺序错误了(比如加在特质上的思潮修正)。
That's not all we have done. Developing Overlord naturally provided some opportunities to rework old systems. For instance, thousands of lines were saved in the scripts for enclaves by using the new "event inheritance" system. With this, an event can be specified to inherit properties from another via "base = <some_event_id>". Then, various properties can be overwritten via "desc_clear", "option_clear", "picture_clear" and "show_sound_clear". Basically, this lets us inherit the behaviour of a given event while changing its flavour.
但这还不是全部,四海皆臣的开发自然带来了重做旧机制的机会。比如城邦上我们就省了几千行代码,全靠用最新的“事件继承”系统,它能让事件特定引用其他事件相关内容,藉由“base = <somve_event_id>”。之后不同内容可以用“desc_clear”、“option_clear”、“picture_clear”和”show_sound_clear”覆盖。总的来说,这让我们有能力过继某个事件相关的行动但又能微调相关特色。
The list goes on. A new common/tradable_actions folder now lets you define custom actions that you can trade with other empires. For instance, subjects can pledge loyalty to their Overlords in return for other benefits. The folder is also extensively documented:
还有很多,比如全新common/tradable_actions文件夹让你能自定义可与其他帝国贸易的行动。比如附庸国可以向宗主国宣誓效忠换取其他好处。这个文件夹的内容也格外详细。
Code:
# trade_action_my_example_action = {
# # If this is set to 'yes', then the action will be fired and then removed from the trade deal.
# # If 'no', then the trade deal will be treated as a treaty that lasts for at least 10 years.
# fire_and_forget = no
#
# # Determines if the action will show up in the list in the trade deals view.
# # SCOPE: Country "giving" the action
# # FROM: Country "receiving" the action
# potential = {
# has_overlord = from
# is_specialist_subject_type = { TYPE = bulwark }
# }
#
# # If this trigger returns 'no', then the trade deal will be cancelled. Checked on daily tick. Only relevant if fire_and_forget is 'no'.
# # SCOPE: Country "giving" the action
# # FROM: Country "receiving" the action
# active = {
# has_overlord = from
# is_specialist_subject_type = { TYPE = bulwark }
# }
#
# # Effect that fires when the trade deal is accepted.
# # SCOPE: Country "giving" the action
# # FROM: Country "receiving" the action
# on_traded_effect = {
# from = {
# set_galactic_custodian = yes
# }
# }
#
# # Effect that fires when the trade deal ends. Only relevant if fire_and_forget is 'no'.
# # SCOPE: Country "giving" the action
# # FROM: Country "receiving" the action. Not guaranteed to be valid, since a trade deal is cancelled if one of the countries dies.
# on_deal_ended_sender_effect = {
# }
#
# # Effect that fires when the trade deal ends. Only relevant if fire_and_forget is 'no'.
# # SCOPE: Country "receiving" the action
# # FROM: Country "giving" the action. Not guaranteed to be valid, since a trade deal is cancelled if one of the countries dies.
# on_deal_ended_recipient_effect = {
# set_galactic_custodian = no
# }
#
# # Used to determine how much the AI will value the action in a trade deal.
# ai_weight = {
# weight = 1
#
# modifier = {
# weight = 2
# from = {
# is_galactic_custodian = no
# }
# }
# }
# }
Speaking of the AI and diplomacy, diplomatic actions are now a little bit more controllable from script. While they (and AI logic surrounding them) are still handled to a significant degree in code, additional reasons for the AI to accept or decline the proposals can now be scripted in an "ai_acceptance" field, while a "should_ai_propose" field lets you block the AI from proposing it.
既然谈到了AI和外交,外交行动现在从脚本层面上也稍微更可控了一些。虽然它们(和相关AI逻辑一样)还是主要由代码处理,不过现在给AI添加接受或拒绝提案的额外理由可借由“ai_acceptance”域进行编译,而“should_ai_propose”域可用于阻止AI提出某种协议。
Finally, something that modders need to know about is our changes to synced localisation. Or rather, the fact that we have completely removed it. This means that, everywhere where it was used, we now use the normal localisation system instead. There are several advantages of this:
最后modder们需要知道的是对同步本地化的改动,其实我们直接就把它取消了。所有曾使用该内容的位置都改用通常本地化内容。此举有诸多好处:
Multiplayer will now work, even if one player is playing in Chinese and one player in English (this does not currently work)
多人游戏可在有语言差异的情况下正常进行,比如分别用中英语言版本进行游戏的玩家(目前是做不到的)。
It is theoretically possible to translate all names into other languages now. (Unfortunately, however, I can't promise that we'll ever do that, because European languages all have complicated grammar rules, and we have yet to work out a reasonable way to deal with them. But still, the possibility is pretty cool).
理论上可以将所有名字都翻译成其他语言的了。(不过可惜的是我们没法保证一定会做,因为欧洲语言都有繁琐的语法规则,我们还没搞出一套能合理应对的方法。就算如此,能有这个机会也是吼的。)
Unfortunately, there are also some complications, which can be summed up as: we need to save a property as it is at the time something is named (i.e. the property may change later - but this should not affect what it localises as), and also make sure that it is localising correctly no matter which language you are playing in.
不幸的是也有一些复杂情况存在,可以总结为:我们需要在某个条目被命名的同时保存它的属性(属性有可能之后会改变,但这不应该影响其翻译),并且保证在所有语言中的翻译都是正确的。
Basically, this means that if you want to use bracket commands in setting names, you need to register it in the place where you are setting the name, e.g.:
也就是说,如果你想在命名时使用括号指令,那么就需要在命名的同时进行登记,例如:
Code:
set_name = {
key = "NAME_Absorbed_Species"
variable_string = "[Root.GetSpeciesNamePlural]"
}
NAME_Absorbed_Species:0 "Absorbed [Root.GetSpeciesNamePlural]"
Empire names in the random_names directory have a new “lookups” line to serve this purpose:
为此在random_names目录下的帝国名称添加了新的“lookups”行:
Code:
# Imperial Spiritualist 2
empire_name_format = {
random_weight = {
factor = 0
modifier = {
add = 1
has_government = "gov_theocratic_monarchy"
is_pirate = no
is_primitive = no
NOT = { is_country_type = fallen_empire }
NOT = { is_country_type = awakened_fallen_empire }
}
}
lookups = "<imperial_spi> [This.Capital.GetName]"
format = format.imp_spi.2 # <imperial_spi> of [This.Capital.GetName]
noun = format.homeworld # [This.Capital.GetName]
prefix_format = format_prefix.imp_spi.2 # [This.Capital.GetName] <imperial_spi>
# Empire of Earth
}
In cases where names were defined inline in script, which is quite common in mods, it will likely continue to work as it used to (so long as no square bracket commands are used). I can't entirely vouch for this, since we don't use this functionality inhouse as it would break Chinese (and now also Korean and Japanese) translations, since they have always translated names. It may also cause issues if the name you are setting something to is a key that is localised, but which you did not intend to refer to… (N.B. name lists now also use localisation keys).
如果名称是在脚本语句中被定义的(这在mod中非常常见),则运行方式将像原来一样(只要不涉及到方括号指令)。但我也不敢打包票,因为虽然我们自身并不用这个,但却会影响中文(以及韩文和日文)翻译,因为他们连名字也都翻译了。如果你定义的名称键值被翻译了,而你又没打算引用,那么也会出问题(注:名称列表现在也使用翻译键值)。
As a word of caution, each square bracket command we make available has to be defined to work in the C++ code. We have tried our best to cover all the cases which one could want to use, but there may be some we've missed (in this case, the error log will complain about invalid property "GetXPersistent"). If there are any particularly egregious cases we turn out to have missed, please file bug reports and we'll see what we can do!
提醒一下,每一个方括号指令都需要被定义,才能在C++代码中正确运行。我们已经尽量考虑了各种情况,但仍有可能存在疏漏(此时错误报告会显示属性不可用“GetXPersistent”)。如果发现任何恶性情况,请发送bug报告,我们会尽量想办法解决!

But wait, there's more, from @Eladrin :
等一等,下面还有来自@Eladrin的内容:
This week’s origin reveal from Nivarias is the Progenitor Hive!
本周的Nivarias起源展示是先祖蜂巢Progenitor Hive!

先祖蜂巢
这个蜂巢通过半独立的领袖获得了进化优势。这些“后裔”大幅提高了总体效率,尽管他们需要持续的监管。
效果:
- 雇佣特殊的后裔领袖,能够被动获得经验。
- 将产卵池替换为后裔巢穴,具有强大的防御部队并给低级子个体带来加成。
- 允许在附庸星球建造后裔巢穴。
- 可以将星区释放为附庸。
- 建造后裔舰船来提高附近其他舰船的作战效率。没有后裔舰船的舰队将受到以下惩罚:
亚光速航速:-50%
闪避:-50%
舰船射速:-50%
命中率:-50%
前置要求:具有蜂巢意识权力体制
In the beginning, the Progenitor was.
起初先祖便存在。
Life on your homeworld was harsh and competitive, yet still the mighty Progenitor expanded its territory. Running such a vast dominion soon grew untenable, so the Progenitor created the first Offspring. In time, it became apparent that the Offspring could not manage alone. In turn, they produced menial drones to assist in taming our home.
你在家园的生活艰苦而充满竞争,但强大的先祖仍然扩大了自己的领土。管理如此庞大的领土很快就使人力不从心,因此先祖创造了第一支后裔。但随着时间的推移,很明显这支后裔无法独立生存。因此他们制造了低级子个体来帮助驯服我们的家园。
As you took your first tentative steps across the stars, the Progenitor sequestered itself into a specialized nest. Endowed with greater, streamlined control, you are now ready to spread the Progenitor's influence to all the stars of the galaxy - for the Progenitor was, is, and will be.
当你第一次尝试走出星球时,先祖将自己隔离在一个特殊的巢穴中。有了更强大、更高效的控制力,你现在已经准备好将先祖的影响传播到星系的所有恒星——因为先祖曾经存在、现在存在,而必将永远存在。
The Progenitor Hive origin is a new Hive Mind origin coming in Overlord, and as such it also requires Utopia to play.
先祖蜂巢起源是四海皆臣扩展包中新增的一种蜂巢意识起源,并且也需要乌托邦才能游玩。
The hive relies heavily on the presence of powerful Offspring. While they are near, the hive thrives and functions with great efficiency.
蜂巢的运行高度依赖强大的后裔。当他们在附近时蜂巢便能蓬勃发展且高效运作。
Offspring Vessels can be included in your fleets, providing an aura that cancels out the inherent penalties of your ships, providing a net small bonus. You are limited in the number of Offspring Vessels your empire can support at any given time, based on your overall naval capacity, similar to the Titan limit. The Offspring Vessels share a pool, with larger ships taking a greater portion of the pool.
后裔舰船能够编入你的舰队,其光环在抵消舰船的固有惩罚的基础上还能带来较小的加强。你的帝国能够支撑的后裔舰船数量在任何时候都受到限制,数量基于总体海军容量,与泰坦上限相似。后裔舰船共用一个容量池,舰船越大占用的份额就越多。

监管者级后裔战列舰
后裔监管
对友方船只的影响:
亚光速航速:+55%
闪避:+55%
舰船射速:+55%
命中率:+55%
There's also a starbase building to protect your empire space, which provides greater benefits than the ships.
此外还有一个恒星基地建筑可以用来保卫帝国的天空,它将提供比后裔舰船更强的加成。

后裔哨站
一座恒星基地建筑,允许一位后裔来监管和管理体系内的战斗。
对友方船只的影响:
亚光速航速:+65%
闪避:+65%
舰船射速:+65%
命中率:+65%
The Offspring Nest replaces the Spawning Pools of regular hives, providing additional bonuses. You'll want one of these on each of your planets.
后裔巢穴取代了普通蜂巢意识的产卵池,具有更强的加成。最好在每个行星上都有一个。

后裔巢穴
星球上限:1/1
后裔子个体职业:+1
后裔子个体能够提高舒适度和每月有机人口组装、产生后裔统领的陆军,并提供+10%的低级子个体产出。
只有先祖蜂巢意识种族能够在后裔巢穴组装。
预计岗位产出:低级子个体产出+10% 每月有机人口组装+2 舒适度+5
预计岗位维护费:5食物
这座堡垒化的巢穴将保护本地后裔的安全,同时加速附近其他巢穴的生长。
Make sure someone is working the Offspring Drone job, since otherwise the directionless menial drones on your colonies face difficulties.
确保有后裔工蜂存在,否则殖民地中盲目的低级子个体将会面临困难。

后裔缺失
低级子个体产出:-50%
这个行星缺少一位后裔,导致低级子个体的效率显著下降。
All employed leaders within a Progenitor Hive, passively gain experience at a steady rate, gaining skill levels at a much faster rate than leaders of other empires. On average, with no experience boosts or other sources of experience, they will passively gain a level about every (1.5 * level they're going to) years.
在先祖蜂巢中,所有工作的领袖都将被动获得稳定经验增长,相较于其他帝国的领袖升级速度更快。平均来说,排除掉经验加成以及其他的经验来源,他们将在每(1.5*下一等级)年后升级。
Unlike other hives, the Progenitor is able to release sectors as vassals, placing the fate of the sector in the tendrils of an Offspring which is promoted to Progenitor status and becomes the ruler of the new empire. Progenitor subjects released inherit the Progenitor Hive origin from your empire, with all the bonuses and penalties that it entails.
与其他蜂巢意识不同,先祖蜂巢可以将星区释放为附庸,将该星区的命运交给一名后裔,他将被提拔为先祖,并成为新帝国的统治者。释放的先祖附属国将继承先祖蜂巢的起源,并继承你的帝国所有的加成和减成。

Should you have a subject that is not a Progenitor Hive, you can build an Offspring Nest on their world, providing some much needed oversight to their dro- er, workers. They’re basically the same thing, right?
如果你有一个非先祖巢穴附庸,你可以在其星球上建造后裔巢穴,来监督他们的工f——额,工人。这两者基本是一样的对吧?

后裔巢穴
后裔子个体饲养员岗位:+1
后裔子个体饲养员能够提供后裔率领的陆军以及工蜂人口资源产出加成。
预计岗位产出:工蜂人口产出+5%
预计岗位维护费:6食物
预计岗位宗主产出:12社会学
在这个巢穴中,一个外来蜂巢意识的代表成为其神经网络的一个集中枢纽。使得其能够持续控制殖民地。
There's also one other (non-Progenitor Hive related) holding to reveal!
此外还要揭晓另一个(与先祖蜂巢无关的)地产!
Overlords with the Environmentalist civic can build a Ranger Lodge, which reduces consumer goods usage on the subject planet but also creates a Nature Preserve blocker, which cannot be removed as long as the lodge exists.
环保主义的宗主国能够建造护林员小屋,这将减少附庸星球上的消费品使用,但同时会创造一个自然保护区障碍,只要护林员小屋存在该障碍就不能被移除。

护林员小屋
领主护林员岗位:+1
领主护林员提供消费品维护费减成,并为领主提供凝聚力。
预计岗位产出:消费品维护费-10%
预计岗位宗主产出:18凝聚力
领主热衷于与自然共存,并且愿意和附庸一同分享这份喜悦。为此无论何时都至少需要保留一点自然生态。

自然保护区
障碍
最大区划数:-1
一片由宗主划定永世不得更改的自然美景。
The Ranger Lodge can only be built on natural planets that have districts available to block, and cannot be built on Ecumenopolies, Hive Worlds, Machine Worlds, or Relic Worlds.
护林员小屋只能在有多余区划的自然行星上建造,并且不能在都市星球、蜂巢星球、机械星球或遗落星球建造。

Banana for scale.香蕉比例尺。

(篇幅所限,前半部分请移步上篇。)

翻译:AntiAccess 疯狂的新兵 Frost zzztotoso 摸鱼怪 李勋回来了
校对:一水战阿部熊 三等文官猹中堂
欢迎关注UP主和主播小牧Phenix!
欢迎关注牧游社微信公众号和知乎专栏!微信公众号改版为信息流,欢迎【置顶订阅】不迷路,即时获得推送消息!
B站在关注分组中设置为【特别关注】,将会在私信内及时收到视频和专栏投稿的推送!
欢迎加入牧有汉化, 致力于为玩家社群提供优质内容!组员急切募集中!测试群组822400145!
本作品英文原文著作权属Paradox interactive AB所有,中文译文著作权属牧有汉化所有。