PapyrusUtil SE - Modder 脚本实用函数 封面

PapyrusUtil SE - Modder 脚本实用函数

上古卷轴5:天际特别版模组作者资源

一个 SKSE 插件,添加了若干带有原生函数的新脚本,为脚本作者/模组作者提供与数据存储及其他杂项功能相关的各种便利功能。

前置 Mod

详情

此版本适用于 Skyrim Special Edition

在此获取原版重要: 如果你使用的是 Skyrim 1.6+ 版本,则必须安装 AE 版本的 PapyrusUtil 和 Address Library。即使你没有 Anniversary Edition DLC 也完全没关系;任何高于 1.5.97 的版本都被视为 AE。

请确保你的 Address Library 和 SKSE64 安装完全是最新的。

一如既往,请确保没有任何模组用过时版本覆盖最新版本的 PapyrusUtil(例如 Simply Knock、Campfire 和 Wearable Lanterns)

如果你仍然在某处收到错误信息,请尝试从 Steam 或直接运行一次默认的 Skyrim 启动器(通过主文件夹中的 SkyrimSELauncher.exe),然后再用 skse 和/或你的模组管理器启动。

最新发布版本将只会与 Steam 上发布的最新版本兼容,目前是 v1.6.1170。 除此之外的任何版本都不受支持,你将必须下载与你已安装版本匹配的较旧版 PapyrusUtil。

显然,如果你的游戏是 GoG 版本且版本为 1.6.1179,请安装 GoG 版本。

  1. 描述

  2. 需求

  3. 安装

  4. 卸载

  5. 更新

  6. 兼容性与问题

  7. 鸣谢

  8. 更新日志

  9. 描述

SKSE 插件,允许你通过 papyrus 脚本在任意 form 上或全局保存任意数量的 int、float、form 和 string 值。也支持这些数据类型的列表。任何模组都可以访问这些值,从而实现轻松的动态兼容。

PapyrusUtil.psc - 版本检查与变量初始化数组。

StorageUtil.psc - 在 form 上存储变量和数据列表,可使用该 form 和变量名作为键将其取回。文档见 psc 文件。

JsonUtil.psc - 与 StorageUtil.psc 类似,但将数据保存到自定义外部 .json 文件而不是 form 中,使其可以在游戏外自定义,并且独立于用户存档文件存储。

MiscUtil.psc - 一些杂项命令。

ActorUtil.psc - Actor 包覆写。

  1. 需求

SKSE SE/AE 2.2.6+ http://skse.silverlock.org/SKSE 插件的 Address Library: https://www.nexusmods.com/skyrimspecialedition/mods/32444

  1. 安装

使用模组管理器或手动解压文件。

  1. 卸载

移除你在安装步骤(step.9)中添加的文件。

  1. 更新

直接覆盖所有文件。

  1. 兼容性与问题

应该与所有内容兼容。

  1. 鸣谢

exiledviper - 继续维护并重构原插件的源代码

meh321 - 原版本、创意、Address Library 转换

SKSE 团队 - 使该插件成为可能

milzschnitte - 提供建议

eventHandler、Expired、aers、arha、ianpatt - SKSE64 转换与更新协助

  1. 更新日志

4.6 AE/SE - 01/18/2024

已更新以支持 SKSE64 AE/SE 2.2.6 和 Skyrim 1.6.1170

4.5 AE/SE - 12/05/2023

已更新以支持 SKSE64 AE/SE 2.2.4 和 Skyrim 1.6.1130

4.4 AE/SE - 01/7/2022

已更新以支持 SKSE AE build 2.2.2

向 StorageUtil 和 JsonUtil 添加了 ListRandom() 函数

一些错误修复

4.3 AE/SE - 01/7/2022

已更新以支持 SKSE AE build 2.1.5

4.2 AE/SE - 12/14/2021

已更新以支持 SKSE AE build 2.1.4

4.1 AE/SE - 11/23/2021

已更新以支持 SKSE AE build 2.1.3

已为 Address Library 更新

4.0 AE/SE - 11/19/2021

已更新以支持 SKSE AE build 2.1.2

向 PapyrusUtil.psc 添加了 RemoveDupe()、GetDiff() 和 GetMatching() 函数

修复了当关联插件卸载时 JsonUtil 返回错误 form 值的问题。

3.9 SE - 02/04/2020

修复了从 co-save 加载 FF 分配的 form 的问题

将日志文件位置改为 My Documents/My Games/Skyrim Special Edition/SKSE/PapyrusUtilDev.log

3.8 SE - 11/22/2019

已更新以支持 SKSE 2.0.17

修复了对来自 ESL 文件的 form 的处理

3.7b SE - 06/17/2019

已更新以支持 SKSE64 SE 2.0.16

3.7 SE - 03/19/2019

已更新以支持 SKSE 2.0.13-15

添加了 MiscUtil.FoldersInFolder()

3.6b SE - 09/10/2018

已更新以支持 SKSE64 SE 2.0.11

3.6 SE - 09/10/2018

已更新以支持 SKSE64 SE 2.0.9/2.0.10

3.5 SE - 09/10/2018

已更新以支持 SKSE64 SE 2.0.8

修复了 MiscUtil 的 Scan Cell 函数

3.4b SE - 04/05/2018

已更新以支持 SKSE64 SE 2.0.7

将脚本复制到 creationkit 路径 /source/scripts

3.4 SE - 01/05/2018

重新添加了 TFC 相关函数

重新添加了 ActorUtil 包覆写函数

修复了当 .esl 文件在加载顺序中处于活动状态时,form 有时会存储/返回错误值的问题

3.3c SE hotfix - 12/04/2017

已更新以支持 SKSE64 SE 2.0.6

3.3b SE hotfix - 11/12/2017

已更新以支持 SKSE64 SE 2.0.5

重新添加了 MiscUtil.SetMenus() 函数

3.3 SE- 10/21/2017

SKSE64 版本首次发布

3.3 - 09/15/2016

针对各种 CTD 和性能问题的多项修复

JsonUtil 新函数:

添加了任意路径函数,以允许自定义 JSON 格式

JsonInFolder(string folder) 用于获取给定文件夹中存在的 JSON 文件数组

MiscUtil 新函数:

ScanCellNPCsByFaction() 用于在单元格中搜索属于给定阵营的 actor

PapyrusUtil 新函数:

GetScriptVersion() 用于获取当前安装的脚本版本,该版本可能与 GetVersion() 的 DLL 值不同,具体取决于用户各式各样和/或糟糕的模组安装。

修复:

对 JsonUtil 文件处理和缺失值的一些修复

许多我此刻无法具体记起的其他修复

3.2 - 01/04/2016

  • 针对各种 CTD 和性能问题的多项修复
  • JsonUtil 新函数:
    Unload() - 从内存中卸载已被 JsonUtil 使用的文件,可选择先保存更改 IsPendingSave() - 检查给定的 Json 文件自上次加载/保存以来是否已被修改 IsGood() - 检查给定的 Json 文件当前是否已加载且没有错误 GetErrors() - 返回任何 Json 解析错误的格式化字符串(如果有) JsonInFolder() - 返回给定目录中所有 Json 文件的数组。
  • StorageUtil 新函数:
    CountObj<type>Prefix() - 统计特定对象上以 string 开头的键的数量 ClearObj<type>Prefix() - 移除特定对象上以 string 开头的键对应的任何值
  • MiscUtil 新函数:
    FilesInFolder() - 返回文件夹中包含的所有文件,或具有给定扩展名的文件的数组。 ScanCellActors() - 获取单元格中符合条件附近的 actor 数组。 ScanCellObjects() - 获取单元格中符合条件附近特定 form 类型的对象数组。 WriteToFile() - 在先前更新中移除后重新添加。 ReadFromFile() - 在先前更新中移除后重新添加。

3.1 - 09/01/2015

  • 修复了某些用户在读取存档时导致 CTD 的错误。
  • 向 StorageUtil 和 JsonUtil 添加了 Count<type>Prefix() - 统计以 string 开头的键的数量
  • 向 StorageUtil 添加了 Clear<type>Prefix() - 移除以 string 开头的键对应的任何值
  • 向 StorageUtil 添加了 Pluck<type>() - 获取一个值并返回它,然后将其从存储中移除。
  • 向 StorageUtil 添加了 Shift<type>List() - 获取列表的第一个值,然后将其从该列表中移除。
  • 向 StorageUtil 添加了 Pop<type>List() - 获取列表的最后一个值,然后将其从该列表中移除。

3.0 - 08/21/2015

  • 需要 SKSE 1.7.3
  • StorageUtil 和 JsonUtil 的 Int/Float/String/FormListToArray()
  • PapyrusUtil.psc 中的各种新实用函数和数组函数
  • 我记不清的各种其他新函数,主要与处理或返回数组相关
  • 修复了各种与崩溃相关的错误
  • 改进了许多函数的性能
  • 移除了 MiscUtil.WriteToFile()、ReadFromFile()、ExecuteBat() - 这些函数基本未被使用,存在安全风险,并且通过其他方式能更好地实现。

2.8 - 10/03/2014

  • 修复了导致 StringListRemove 执行与你期望完全相反操作的关键错误
  • 修复了某些用户在插件加载外部 json 文件进行读取时遇到的崩溃到桌面问题
  • 向 PapyrusUtil.psc 添加了 papyrus 数组初始化函数

2.7 - 09/09/2014

  • 重新添加了 package override 保存。
  • 向 StorageUtil 和 JsonUtil 添加了 AdjustInt/FloatValue() 和 Int/FloatListAdjust() 函数,这是用于将现有值调整 +/- 给定数量的快捷函数
  • 向 JsonUtil 添加了 ClearAll() 函数,用于清空外部 json 文件的内容。
  • 清理了各种原生函数,以更好地检查传入的参数是否合适,防止潜在崩溃。

2.6 - 08/11/2014

  • 修复了尝试加载不存在的外部文件时导致崩溃/冻结的错误。

2.5 - 08/08/2014

  • 需要 SKSE 1.7.1
  • 重写插件源代码
  • 添加了新的 JsonUtil 脚本
  • ListSlice() 函数,用于将列表复制到 Papyrus 数组中
  • ListCopy() 函数,用于将 Papyrus 数组复制到列表中
  • ListResize() 函数,用于更改列表长度
  • 各种其他错误修复和次要新函数