Stellaris Events Modding 進階教程 緒論

各位好啊,這邊是XSkiper,因為這邊搞了個modder協會官方號,所以就決定繼續(xù)搞之前寫了一部分的教程專欄,投上去來捧個場了~
雖然視頻版的教程更好傳播,但作為參考的話,大概還是文字版會比較方便……不管咋樣,我還是先投了再說吧。
本部分教程和視頻教程并非同一作者,和那部分教程也沒什么關聯,所以請稍微注意一下()
這篇教程面向那些較為熟悉群星mod制作方法和工具(例如對common的大部分文件都有了一定了解,會使用VSC或IDEA的對應插件),但苦于不熟悉蠢驢事件的結構如何滿足自己構想的modder們,所以完全不知道啥是事件啥是modifier啥是AND OR NOT的可以出門左轉了。
當然如果你滿足于修改武器、科技數值,圖標和本地化,沒有事件寫作需求的話,也可以跳過這個教程了,畢竟前面將會是一堆事件代碼示例,亂七八糟的效果解析,可能會傷害到不少萌新......但對于有能力在群星mod制作中更進一步的同志,我還是十分希望這個教程能提供一些幫助的。

?

?


咳咳,貼這幾張圖是不是顯得我跟趕人走一樣......算了不管了(
我們的進階教程大部分情況下還是不會碰到*單個*事件上千行的,也不會出現像這個事件鏈圖片一樣復雜的設計......大概。
好啦言歸正傳,讓我們看看緒論要討論的主要問題:
這個教程究竟是在搞什么?
作為進階教程,我在這里的主要目的是介紹一些常用的事件寫法以及思路,給modder們打通思路,想明白如何利用蠢驢提供的有限代碼達到自己的目的,換句話說,戴著鐐銬起舞(笑)。
如何理解這個目的呢?我在這里可以舉幾個簡單的事件例子給你們體會下()
?
?

范例0-1 簡單且無聊的投票事件
?


舉幾個小例子,如果你想搞點小弟跟你一起投票開會的排面活,你就需要一系列在各個國家傳遞的事件,就像這樣:

?
很簡單的流程圖,通過玩家國家啟動開關,觸發(fā)A、B、C三個國家的事件,A、B、C三個國家選擇后,再將投票數據通過另一個事件反饋到玩家國家即可。
我們決定寫三個事件:投票觸發(fā)(以下簡稱事件α)、投票選擇(以下簡稱事件β)、投票結果總結(以下簡稱事件γ)
但是這里出現了幾個問題:
如何在A、B、C三個國家的事件β中找到事件α的觸發(fā)者,以得到文本引用國家名字,以及反饋到正確的目標,使玩家國家準時觸發(fā)事件γ的效果?
如何計算投票支持票和反對票數量,以得到法案是否通過的結果?
如何在不同的投票結果下同一事件(即事件γ)顯示不同文本?
如果有投票者是玩家,選擇拖延時間,不進行投票(即“斷無此疏”),如何強迫其投票?
這樣或那樣的問題,就會開始出現,無疑對于萌新是一個巨大打擊(盡管我敢說沒有萌新會嘗試寫這種東西,寫了也不會考慮這些情況)。這個教程的主要目的,就是介紹這些問題的解決思路,幫助進階modder更好的進行事件寫作。
?

如上面這些問題所示,就技術層面,這篇教程的主要內容是關于事件的各種小技巧和操作實例。例如scope語句的使用詳解,UI的制作,變量和flag的使用,各種封裝效果的使用方法等。
而事件制作更重要的,則是思路。在各個技巧與實例之外,我也會談談設計事件的思路方向,如何從自己的能力出發(fā),想出可行的mod文案,如何把腦內點子轉換為可行的“蠢驢思路”,以及如何更快更好的提升modding技術。
以上一堆廢話說完了,我們就可以開始教程的第一篇了,正式深入events這一個stellaris mod核心,蕪湖~

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

沒有的話......還不快去看隔壁無言的教程(笑),事件編輯要是沒有這種工具的協助可是會花式導致游戲暴斃。
?

順帶來宣傳一下modder交流群,有具體代碼問題都可以來問()
?

在這篇進階教程的第一章,我們將討論一下蠢驢event的基本架構,并回答一個重要的問題: