#more#
腳本模組是什麼?
模擬市民4製作團隊使用Python製作模擬市民4,同時也在模擬市民4官方論壇提供Pythont重新編譯腳本,自2018年10月開始的版本號1.46,Python全面更新為3.7版。相對於*.package屬於取代類型的模組,亦有透過修改遊戲內部程式的腳本模組,而過去腳本模組是.*py和.*pyc格式,然而模擬市民4相較於前作幾代在自定義物件和MOD這方面相當通融,後續版本更新推出*.ts4script格式,方便玩家和模組製作者管理。
下載安裝Python和PyCharm
Python[版本]3.7.0
[官網]下載版本「Windows x86-64 executable installer」
PyCharm
[官網]下載版本「Community」
PyCharm是由jetbrains開發的Python第三方編程軟體,也可以直接使用官方Python去撰寫,仍然建議使用PyCharm,因為介面跟功能比較容易使用。
設定模擬市民4腳本模組專案
使用反編譯腳本將遊戲程式反編譯出來,透過反編譯出的Python程式作為基礎去了解模擬市民4整個遊戲的運作,反編譯的程式可以在S4S下載。建立製作模組環境必須具備下列:
- 安裝Python 3.7
- 模擬市民4遊戲程式
- 反編譯腳本:S4S提供的Sims 4 Python Script Workspace (3.7).zip
- 開啟(File→Open)下載並解壓縮的專案,Sims 4 Python Script Workspace (3.7).zip
- 接著進入設定(Settings)→Project Interpreter→Add→System Interpreter→選擇Python 3.7的安裝位置
- 按下OK設定完成

反編譯模擬市民4的Python程式
一樣使用先前下載的專案Sims 4 Python Script Workspace (3.7).zip
- 開啟settings.py,並修改內容。
creator_name = 改成模組製作者名字
mods_folder = 改成Mods資料夾的位置
game_folder = 改成模擬市民4遊戲的位置 - 執行(Run)decompile_all.py,然後等待執行視窗出現「process finished with exit code 0」表示反編譯完成。


編寫Python腳本:作弊碼sims4.commands
S4S提供的專案Sims 4 Python Script Workspace (3.7)也包含了一個範例的Python腳本,第一次撰寫腳本的話,可以藉由這個範例,測試環境有沒有建立完成以及試著打包一個*.ts4script。「My Script Mods→Example Mod」的example_mod.py,腳本的內容如下:
- import sims4.commands
- @sims4.commands.Command('myfirstscript', command_type=sims4.commands.CommandType.Live)
- def myfirstscript(_connection=None):
- output = sims4.commands.CheatOutput(_connection)
- output("This is my first script mod")
由於這個腳本要寫出可以使用的作弊碼,所以第一行import sims4.commands,必須先載入模擬市民4相關的作弊碼腳本,而這個Python檔案是「EA/core/sims4/commands.py」,接著在第三行和第四行定義函式以及玩家要輸入的作弊碼:
- @sims4.commands.Command('作弊碼', command_type=sims4.commands.CommandType.Live)
- def 函式名稱(_connection=None):
由於只是測試腳本,所以第五行和第六行,寫成「如果玩家輸入作弊碼之後,就跳出一行文字」,首先在第五行把output的程式從sims4.commands調出來用,然後第六行撰寫要跳出的內容:
撰寫完成後儲存檔案,準備打包成*.ts4script。
- output = sims4.commands.CheatOutput(_connection)
- output("跳出的文字內容")
打包成*.ts4script
腳本模組的格式實際上是壓縮檔,只是將格式後綴改為模擬市民4可以解析的格式,依照以下部分就能製成*.ts4script:
- 使用7z的壓縮檔製作軟體把編寫完成的*.py和*.pyc,製作成壓縮檔*.zip。
- 將檔名的.zip改成.ts4script
延伸閱讀
[模擬市民4自製模組]教學列表Getting Started with Python Scripting
General Modding - For absolute beginners with no clue: Making a simple script that gets the town's population.
List of TS4 Tools / Documentation