Galaxy's World 银河雪尘

Stellaris & its Workshop

StellarisParadox Interactive开发的策略游戏。属于P社()萌之

额,刚发现markdown的写法P社[四]^(五)萌还没标准化。只好直接嵌入HTML了。

属于探索(eXlore)、扩张(eXpand)、开发(eXploit)和消灭(eXterminate)的4X策略游戏。

现在Steam上的1.6版中,对DLC的确认不再是直接看dlc目录下的文件,而是通过libsteam_api来读取购买了的DLC列表。所以,想用最开始时正版本体加自行下载DLC文件的方法就行不通了。但如果使用第三方的libsteam_api,就无法自动加载workshop中订阅的mod,需要手工处理。

Galaxy在路过一个下载mod的插件时,知道了SKYMODS网站可以下载steam社区的mod。其帮助页面的说明让人感觉有戏:

Unpack mod folder in

C:\Users\*Username*\Documents\Paradox Interactive\Stellaris\workshop\content\281990\

Unpack .mod file in

C:\Users\*Username*\Documents\Paradox Interactive\Stellaris\mod

随便下载一个924982139_Better_Technology_Information.zip,发现其结构是:

./924982139/better_tech_info.zip
./924982139.mod
./Readme.txt

924982139.mod的内容是:

name="Better Technology Information"
path="workshop/content/281990/924982139/better_tech_info.zip"
tags={
	"Utilities"
}
picture="thumbnail.jpg"
remote_file_id="924982139"
supported_version="1.6.1"

Steam正版在启动游戏时,如果存在~/Documents/Paradox\ Interactive/Stellaris/mod,会在mod目录下自动生成ugc_开头的描述文件,如ugc_924982139.mod。其内容为:

name="Better Technology Information"
archive="/Applications/Games/Steam/steamapps/workshop/content/281990/924982139/better_tech_info.zip"
tags={
	"Utilities"
}
picture="thumbnail.jpg"
remote_file_id="924982139"
supported_version="1.6.1"

因为我把默认的~/Library/Application\ Support/Steam改成/Applications/Games/Steam以便备份,所以是上面那个。

ACTiVATEDlibsteam_api.dylib会在运行时删除mod目录下所有内容包括archive=的mod描述文件。

所以,方法就简单了:先订阅workshop上的东西,开Steam客户端下载,然后~/Documents/Paradox\ Interactive/Stellaris/mod会产生mod描述文件,cd进去执行:

perl -pi -e 's/archive="/path="/' *.mod

就可以了。 我之前模仿SKYMODS做过ln -s /Applications/Games/Steam/steamapps/workshop/content/281990 ~/Documents/Paradox\ Interactive/Stellaris/workshop/content/,所以执行的是perl -pi -e 's|archive="/Applications/Games/Steam/steamapps/|path="|' *.mod。 得到的文件如下:

name="Better Technology Information"
path="workshop/content/281990/924982139/better_tech_info.zip"
tags={
	"Utilities"
}
picture="thumbnail.jpg"
remote_file_id="924982139"
supported_version="1.6.1"

于是,就能实现批量加载mod的了。


顺道附下两家的第三方api配置,额,咱只是为了学习~

stellaris.app/Contents/Resources/activated.ini:

###
### Game data is stored at ~/Library/Application Support/Steam/ACTiVATED/393780
###

[Settings]
###
### Game identifier - http://store.steampowered.com/app/393780
###
AppId=393780
###
### Name of the current player
###
UserName=ACTiVATED
###
### Language that will be used in the game
###
Language=english
###

[Interfaces]
###
### Steam Client API interface versions
###
SteamAppList=STEAMAPPLIST_INTERFACE_VERSION001
SteamApps=STEAMAPPS_INTERFACE_VERSION007
SteamClient=SteamClient017
SteamController=SteamController003
SteamFriends=SteamFriends015
SteamGameServer=SteamGameServer012
SteamGameServerStats=SteamGameServerStats001
SteamHTMLSurface=STEAMHTMLSURFACE_INTERFACE_VERSION_003
SteamHTTP=STEAMHTTP_INTERFACE_VERSION002
SteamInventory=STEAMINVENTORY_INTERFACE_V001
SteamMatchMaking=SteamMatchMaking009
SteamMatchMakingServers=SteamMatchMakingServers002
SteamMusic=STEAMMUSIC_INTERFACE_VERSION001
SteamMusicRemote=STEAMMUSICREMOTE_INTERFACE_VERSION001
SteamNetworking=SteamNetworking005
SteamRemoteStorage=STEAMREMOTESTORAGE_INTERFACE_VERSION013
SteamScreenshots=STEAMSCREENSHOTS_INTERFACE_VERSION002
SteamUGC=STEAMUGC_INTERFACE_VERSION007
SteamUser=SteamUser018
SteamUserStats=STEAMUSERSTATS_INTERFACE_VERSION011
SteamUtils=SteamUtils007
SteamVideo=STEAMVIDEO_INTERFACE_V001
###

[DLC]
###
### Automatically unlock all DLCs
###
DLCUnlockall=0
###
### Identifiers for DLCs
###
#ID=Name
###
462720=462720
498870=498870
518910=518910
553280=553280
554350=554350

Stellaris.Galaxy.Edition.v1.6.1.Incl.All.Dlcs-ALI213/Stellaris/ALI213.ini:

[Settings]
#############################################
#			模拟参数
#############################################
;应用程序ID,不是必须,但有可能会检测.
AppID = 281990

;尽量使用正确的API版本
API = 3.4.27.90

;玩家名称,如果你修改了存档类型,请注意修改对应的存档玩家名称.
PlayerName = ALI213

;游戏语言
;english	german		french		italian		koreana
;spanish	schinese	tchinese	russian		thai
;japanese	portuguese	polish		danish		dutch
;finnish	norwegian	swedish		hungarian	czech
;romanian	turkish

Language = english

;存档类型:
; ALI213(游戏目录)		0
; ALI213(我的文档)		1
; RELOADED			2
; SKIDROW			3
; FLT				4
; CODEX(3.0.4+/我的文档)	5
; CODEX(1.0.0.0+/APPDATA)	6
SaveType = 0

;是否使用回调相关代码
;UseCALLBACK=0

;成就数量限制
;AchievementsCount=0
#############################################
#			用户相关
#############################################
;用户的低位ID(设置固定用户ID的目的在于部分游戏存档会检测用户ID.)
;SteamUserID  =12345678

;用户的高位ID(当在多人游戏下,可能相同ID无法联机)
;SteamUserIDH =12345678

;用户是否处于登录状态
;IsLoggedOn=0

;用户是否处于在线状态
;Online=0

#############################################
#			DLC  相关
#############################################
;单独的DLC ID,使用格式为DLC???=数字ID
;UnLockListedDLCOnly=1
[DLC]
;SET DLC USE "APPID=NAME"
447680=Stellaris: Symbols of Domination
447681=Stellaris: Sign-up Campaign Bonus
447682=Stellaris: Digital Artbook
447683=Stellaris: Arachnoid Portrait Pack
447684=Stellaris: Digital OST
447685=Stellaris: Signed High-res Wallpaper
447686=Stellaris: Novel by Steven Savile
447687=Stellaris: Ringtones
447688=Unknown App 447688
447750=Unknown App 447750
461070=Unknown App 461070
461071=Stellaris (Pre-Order) (99330)
461072=Unknown App 461072
461073=Stellaris - Nova (Pre-Order)
461460=Unknown App 461460
461461=Stellaris - Galaxy (Pre-Order)
462720=Stellaris: Creatures of the Void
483050=Unknown App 483050
483060=Unknown App 483060
483070=Unknown App 483070
483080=Unknown App 483080
483090=Unknown App 483090
483100=Unknown App 483100
483110=Unknown App 483110
483130=Unknown App 483130
483140=Unknown App 483140
483150=Unknown App 483150
483160=Unknown App 483160
483170=Unknown App 483170
483180=Unknown App 483180
483190=Unknown App 483190
483200=Unknown App 483200
483210=Unknown App 483210
483220=Unknown App 483220
483230=Unknown App 483230
483240=Unknown App 483240
483250=Unknown App 483250
483270=Unknown App 483270
483310=Unknown App 483310
483320=Unknown App 483320
492740=Stellaris: Original Game Soundtrack
497660=Stellaris: Infinite Frontiers eBook
498870=Stellaris: Plantoids Species Pack
508700=Unknown App 508700
516690=Unknown App 516690
518910=Stellaris: Leviathans Story Pack
539210=Unknown App 539210
545080=Unknown App 545080
553280=Stellaris: Utopia
554350=Stellaris: Horizon Signal
604620=Unknown App 604620
616190=Stellaris: Nova Edition Upgrade Pack
616191=Stellaris: Galaxy Edition Upgrade Pack
618910=Unknown App 618910
618911=Unknown App 618911
619830=Unknown App 619830
619840=Unknown App 619840
626720=SteamDB Unknown App 626720
633310=Stellaris: Anniversary Portraits
#############################################
#			UBISOFT UPLAY EMU
#############################################
[UPLAY]
;GAMECDKEY=



#############################################
#			其它选项
#############################################
[Option]
;skip some binkvideo file(.bik)
;SkipMovie=

;存档自动备份
UseSavesBackup=0

;Block any Network link.
;FullBlockNetwork=1

;Redirect File Handle "ANY" to "ANY.ali213"
;FileRedirectCheck=1

然后,咱有发现2016年的Stellaris.MacOSX-ACTiVATED与2017年的Stellaris.Utopia.MacOSX-ACTiVATED的INI文件不一样,多了好些东西:

###
### Game saves are stored here:
###
### ~/Library/Application Support/Steam/ACTiVATED/281990/remote
###
### Achievements are stored here:
###
### ~/Library/Application Support/Steam/ACTiVATED/281990/achievements.ini
###
### Stats are stored here:
###
### ~/Library/Application Support/Steam/ACTiVATED/281990/stats.ini
###

[Settings]
###
### Game identifier (http://store.steampowered.com/app/281990)
###
AppId=281990
###
### Steam Account ID, set it to 0 to get a random Account ID
###
#AccountId=0
###
###
### Name of the current player
###
UserName=ACTiVATED
###
### Language that will be used in the game
###
Language=english
###
### Enable lobby mode
###
LobbyEnabled=1
###
### Lobby port to listen on
###
#LobbyPort=31183
###
### Set Steam connection to offline mode
###
Offline=0
###

[Interfaces]
###
### Steam Client API interface versions
###
SteamAppList=STEAMAPPLIST_INTERFACE_VERSION001
SteamApps=STEAMAPPS_INTERFACE_VERSION007
SteamClient=SteamClient017
SteamContentServer=0
SteamController=SteamController003
SteamFriends=SteamFriends015
SteamGameServer=SteamGameServer012
SteamGameServerStats=SteamGameServerStats001
SteamHTMLSurface=STEAMHTMLSURFACE_INTERFACE_VERSION_003
SteamHTTP=STEAMHTTP_INTERFACE_VERSION002
SteamInventory=STEAMINVENTORY_INTERFACE_V001
SteamMasterServerUpdater=0
SteamMatchMaking=SteamMatchMaking009
SteamMatchMakingServers=SteamMatchMakingServers002
SteamMusic=STEAMMUSIC_INTERFACE_VERSION001
SteamMusicRemote=STEAMMUSICREMOTE_INTERFACE_VERSION001
SteamNetworking=SteamNetworking005
SteamRemoteStorage=STEAMREMOTESTORAGE_INTERFACE_VERSION013
SteamScreenshots=STEAMSCREENSHOTS_INTERFACE_VERSION002
SteamUGC=STEAMUGC_INTERFACE_VERSION007
SteamUnifiedMessages=STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001
SteamUser=SteamUser018
SteamUserStats=STEAMUSERSTATS_INTERFACE_VERSION011
SteamUtils=SteamUtils007
SteamVideo=STEAMVIDEO_INTERFACE_V001
###

[DLC]
###
### Automatically unlock all DLCs
###
DLCUnlockall=0
###
### Identifiers for DLCs
###
#ID=Name
###

[AchievementIcons]
###
### Bitmap Icons for Achievements
###
#Internal Achievement Identifier Achieved=Path to Achieved Bitmap
#Internal Achievement Identifier Unachieved=Path to Unachieved Bitmap
#Unachieved=Path to General Unachieved Bitmap
###

[HTTP]
###
### Locally cached HTTP requested files
###
#MD5 Hash of URL=Path to File
###

[Avatar]
###
### Bitmap Avatar files
###
### 32x32 Pixel
#Small=Path of Avatar32.bmp relative to this .ini
###
### 64x64 Pixel
#Medium=Path of Avatar64.bmp relative to this .ini
###
### 184x184 Pixel
#Large=Path of Avatar184.bmp relative to this .ini
###

这,难道2016年的版本比2017年的功能更多? 话说,2017年大家都把 AppId 换成 beta 版的划清界限是为了啥?

No comments

You today

Comments are closed