打开主菜单
首页
随机
登录
设置
关于Stardew Valley Wiki
免责声明
Stardew Valley Wiki
搜索
查看“模组:编辑 XNB 文件”的源代码
←
模组:编辑 XNB 文件
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
←[[使用模组:目录|目录]] 本页描述了如何编辑游戏文件以更改游戏中的数据、图像和地图。 ==介绍== ===什么是 XNB 文件?=== 游戏将数据、地图和纹理 存储在 <tt>.xnb</tt> 这种压缩数据文件中,它们在游戏的 <tt>Content</tt> 文件夹中。 <br> 例如,对话期间显示的阿比盖尔的头像来自这个文件: <tt>Content\Portraits\Abigail.xnb</tt>。解包这个文件,你会得到 <tt>Abigail.png</tt> 这个图片文件,内容如下:<br />[[File:Modding - creating an XNB mod - example portraits.png]] (如果你使用 xnbcli 来解包,你通常会得到 <tt>Abigail.json</tt> 文件。 那只是用来打包回 <tt>.xnb</tt> 所需的文件,通常不需要更改它。) ===如何将更改应用到游戏中?=== 有3个方法可以使你的修改应用到游戏中: # 创建一个 [https://www.nexusmods.com/stardewvalley/mods/1915 Content Patcher] 内容包。这不需要编程,仅编辑 JSON 文件就可以更改游戏的 XNB 数据,也无需替换实际的游戏文件。 # [[模组:创建模组/创建 SMAPI 模组|制作一个 SMAPI 模组]] 并使用 [[模组:创建模组/APIs/Content|内容 API]]。不过,这需要编程。 # 通过替换原始游戏文件来创建 XNB 模组。不再建议使用,本页面没有讲解; 访问 [[模组:使用 XNB 模组|使用 XNB 模组]] 获取更多信息。 ===在哪里可以得到帮助?=== 欢迎访问星露谷模组社区。Feel free to [[模组:Community|ask the community]] for help. ==<span id="unpacking">解包游戏文件</span>== 你无法编辑 <tt>.xnb</tt> 文件其本身,你需要编辑其中的文件 <br> 将文件从中取出叫做 '''解包''' <br> 把文件放入其中叫做 '''打包''' <br> 有两个主要的 XNB 解包工具可用: ===StardewXnbHack=== {{github|Pathoschild/StardewXnbHack#readme|StardewXnbHack}} 是用于解包 XNB 文件的开源且跨平台的工具<br> 它不能打包回 <tt>.xnb</tt> 不过你会需要 [[模组:创建模组/Content Patcher|创建内容包]] 如何操作: # [[Modding:Player Guide/Getting Started|安装 SMAPI]] # {{github|Pathoschild/StardewXnbHack/releases|下载 StardewXnbHack}}(确保你下载的文件适合你的系统,例如文件名: StardewXnbHack-*-for-windows.zip 而不是 source code!) # 解压缩并放进 [[Modding:Game folder|你的游戏文件夹]], 也就是 <tt>StardewXnbHack.exe</tt> 文件位于与 <tt>StardewValley.exe</tt> 相同的目录下. # 双击运行 <tt>StardewXnbHack.exe</tt> (Windows)、<tt>StardewXnbHack.sh</tt> (Linux)、 <tt>StardewXnbHack.command</tt> (MacOS) 来解包游戏文件夹中 <tt>Content</tt> 文件夹下的所有 XNB 文件。 就是这样!它将会把解包的内容放入游戏文件夹下的 <tt>Content (unpacked)</tt> 文件夹。解包出的文件可用于创建 [[Modding:Content Patcher|Content Patcher]] 的内容包。 ===xnbcli=== {{github|LeonBlade/xnbcli#readme|xnbcli}} 是用于打包和解包 XNB 文件的开源且跨平台的工具。它无法解包带有数据模型的 XNB 文件 (例如 <tt>Data\FishPondData</tt> 或者 <tt>Data\Movies</tt>),并且需要手动编辑数据文件才能与 Content Patcher 等模组一起使用。 如何操作: <ol> <li>{{github|LeonBlade/xnbcli/releases|下载 xnbcli}}. (确保你下载的文件适合你的系统,例如文件名:<tt>xnbcli-windows-x64.zip</tt> 而不是 source code!)</li> <li>解压缩下载的文件 # 找到你要解包的文件 # 将它放进 xnbcli 的 <tt>packed</tt> 文件夹 # 双击 <tt>unpack.bat</tt> (Windows)、<tt>unpack.sh</tt> (Linux)、<tt>unpack.command</tt> (Mac). # 检查 <tt>Unpacked</tt> 文件夹,解包后的文件在该文件夹中 (如果你没有一次性解包很多文件,它可能会在屏幕上闪烁并瞬间消失,这很正常!无论如何,请注意检查 <tt>Unpacked</tt> 文件夹。注意 1.4 引入了 xnbcli 无法处理的新数据模型格式;对于某些数据文件,你需要使用 [[#StardewXnbHack|StardewXnbHack]] 才行。) </li> <li>编辑解压缩的文件(请参见下文)</li> <li>如果这是一个数据文件(而不是图像或地图),要替换或编辑该文件,则需要删除 XNB 元数据。当前的 JSON 文件内容应如下所示: <syntaxhighlight lang="js"> { "header": { "target": "w", "formatVersion": 5, "hidef": true, "compressed": true }, "readers": [ { "type": "Microsoft.Xna.Framework.Content.DictionaryReader`2[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]", "version": 0 }, { "type": "Microsoft.Xna.Framework.Content.Int32Reader", "version": 0 }, { "type": "Microsoft.Xna.Framework.Content.StringReader", "version": 0 } ], "content": { "0": "Weeds/0/-1/Basic/Weeds/A bunch of obnoxious weeds." } } </syntaxhighlight> 只需删除 除了内容字段(content)以外的所有内容,就像这样: <syntaxhighlight lang="js"> { "0": "Weeds/0/-1/Basic/Weeds/A bunch of obnoxious weeds." } </syntaxhighlight></li> </ol>
该页面使用的模板:
Template:Executable name
(
查看源代码
)
Template:Github
(
查看源代码
)
Template:Nexus mod
(
查看源代码
)
返回至
模组:编辑 XNB 文件
。