You are viewing a potentially older version of this package. View all versions.
HawChow-DropItemEverywhere-1.0.7 icon

DropItemEverywhere

把手上的资源包、消耗品、钥匙卡或神器核心塞回容器空槽,或放到任何可接触表面。表面放置默认关闭,可在配置里开启;全部配置支持热重载。反馈:qingju.me

Date uploaded a week ago
Version 1.0.7
Download link HawChow-DropItemEverywhere-1.0.7.zip
Downloads 162
Dependency string HawChow-DropItemEverywhere-1.0.7

This mod requires the following mods to function

BepInEx-BepInExPack_GTFO-3.2.3 icon
BepInEx-BepInExPack_GTFO

BepInEx pack for GTFO. Preconfigured and includes Unity Base DLLs.

Preferred version: 3.2.3

README

DropItemEverywhere

把你手上正在携带的资源物品(资源包、消耗品、钥匙卡、神器核心)放回或放到地上。共两个动作:

  • 塞回已经打开的储物柜 / 箱子的空槽位
  • 放到你视线所及的任意可接触表面

反馈与支持:qingju.me

两个动作都复用游戏自身的交互反馈:原版交互提示条 + 进度读条,另外叠加一个半透明的物品虚影,明确指出它会落在哪里。

预览

DropItemEverywhere 游戏内预览

操作

  • 容器回存 —— 按住 E(默认是游戏的交互/使用键,可在配置里改)0.4 秒,同时准星对着已打开储物柜/箱子的兼容空槽位。只要有效槽位在范围内,提示与虚影就会出现;按住时读条逐渐填满。
  • 表面放置 —— 按住 G(可配置)0.25 秒,同时看着一个够得到的表面。按住期间虚影会预览落点。

表面放置默认关闭(需自行开启)。 安装后直接进游戏时,放置键完全不起作用——没有提示、没有虚影、也不会放下任何东西。要启用它:打开 BepInEx/config/HawChow.DropItemEverywhere.cfg,找到 [Placement] 段,把 EnableSurfacePlacement 改成 true 并保存即可生效(本版本起支持热重载,无需重启游戏)。容器回存(E)开箱即用。

表面放置故意不与交互/使用键共用。手上拿着资源包时,那个键同时也是「给自己 / 给队友打包」,共用会把放置输入吞掉、把包丢在自己脚边。拾取物品、开关储物柜、给自己和队友打包全部保持原版按键,不受影响。

当范围内存在已打开容器的兼容空槽位、而你正携带着可存放的物品时,本模组只接管这一处交互:那一瞬间跳过原版世界交互更新与资源包自身的施放动作,于是 E 执行的是存入而不是自我施放。准星瞄向别处时,原版行为与未安装时完全一致。

单帧的按键抖动不会重置一次长按——只有持续松开超过四分之一秒才会取消,所以读条总能平滑填满。

放置时会先找一个法线朝向你的表面,然后沿该法线把落点往外抬,直到所携物品的自身包围盒不再与任何世界几何体重叠。这样无论准星打在储物柜/箱子的哪个面上,物品都不会生成在它内部。物品会保留剩余弹药与自定义数据。

可放入容器的物品是资源包、消耗品、钥匙卡与神器核心;只有匹配的空槽位会接受回存。

配置

配置文件:BepInEx/config/HawChow.DropItemEverywhere.cfg

本版本起全部 12 个配置项均支持热重载:改完保存即可生效,不必重启游戏。生效值会以 [DIAG] config reloaded: 写进日志;如果填了非法值,模组会保留上一次的有效值并在日志里告警。

配置项 默认值 含义
Keys/ContainerKey E 按住以把物品存入容器槽位的按键
Keys/PlaceKey G 按住以把物品放到表面的按键
Interaction/ContainerHoldSeconds 0.4 容器回存需要按住的时间;0 表示按下立即存入
Interaction/PlaceHoldSeconds 0.25 表面放置需要按住的时间
Interaction/ContainerReachMeters 2.0 可以瞄到容器槽位的最远距离
Placement/SurfaceReachMeters 3.0 表面放置的射线长度
Placement/SurfaceOffsetMeters 0.1 沿命中法线的最小抬升距离
Placement/ClearanceSearchMeters 1.0 为避免与几何体穿插,沿法线最多外推的距离
Placement/EnableSurfacePlacement false 默认关闭。 改成 true 才会启用表面放置
Feedback/ShowProgressBar true 显示原版交互提示与读条
Feedback/ShowGhostPreview true 显示目标位置处的半透明虚影
Diagnostics/VerboseLogging true 向 BepInEx 日志输出 [DIAG] 诊断行,一切正常后可关掉

按键名支持字母、数字、F1–F12、SPACE、TAB、ENTER、ESC、方向键、LEFTSHIFT、LEFTCTRL、LEFTALT 以及 MOUSE0–MOUSE2。

依赖

  • BepInEx-BepInExPack_GTFO 3.2.3

不需要任何其他模组。

反馈

https://qingju.me

灵感来源

容器回存的行为参考了 DropItemPlus by Hikaria 与 DropItemFixed by Dinorush,表面放置的射线行为参考了 SentryGunEverywhere by Localia。本模组是独立实现与独立发布的包。

CHANGELOG

更新日志

1.0.7

  • 修复交互提示与读条残留:放置或存入完成后,屏幕下方「放下XXX / 按住「G」」那一条有时会一直挂在屏幕上,直到你再瞄别的可交互物或放下东西才消失。原因是游戏写入共享提示时会用富文本标签包裹文本(实测形如 <color=#B2A151>放下驱雾器</color>),而旧版以「回读文本必须完全相等」作为清理凭证,于是每次都判定「这不是我写的」而静默放弃清理,并且只尝试一次。
  • 交互提示的生命周期改为按帧驱动的兜底清理:每帧结束前若本模组仍持有提示且该帧没有重新写入,就再清理一次;任何分支、任何异常之后都会执行。清理不再依赖某一个动作分支恰好调用一次。
  • 文本比较前先做富文本归一化:去掉 <color>、<b>、<size> 等标签后再比对,因此带颜色包裹的本模组文案也能被正确识别并清理;游戏或其他模组写入的不同文案仍然一律不动。
  • 所有权凭证收紧为「写成功之后才计入本帧写入」,写入中途抛异常不会连带清掉同一帧上别人写的提示。
  • 清理重试预算改为每帧最多记一次,告警文案(8 帧)与实际口径一致。
  • 表面放置:成功后进入「等待松键」状态,不再重复上膛、不再刷取消日志,松键时显式清理一次并复位。
  • 容器存入:完成后继续按住不再每帧重复输出「E hold cancelled」。
  • 日志修正:原先「G disabled: surface placement is off」会把「手里的物品已经放下」误报成「配置关闭」,现在两种原因分开记录。
  • 全部 12 个配置项支持热重载:修改 BepInEx/config/HawChow.DropItemEverywhere.cfg 并保存后无需重启游戏,生效值会写入 [DIAG] config reloaded:;填写非法值时保留上一次的有效值并在日志中告警。
  • 配置项名称、默认值、依赖关系与放置默认关闭策略均未改变。

1.0.6

  • 修复交互提示残留:把资源包或消耗品拾取到空槽位后,原版提示与其读条可能一直留在屏幕上。存入动作改为只按「按下按键那一刻」的状态判定,按键已按住期间捡到物品不会再让同一次按压变成容器存入(该路径会跳过原版交互更新,从而把提示留在原地)。
  • 取消原版选中项改为调用游戏自身的取消接口,而不是直接清空字段;该调用抛出异常时让原版更新照常执行,而不是被跳过。
  • 共享提示改用「本构建写入的确切文本」作为所有权凭证,并在仍持有所有权期间重试;游戏或其他模组写入的提示一律不动。
  • 存入后冷却期内再次按存入键,仍然压制原版资源包施放路径,使失败重试窗口的表现与之前一致。
  • 未改动配置项、依赖、默认按键与放置默认值。

1.0.5

  • 重新发布,提交时未勾选「包含 NSFW 内容」。本模组不含任何 NSFW 内容,因此不应需要开启过滤器才能被搜索到。内容、配置与玩法均无变化。

1.0.4

  • 重新发布,使包不再被标记为 NSFW。内容与玩法无变化:上一次上传误勾了「包含 NSFW 内容」,导致关闭过滤器时搜不到本包。

1.0.3

  • 对齐 DropItemFixed 更新日志中列出的修复。
  • 存放不再抢占交互/使用键:仅仅瞄着容器槽位时,原版交互(拾取、开关容器、给自己 / 队友打包)保持可用。只有真正按住存放键且槽位有效时才会接管提示与读条(对应 DropItemFixed 0.1.7 / 0.1.8)。
  • 存放接管时清除过期的世界交互选中项,按键不会再作用于一瞬间之前选中的目标。
  • 关卡回溯后重建容器记账,槽位占用判定忽略物品已不存在的条目,回溯过的物品不会再被标记为「占用中」或渲染在错误位置——即「幽灵资源包」症状(对应 0.1.5)。
  • 复用容器指针前先校验,指针被回收后不会让容器失去可用槽位(对应 0.1.6 一类重复 / 失效键错误)。
  • 每帧动作循环加了保护:某一帧出错只记录一次,而不是从 Update 抛出并跳过另一个动作。
  • 未移植上游的剔除桶刷新:当前构建里 ItemCuller 位于 Modules-ASM.dll 且命名空间不同,该段代码无法编译,其余部分已对齐。

1.0.2

  • 加入本更新日志,使包页面能按版本显示说明。
  • 相对 1.0.1 无玩法或配置改动。

1.0.1

  • 表面放置(放置键,默认 G)改为默认关闭。关闭时该键完全不做任何事——不探测表面、不显示提示、不显示虚影、也不会放置。要启用:打开 BepInEx/config/HawChow.DropItemEverywhere.cfg,在 [Placement] 段把 EnableSurfacePlacement 改成 true 后重启游戏。
  • 容器回存(E)与其按住时间未改动,开箱即用。

1.0.0

  • GTFO 首个发布版本。为手上携带的资源物品(资源包、消耗品、钥匙卡、神器核心)提供两个动作:
    • 塞回已打开储物柜 / 箱子的空槽位;
    • 放到你视线所及的任意可接触表面。
  • 两个动作都复用游戏自身的按住反馈:原版交互提示与其读条,另加一个半透明物品虚影指出落点。
  • 表面放置不与交互/使用键共用,避免与「给自己 / 队友打包」冲突。
  • 唯一依赖:BepInEx-BepInExPack_GTFO 3.2.3。反馈:https://qingju.me