维护提醒

BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。

全站通知:

模组:上下文标签

来自星露谷物语维基
跳到导航 跳到搜索

目录

此页面解释上下文标签(context tags),它是附加于物品的任意的数据标签。上下文标签可以在游戏中产生各种不同效果,但也可能仅用于提供信息。

格式

上下文标签一般只能包含数字、字母、下划线、圆括号,例如category_gem或code>item_apple。一般情况下,上下文标签是大小写不敏感的,但是自定义标签应当全小写,以保证安全性。

许多上下文标签是基于物品数据(例如品质)自动生成的,而其他标签则定义在Data/Objects等素材文件中。

上下文标签列表

这是原版游戏添加或使用的上下文标签列表,它并不完整。模组可以添加自定义上下文标签,此处不列出。

自动添加

如下标签会添加到所有物品:

上下文标签 效果
category_<category> 基于物品类别自动添加的标签。参见物品类别列表中'上下文标签'一列以获取可能的取值。
fish_<metadata> 基于Data/Fish中的鱼类元数据自动添加的鱼类物品标签。

对于蟹笼鱼类(也就是类型为trap的鱼类):

上下文标签 说明
fish_trap_location_<water type> 基于字段2('darting randomness')。例如, fish_trap_location_ocean

对于钓竿鱼类(依旧是类型不是trap的鱼类):

上下文标签 说明
fish_difficulty_<difficulty> 基于字段1 ('chance to dart'),其中<difficulty>easy (0–33), medium (34–66), hard (67–100), 或extremely_hard (101+)其中之一。 例如,fish_difficulty_hard.
fish_motion_<motion> 基于字段4 ('location') 。例如fish_motion_floater
fish_favor_weather_<weather> 基于字段7 ('weather') 。例如fish_favor_weather_sunny
id_<type>_<identifier> 自动添加。作为ID的另一版本。其中<type>为下列之一:B (靴子), BBL (大型打造品配方), BL (物品配方), BO (大型打造品), C (衣服), F (家具), H (帽子), O (物体), R (戒指), W (近战武器),否则为空。<identifier>是物品的贴图集索引。例如河豚的值为id_o_128 (物体#128)。
item_<name> 基于物品名称自动添加。名称为全小写且不含空格和单引号,其中空格使用下划线替代。例如 《1000年后》('1000 Years From Now')具有上下文标签item_1000_years_from_now

“物体”类型的物品自动添加:

上下文标签 效果
item_type_<type> 根据 Data/Objects 中的 Type 字段自动添加。此标签会在某些地方被检查(例如博物馆检查此标签以判定物品是否为古物或矿物)。
jelly_item
juice_item
pickle_item
wine_item
适用于小桶罐头瓶的产品。为被加工物品的类型。
preserve_sheet_index_<id> 适用于小桶罐头瓶产出的物品。为被加工物品的贴图集索引。例如,蓝莓果酒的上下文标签为preserve_sheet_index_258,其中258是蓝莓的贴图集ID。
quality_none
quality_silver
quality_gold
quality_iridium
基于物品品质自动添加。
quality_qi 齐先生的菜肴特别任务期间自动添加。

颜色

上下文标签 color_* 会在许多游戏功能中被用到,例如艾米丽的家中的染料罐、特定机器产出品着色(如果酒腌菜)、读书动画等。 因为此标签用于着色,所以每个标签都有一个特定的RGB值,除了艾米丽的染料罐;染料罐有如下的上下文标签组织形式:

染料罐 上下文标签
红色 color_red, color_salmon, color_dark_red, color_pink
橙色 color_orange, color_dark_orange, color_dark_brown, color_brown, color_copper
黄色 color_yellow, color_dark_yellow, color_gold, color_sand
绿色 color_green, color_dark_green, color_lime, color_yellow_green, color_jade, color_sea_green
蓝色 color_blue, color_dark_blue, color_dark_cyan, color_light_cyan, color_cyan, color_aquamarine
紫色 color_purple, color_dark_purple, color_dark_pink, color_pale_violet_red, color_poppyseed, color_iridium
无彩色 color_black, color_gray, color_dark_gray, color_white, color_iron, color_prismatic

物品行为

上下文标签 效果
campfire_item 将物品标记为篝火。若物品还具有torch_item上下文标签,则其被放置且开启后产生如下效果:
  • 篝火的火焰会在其上绘制
  • 若为大型打造品,光线会从其中心而非顶部发出。
crow_scare 此物品是否为稻草人
crow_scare_radius_<radius> 如果此物品是稻草人,此标签指定其覆盖的圆形区域半径。若稻草人未指定此标签,且其内部名称包含 Deluxe,则默认为 17 ;若不包含,则默认为 9 。
museum_donatable
not_museum_donatable
设置此物品可否捐给博物馆,以重写原版逻辑。
not_giftable 禁止玩家将此物品作为礼物赠送给村民。村民会完全忽略此物品(就像你拿的工具一样)。

此标签仅影响礼物赠予,并不影响诸如任务目标或特别请求目标的游戏逻辑。若该村民有此物品的reject_*对话,则该对话有更高优先级。

not_placeable
placeable
设置物品是否可以放在地上。
prevent_loss_on_death 表示此物品在玩家晕倒时不会丢失
sign_item 标记此物品为标牌,允许玩家于其上显示物品,或将其置于鱼塘上以显示鱼数。
torch_item 标记此物品为火把,允许玩家打开/关闭它来发光。另请参阅campfire_item

机器加工

上下文标签 效果
crystalarium_banned 应用于宝石或矿物,禁止玩家使用宝石复制机复制它。
fish_pond_ignore 禁止玩家将此鱼放入鱼塘,即使在 Data/FishPondData 有相关定义。
geode_crusher_ignored 禁止玩家使用晶球破开器打开此物品,即使在Data/Objects有相关的晶球字段。
keg_juice
keg_wine
允许使用小桶将此物品加工为果汁或果酒。
preserves_jelly
preserves_pickle
允许使用罐头瓶将此物品加工为果酱或腌菜。
seedmaker_banned 用于种子物品,禁止玩家将其放入种子生产器
tapper_item 标记此物品为树液采集器重型树液采集器
tapper_multiplier_<multiplier> 影响树液采集器产出速率的乘数。例如,2会使得物品产出时间缩短到原先的一半(即每个物品都会在base time/speed multiplier时间内完成)。若省略,默认为1。

提示性

这类标签对游戏逻辑无影响,仅用于提供物品信息。

上下文标签 效果
fish_legendary
fish_legendary_family
标记此鱼为传说鱼类传说之鱼二代。仅用于提示;传说鱼类的行为实际上被CatchLimitIsBossFish等数据字段决定,这些字段存储在Data/Locations
geode (自动添加)标记此物品为晶球,可以在铁匠铺或使用晶球破开器打开。若晶球字段出现在Data/Objects中,则自动添加此标签。
id_<item id> (自动添加)限定性物品ID,像id_(o)128。可用于匹配或排除物品。ID中任何空格会被替换为下划线,而单引号会被删除。
is_machine (自动添加)表示物品具有机器逻辑。根据Data/Machines自动添加。
machine_input (自动添加)物品是否为接受玩家输入的机器。基于Data/Machines中的如下字段自动添加:
  • HasInput为true;
  • 或者当任何输出规则有ItemPlacedInMachine触发器。
machine_output (自动添加) 物品是否为产出玩家可收集物品的机器。基于Data/Machines中的如下字段自动添加:
  • HasOutput为true;
  • 或者有任何输出规则。

其他

控制台命令 debug listtags 列出了当前手持物品的所有标签。

应用于数据素材

某些游戏数据也以通用方式引用上下文标签。例如,您可以向物品添加自定义标签,然后在鱼塘数据中引用它们。

例如:

游戏数据 效果
鱼塘 存储在Data/FishPondData。用于匹配能够放进鱼塘的鱼(参见数据文件中的RequiredTags)。
特别任务 存储在Data/SpecialOrders。用于匹配满足任务目标的物品(参见数据文件中的AcceptedContextTags
裁缝 存储在Data/TailoringRecipes。用于匹配某配方需要的物品。
礼物喜好 存储在Data/NPCGiftTastes。用于使用上下文标签设置角色喜欢和不喜欢的物品。

针对C#模组

ItemContextTagManager类

对于C#模组,ItemContextTagManager类简化了上下文标签的使用,且减少了重复代码。

提供了一些工具方法:

方法 效果
GetBaseContextTags(id) 基于物品在Data/ObjectsData/BigCraftables中的原始数据获取其基本上下文标签。其中不包括基于实例类型添加的动态标签(如品质),后者可以使用item.GetContextTags()获取。
DoesTagQueryMatch(query, tags) 判断上下文标签查询是否匹配给定标签。例如,ItemContextTagManager.DoesTagQueryMatch("bone_item, !fossil_item", item.GetContextTags())在物品为骨头物品但不是化石才返回true(例如骨笛)。
DoAllTagsMatch(requiredTags, actualTags)
DoAnyTagsMatch(requiredTags, actualTags)
判断是否每个(DoAllTagsMatch)或至少一个(DoAnyTagsMatch) 给出的标签能匹配实际的标签。此方法亦支持反向匹配,例如"!fossil_item"
DoesTagMatch(requiredTag, actualTags) 判断给出的单个标签是否匹配实际的标签。此方法亦支持反向匹配,例如"!fossil_item"
SanitizeContextTag(tag) (专用)替换物品名称中可能出现的标点,使其可用于上下文标签。例如,SanitizeContextTag("Sam's Boombox")返回sams_boombox