powerofthree's Tweaks 封面

powerofthree's Tweaks

上古卷轴5:天际特别版Bug修复

引擎错误修复与调整合集。SKSE 插件。

前置 Mod

详情

powerofthree's Tweaks

需求

SKSE64 2.0.20 (SE) 或 SKSE64 2.1.5+ (AE)

Visual C++ Redistributables 2022

Address Library for SKSE Plugins

描述

一系列其他插件未涵盖的错误修复与调整。

修复 是错误修复或其他游戏改进。

调整 是可选的玩法或沉浸感功能。

实验性 选项未经测试,可能会导致不可预见的副作用。只有你知道自己在做什么时才启用。

这些设置中的每一项都可以在 po3_Tweaks.ini(位于 Data/SKSE/Plugins)中配置。配置文件如果缺失会自动重新生成,未来的更新会将新设置追加到该文件中。

修复(默认:启用)

  • 远处引用加载崩溃
    修复由远处引用缺失 3D 导致的加载崩溃。这可能由 Windhelm Bridge Tweaks 之类的模组引起。
  • 地图标记放置
    当快速旅行被禁用时,允许在快速旅行目的地附近放置地图标记。
  • 启用“Can't Be Taken Book”标记
    恢复“Can't be taken”书籍标记功能。如果书籍记录中启用了此标记,书籍可以被阅读,但无法被放入物品栏。
  • 投射物射程修复
    调整移动时发射的投射物射程,以保持一致的存活时间。这是 LE 修复的可运行实现,可在此处找到。
  • CombatToNormal 对话修复
    修复 LostToNormal 对话代替 CombatToNormal 触发的错误,即战斗结束且 NPC 说“一定是被吓跑了”。
  • 加载时施放添加的法术
    修复加载时 NPC 身上添加的法术被驱散且不会重新施加的问题。
  • 加载时施放无死亡驱散法术
    带有无死亡驱散标记的法术会在加载时重新施加到死亡 NPC 身上。
  • IsFurnitureAnimType 修复
    修补 IsFurnitureAnimType 条件函数,使其可用于家具引用(此前,它仅对正在使用该家具的角色有效)。
  • 光源附加崩溃
    修复当光源(火把、魔光术、快速照明等)附加到未加载角色时发生的崩溃。
  • 召唤法术不可吸收
    为所有缺少 NoAbsorb 标记的召唤法术添加 NoAbsorb 标记。
  • EffectShader Z 缓冲修复
    修复 effectshader 的 Z 缓冲渲染,使粒子能够透过物体显示(用于非 detect-life 着色器)
  • ToggleCollision 修复
    修补 ToggleCollision 控制台命令,以便为选中的控制台引用切换对象碰撞
  • 蒙皮贴花删除
    当蒙皮贴花被标记为移除时立即删除它们(即移除带血的护甲)
  • 跳跃加成修复
    每点 JumpingBonus 角色值使跳跃高度乘以 1%
  • 切换全局 AI 修复
    TAI 控制台命令/Debug.ToggleAI() 函数会禁用/启用所有已加载 NPC 的 AI
  • 战斗中使用家具
    在战斗中使用家具,并防止被攻击时被迫离开家具。默认仅玩家0 - 关闭,1 - 仅玩家,2 - 玩家和 NPC
  • 攻击性法术 AI
    在 NPC 装备攻击性法术之前检查法术条件有效性(法师不会一直对非亡灵施放太阳法术)
  • 呼吸音效
    修复生物呼吸音效在切换单元格后持续存在的问题
  • 第一人称 SetAlpha 修复
    修复 SetAlpha 函数导致第一人称下手部隐形的问题
  • 武器穿戴限制
    为武器启用附魔“穿戴限制”功能
  • 验证截图位置
    验证游戏截图位置。如果 sScreenshotBaseName ini 设置为空或文件夹路径不存在,则默认为 Skyrim 根目录
  • MagicItemFindKeywordFunctor 崩溃修复
    修复当尝试在缺少魔法效果的效果上查找关键字时发生的游戏函数崩溃
  • 左手武器附魔节点修复
    修复安装 XPMSE/HDT-SMP 时,左手武器附魔使用原版节点的问题
  • 加载 EditorID
    为被跳过的表单加载 editorID。现在可以在控制台命令中使用 EditorID(player.placeatme dlc1serana)。

调整(默认:禁用)

  • 阵营偷窃
    物品会被标记为偷窃,直到玩家与阵营所有成员友好。这试图修复此处描述的原版机制。
  • 声音调制(默认:1.0)
    对佩戴遮脸头盔的 NPC 应用声音失真效果。值为 1.0 时没有效果;音高与值成正比。
    推荐设置(0.85-0.90),低于此值会导致音频与字幕和口型不同步。
  • 游戏时间影响声音
    根据时间倍率缩放音高,例如,慢速时间会使所有声音音高变低。
  • 动态雪材质
    为所有具有方向性雪/雪纹理集的对象应用雪材质,例如,Footprints 模组将能在积雪的木板和道路上生效。
  • 悬停时禁用水面波纹
    悬浮的 NPC 和玩家(吸血鬼大君、龙祭司、幽魂之母、Netch 等)在水面上悬停时不会触发水面波纹。
  • 截图通知输出到控制台
    将截图通知显示为控制台消息。
  • 无攻击消息(默认:0)
    禁用暴击/潜行通知。
  • 坐下等待
    玩家只能坐下时等待。
  • 禁用上帝模式(默认:0)
    禁用上帝/不朽模式。
  • 抓取即偷窃
    抓取有主物品算作偷窃。
  • 加载门激活提示(默认:0)
    用“进入”和“离开”替换加载门的激活提示。
    1 - 替换提示(打开微风之家 -> 进入微风之家)
    2 - 从室内移动到室外时替换提示和单元格名称(打开天际 -> 离开沉睡巨人客栈)
  • 无毒药提示(默认:0)
    禁用毒药确认消息。0 - 关闭,1 - 禁用确认,2 - 将其他消息显示为通知(可能与物品栏菜单重叠),3 - 两者
  • 潜行重击无声
    防止玩家在潜行时进行重击期间喊叫

实验性(默认:禁用)

  • 快速 GetRandomInt()
    通过将 Utility.GetRandomInt 函数调用与帧率解耦来加速它。
  • 快速 GetRandomFloat()
    通过将 Utility.GetRandomFloat 函数调用与帧率解耦来加速它。
  • 清理孤立的 ActiveEffects
    从曾拥有能力特长但已失去它们的 NPC 身上移除孤立的活动效果(例如,SPID 本次运行未将特长分配给 NPC)
  • 更新 GameHour 计时器
    使用 GameHour.SetValue Papyrus 函数推进时间时更新游戏计时器(例如药水持续时间)
  • 堆栈转储超时修改器
    Papyrus 开始转储脚本堆栈前等待多少秒(原版:30 秒)。将其设置为 0 将禁用超时(警告:如果 Skyrim 无法转储堆栈,这可能导致锁定状态)。

致 SKSE 插件开发者

TESForm GetFormEditorID 虚函数未改变,并且对于通常会丢弃 editorID 的表单,仍返回空字符串。

这是因为该函数在多个地方被调用,而这些地方可能会有缓冲区溢出风险(例如,为 ArmorAddon ninodes 命名时)。

powerofthree's Tweaks 提供了一种替代方法来获取表单的 editorID,即使用导出的函数 “GetFormEditorID”。

std::string GetFormEditorID(const RE::TESForm* a_form)
{
static auto tweaks = GetModuleHandle(L"po3_Tweaks");
static auto func = reinterpret_cast<_GetFormEditorID>(GetProcAddress(tweaks, "GetFormEditorID"));
if (func) {
return func(a_form->formID);
}
return "";
}

如何在你的插件中使用它的示例

鸣谢

  • Ryan (SniffleMan) 为 CommonLibSSE 所做的工作
  • KernalsEgg 提供了有用的建议
  • alandtse 对本模组做出了贡献