Stellaris Events Modding 进阶教程 绪论

各位好啊,这边是XSkiper,因为这边搞了个modder协会官方号,所以就决定继续搞之前写了一部分的教程专栏,投上去来捧个场了~
虽然视频版的教程更好传播,但作为参考的话,大概还是文字版会比较方便……不管咋样,我还是先投了再说吧。
本部分教程和视频教程并非同一作者,和那部分教程也没什么关联,所以请稍微注意一下()
这篇教程面向那些较为熟悉群星mod制作方法和工具(例如对common的大部分文件都有了一定了解,会使用VSC或IDEA的对应插件),但苦于不熟悉蠢驴事件的结构如何满足自己构想的modder们,所以完全不知道啥是事件啥是modifier啥是AND OR NOT的可以出门左转了。
当然如果你满足于修改武器、科技数值,图标和本地化,没有事件写作需求的话,也可以跳过这个教程了,毕竟前面将会是一堆事件代码示例,乱七八糟的效果解析,可能会伤害到不少萌新......但对于有能力在群星mod制作中更进一步的同志,我还是十分希望这个教程能提供一些帮助的。




咳咳,贴这几张图是不是显得我跟赶人走一样......算了不管了(
我们的进阶教程大部分情况下还是不会碰到*单个*事件上千行的,也不会出现像这个事件链图片一样复杂的设计......大概。
好啦言归正传,让我们看看绪论要讨论的主要问题:
这个教程究竟是在搞什么?
作为进阶教程,我在这里的主要目的是介绍一些常用的事件写法以及思路,给modder们打通思路,想明白如何利用蠢驴提供的有限代码达到自己的目的,换句话说,戴着镣铐起舞(笑)。
如何理解这个目的呢?我在这里可以举几个简单的事件例子给你们体会下()

范例0-1 简单且无聊的投票事件


举几个小例子,如果你想搞点小弟跟你一起投票开会的排面活,你就需要一系列在各个国家传递的事件,就像这样:

很简单的流程图,通过玩家国家启动开关,触发A、B、C三个国家的事件,A、B、C三个国家选择后,再将投票数据通过另一个事件反馈到玩家国家即可。
我们决定写三个事件:投票触发(以下简称事件α)、投票选择(以下简称事件β)、投票结果总结(以下简称事件γ)
但是这里出现了几个问题:
如何在A、B、C三个国家的事件β中找到事件α的触发者,以得到文本引用国家名字,以及反馈到正确的目标,使玩家国家准时触发事件γ的效果?
如何计算投票支持票和反对票数量,以得到法案是否通过的结果?
如何在不同的投票结果下同一事件(即事件γ)显示不同文本?
如果有投票者是玩家,选择拖延时间,不进行投票(即“断无此疏”),如何强迫其投票?
这样或那样的问题,就会开始出现,无疑对于萌新是一个巨大打击(尽管我敢说没有萌新会尝试写这种东西,写了也不会考虑这些情况)。这个教程的主要目的,就是介绍这些问题的解决思路,帮助进阶modder更好的进行事件写作。

如上面这些问题所示,就技术层面,这篇教程的主要内容是关于事件的各种小技巧和操作实例。例如scope语句的使用详解,UI的制作,变量和flag的使用,各种封装效果的使用方法等。
而事件制作更重要的,则是思路。在各个技巧与实例之外,我也会谈谈设计事件的思路方向,如何从自己的能力出发,想出可行的mod文案,如何把脑内点子转换为可行的“蠢驴思路”,以及如何更快更好的提升modding技术。
以上一堆废话说完了,我们就可以开始教程的第一篇了,正式深入events这一个stellaris mod核心,芜湖~

等一下
在上车前,我要先确认一下,各位都掌握了VSC(也就是Visual Studio Code)以及插件cw tools的用法了吗?

没有的话......还不快去看隔壁无言的教程(笑),事件编辑要是没有这种工具的协助可是会花式导致游戏暴毙。

顺带来宣传一下modder交流群,有具体代码问题都可以来问()

在这篇进阶教程的第一章,我们将讨论一下蠢驴event的基本架构,并回答一个重要的问题: