制作Mod
阅读
2022-10-15更新
最新编辑:fog-凉介
阅读:
更新日期:2022-10-15
最新编辑:fog-凉介
此 文本 包含过时信息。
如果可以,你可以通过 编辑 更新此信息 文本 来提供帮助 ( Posted: 2016年8月, 2022年10月 ) |
模组制作(即制作模组) 是一种有趣的游玩方式,它可以用来扩展和增强你的《监狱建筑师》的游戏体验。
- 这是你可能在创建 模组 文件中使用的所有属性和值的列表: ModSchema.
- 这是解释旋转类型的参考或指南: RotateTypes Explained。
- 这是一个模组创建入门指南:Modding Quickstart Guide。
- 有关开发场景模组的更多信息,请参阅 Lua。
- 有关Objects脚本的详尽指南,请参见 Steam (aubergine18)。
- 更多帮助可以在 《监狱建筑师》官方模组讨论社区获取。
Game data / 游戏数据
Introversion 在Alpha 15之中添加了模组功能并在Alpha 24进行了大幅度扩展。所有非创意工坊模组现在都应该打包在一个压缩包文件并由玩家手动解压到模组文件夹中。
- Windows 模组文件夹路径
%UserProfile%\AppData\Local\Introversion\Prison Architect\mods
- Mac 模组文件夹路径
/Users/Username/Library/Application Support/Prison Architect/mods
- Linux 模组文件夹路径
~/.Prison Architect/mods
在创建模组时应该包含一个 manifest.txt,详细说明模组名称、作者、制作日期和当前模组文件的版本以及关于这个模组的介绍。当然也可以选择提供 thumbnail.png 。这是用户在游戏中查看模组时展示出来的模组封面。
这里有两个官方的模板模组,展示了如何正确地组合模组:
- 替换所有Object的贴图示例: Media:Sample_Graphical_Mod.zip
- 使用 Lua 脚本运行故事过场动画的场景模块示例: Media:Sample_Scenario_Mod.zip
更详细的说明可以在监狱建筑师开发者论坛的这个主题中找到: http://forums.introversion.co.uk/viewtopic.php?f=43&t=45950
Getting Started / 开始入门
使用解压缩工具(例如 7-zip),提取 'main.dat' 文件, 在您的“监狱建筑师”文件夹中创建同名称的目录,您将拥有一个“Data”文件夹。这与“main.dat”文件执行相同的工作,但作为已加载文件的补充加载。您在此处所做的任何更改都会影响游戏。您还可以对“sounds.dat”音效文件重复此过程。
这个文件夹中的任何文件都将在加载main.dat文件后让游戏运行自己的在main.dat中没有的代码。这不会覆盖main.dat文件。这意味着如果您的 base-language.xt 文件中缺少一些对象的汉化翻译,则会从main.dat文件中读取。
您还可以自定义新的对象、实体、地板、房间、研究、补助、工作、需求和解决需求的物品等等,并且还可以让游戏加载您自己独创的贴图(请保持您的 sprites.png 尽可能小而紧凑 -这样可以一次加载更多的模组)。
额外说明:如果有多个模组处于激活状态,最后一个加载的模组将具有最高优先级。这意味着如果有多个模组的内容冲突,最后加载(打勾激活)的模组将优先于其他模组。
有关 main.dat 中许多文件的内部结构的信息,请参阅 File Format.
Steam 创意工坊现在可以上传您自定义的模组。
Game Translation / 游戏翻译
要为游戏进行中文翻译或为您的新建对象进行命名,您需要编辑 data/language/Simplified Chinese 的 base-language.txt(简体中文)。
Lua
监狱建筑师广泛使用 Lua 进行系统的编写。不仅,许多游戏系统都是用 Lua 编写的,可以轻松修改。
Using Multiple Grant Mods / 使用“补助”模组
从 Alpha 24 开始不再需要特殊程序,如果您的版本大于此,可以忽略本条。但是 [verification needed] 之前,需要完成以下操作:
- 使用 7-zip 解压“Main.dat”(您可以从 这里 下载 7-zip)。
- 打开新创建的“main”文件夹。
- 打开“grants.lua”(可以从 这个 SourceForge 链接 下载 Lua IDE,也可以在系统自带的文本编辑器中编辑 Lua 脚本)。
- 从补助模组的文件夹里面复制代码(值得注意的是需要将同名文件的代码复制到同名文件里。如:将模组的Grant.Lua内的代码复制到main.dat的Grant.Lua,其他的亦是如此。)
- 将它们粘贴到“main”文件夹内的“Grant.Lua”中。
- 转到prisonarchitect > data > language并打开“base-language.txt,如果此模组有中文的翻译则需要忽略前面所说的base-language.txr并打开prisonarchitect > data > language > Simplified Chinesebase-language.txt(简体中文)”。
- 重复第四步。
Opening The Debug Console / 打开Debug调试控制台
要打印一些调试输出,请在 Lua 脚本中调用以下命令:
Game.DebugOut("foo")
与脚本发生错误时相反,这不会自动打开调试控制台。为此,请在选择修改的对象时按 F3(每个对象都有自己的调试控制台)。
.prison files / .prison文件
存档保存在 .prison 文件中,可以在任何文本编辑器中轻松编辑。
ternals / 文件内部代码
一些逆向工程工作已经在游戏的内部完成。这在 Prison Architect 正式支持模组之前已经完成,但对于希望更改核心游戏功能或提供附加工具的模组制作者仍然可能有用。至少 Linux 版本是在没有剥离符号的情况下分发的,但是大部分调试功能都被 rep retn 删除了,因此从视频中获得完好的调试窗口的希望很小。但是,有可能手动编写代码来进行更改,例如,利用代码不费吹灰之力就将东西扔进(生成到)监狱的某个区域。
如果 Windows 版本未附带符号,则可以使用 bindiff 将符号从 Linux 版本映射到 Windows。
目前,已知以下内容:
- 大部分囚犯结构(位置、速度、目的地、年龄、姓名、健康、分配的牢房 ID、帮派 ID)
- 大部分囚犯的需求结构(需求类型、当前等级、最高等级、达到最高等级的时间、失败时间)
- 一些actor类型常量。
- 需要类型常量的列表。
- 用于货币的浮动加载代码偏移量(用于展示货币地址)