物品检查器

物品检查器

添加一个物品定位菜单,让玩家可以轻松搜索自己的物品。同时附带一些可能对游戏状态查询有用的功能。

此模组做了几件事。首先是一个游戏内物品定位器。按 O 键(可在 GMCM 中更改)会打开一个“定位物品”搜索框。在输入框中输入物品 ID 或物品的显示名称并按回车,它会告诉你物品的位置,前提是该物品存在于玩家的背包或箱子中。如果物品在箱子里,它还会在装有该物品的箱子上显示一个指示手指。




这个模组做的下一件事是,它添加了几个用于触发器动作的游戏状态查询。

用于检查玩家是否拥有特定物品(可以在背包或箱子里):

[code] "Condition": "ItemChecker.HasItemID <item ID> <true/false>"[/code]

将其添加到触发器动作中。将 <item ID> 替换为所需的物品 ID(不含 <>),并将 <true/false> 替换为 true 或 false(不含 <>)。



用于检查玩家是否在快捷栏中选中了特定物品:

[code] "Condition": "ItemChecker.IsItemSelected <item ID> <true/false>"[/code]

将 <item ID> 替换为所需的物品 ID(不含 <>),并将 <true/false> 替换为 true 或 false(不含 <>)。



用于检查玩家是否在快捷栏中选中了特定工具:

[code] "Condition": "ItemChecker.IsToolEquipped <item ID> <true/false>"[/code]

将 <item ID> 替换为所需的物品 ID(不含 <>),并将 <true/false> 替换为 true 或 false(不含 <>)。



要配合 Content Patcher 使用这些 GSQ,您需要以稍微不同的方式检查条件。
首先,您需要 [url=https://www.nexusmods.com/stardewvalley/mods/9296]Esca's Modding Plugins (EMP)[/url],并将其列为您模组的依赖项之一。
如何使用这些查询的示例:
[code]
"When": {
"Esca.EMP/GameStateQuery: ItemChecker.HasItemID 74 true": "true"
},[/code]

这将告诉 CP 仅在玩家拥有 ID 为 74(一个五彩碎片)的物品时执行该动作。反过来,如果您想检查相反的情况,可以将第一个 true 改为 false。



此模组还添加了一个可用的独特触发器动作:

[code]"Trigger": "ICM"[/code]

此触发器用于检查物品是否已从玩家的背包中添加或移除。