各位好啊,這邊是XSkiper,因為這邊搞了個modder協會官方號,所以就決定繼續搞之前寫了一部分的教程專欄,投上去來捧個場了~
雖然視訊版的教程更好傳播,但作為參考的話,大概還是文字版會比較方便……不管咋樣,我還是先投了再說吧。
本部分教程和視訊教程並非同一作者,和那部分教程也沒什麼關聯,所以請稍微注意一下()
這篇教程面向那些較為熟悉群星mod製作方法和工具(例如對common的大部分檔案都有了一定了解,會使用VSC或IDEA的對應外掛),但苦於不熟悉蠢驢事件的結構如何滿足自己構想的modder們,所以完全不知道啥是事件啥是modifier啥是AND OR NOT的可以出門左轉了。
當然如果你滿足於修改武器、科技數值,圖示和本地化,沒有事件寫作需求的話,也可以跳過這個教程了,畢竟前面將會是一堆事件程式碼示例,亂七八糟的效果解析,可能會傷害到不少萌新......但對於有能力在群星mod製作中更進一步的同志,我還是十分希望這個教程能提供一些幫助的。
圖一「難得有這分才,為何不去磨練精進!」
圖二「長度只有40行的程式碼,已經厭倦了吧?」
圖三a 一些簡單的事件鏈
圖三b 一些行數較短的事件
咳咳,貼這幾張圖是不是顯得我跟趕人走一樣......算了不管了(
我們的進階教程大部分情況下還是不會碰到*單個*事件上千行的,也不會出現像這個事件鏈圖片一樣複雜的設計......大概。
好啦言歸正傳,讓我們看看緒論要討論的主要問題:
這個教程究竟是在搞什麼?
作為進階教程,我在這裡的主要目的是介紹一些常用的事件寫法以及思路,給modder們打通思路,想明白如何利用蠢驢提供的有限程式碼達到自己的目的,換句話說,戴著鐐銬起舞(笑)。
如何理解這個目的呢?我在這裡可以舉幾個簡單的事件例子給你們體會下()

範例0-1 簡單且無聊的投票事件
圖四a 投票系統,儘管大家好像都喜歡一言堂
圖四b 好吧,確實一言堂比較好舉幾個小例子,如果你想搞點小弟跟你一起投票開會的排面活,你就需要一系列在各個國家傳遞的事件,就像這樣:
圖五 要是能反饋C國的名字就好了
很簡單的流程圖,通過玩家國家啟動開關,觸發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的基本架構,並回答一個重要的問題:
事件究竟能做什麼?









