#nwn #aurora #neverwinter #nwn2

nightly nwn-lib-rs

Neverwinter Nights 1 和 2 数据文件的解析库和命令行工具

8 个版本

0.3.4 2024年4月15日
0.3.3 2024年2月26日
0.3.2 2023年10月5日
0.3.0 2023年9月28日
0.1.2 2023年3月8日

#383解析器实现

Download history 161/week @ 2024-04-15 128/week @ 2024-04-29 5/week @ 2024-05-20

每月459次下载

LGPL-3.0 或更高版

9.5MB
5.5K SLoC

nwn-lib-rs

Neverwinter Nights 1 和 2 数据文件的解析库和命令行工具

下载

查看发布页面

工具

nwn-gff

  • 读取和写入 GFF 文件(ARE, GIT, DLG, BIC, UTC, UTI, ...)
  • 转换为和从 JSON, YAML 转换
  • 以文本形式显示内容(易于使用 git 进行比较)
  • 设置 GFF 值
  • 转储内部 GFF 结构(仅限调试使用)

nwn-erf

  • 创建 ERF 存档(ERF, PWC, HAK, MOD)
  • 解包 ERF 存档内的文件
  • 当 ERF 文件被截断时恢复文件(如果可能的话)
  • 列出 ERF 存档中的文件
  • 查看 ERF 元数据

nwn-tlk

  • 读取和写入 TLK 文件(并修复)
  • 转换为和从 JSON, YAML 转换
  • 以文本形式显示内容(易于使用 git 进行比较)
  • 编辑 TLK 条目(文本,声音,...)
  • 合并 TLK 文件(具有基本冲突管理)

nwn-2da

  • 读取和写入 2DA 文件(并修复)
  • 转换为和从 JSON, YAML 转换
  • 合并 2DA 文件(具有基本冲突管理)
  • 支持 2DAM,一种易于合并操作的定制文件格式

nwn-trn

  • 读取和写入 NWN2 TRN 文件(TRX, TRN)
  • 打印 TRN 数据包信息
  • 打包/解包 TRN 数据包到单独的文件

技巧与技巧

改进 git diff 和合并工具

nwn-lib-rs 可以用于改进 git diff 以查看 GFF 文件(蓝图,日志,区域等)和 TLK 文件中做出的更改,并在合并冲突的情况下快速合并 TLK 内容。

假设 nwn-lib-rs 工具已安装到 C:\nwn-lib-rs\,打开终端(Windows 上的 git bash)并运行

git config --global diff.gff.textconv '"C:/Program Files/nwn-lib-rs/nwn-gff"'

git config --global diff.tlk.textconv '"C:/Program Files/nwn-lib-rs/nwn-tlk"'
git config --global diff.tlk.xfuncname '^\s*([0-9]+)>'
git config --global mergetool.tlk.cmd '"C:/Program Files/nwn-lib-rs/nwn-tlk" "$LOCAL" -I tlk --merge "$REMOTE" --merge-format tlk -o "$MERGED" -O tlk'

在您的模块目录中,或任何包含 NWN 文件的 git 目录中,创建一个名为 .gitattributes 的文件

# Areas
*.[aA][rR][eE] diff=gff
*.[gG][iI][cC] diff=gff
*.[gG][iI][tT] diff=gff

# Dialogs
*.[dD][lL][gG] diff=gff

# Module
*.[fF][aA][cC] diff=gff
*.[iI][fF][oO] diff=gff
*.[jJ][rR][lL] diff=gff

# Blueprints
*.[uU][lL][tT] diff=gff
*.[uU][pP][eE] diff=gff
*.[uU][tT][cCdDeEiImMpPrRtTwW] diff=gff

# Others
*.[pP][fF][bB] diff=gff
*.[tT][lL][kK] diff=tlk merge=tlk

依赖关系

~2.2–3.5MB
~64K SLoC