BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:上下文标签
← 目录
此页面解释上下文标签(context tags),它是附加于物品的任意的数据标签。上下文标签可以在游戏中产生各种不同效果,但也可能仅用于提供信息。
格式
上下文标签一般只能包含数字、字母、下划线、圆括号,例如category_gem
或code>item_apple。一般情况下,上下文标签是大小写不敏感的,但是自定义标签应当全小写,以保证安全性。
许多上下文标签是基于物品数据(例如品质)自动生成的,而其他标签则定义在Data/Objects等素材文件中。
上下文标签列表
这是原版游戏添加或使用的上下文标签列表,它并不完整。模组可以添加自定义上下文标签,此处不列出。
自动添加
如下标签会添加到所有物品:
上下文标签 | 效果 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
category_<category>
|
基于物品类别自动添加的标签。参见物品类别列表中'上下文标签'一列以获取可能的取值。 | ||||||||||||
fish_<metadata>
|
基于Data/Fish中的鱼类元数据自动添加的鱼类物品标签。
对于蟹笼鱼类(也就是类型为trap的鱼类):
对于钓竿鱼类(依旧是类型不是trap的鱼类):
| ||||||||||||
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 |
标记此鱼为传说鱼类或传说之鱼二代。仅用于提示;传说鱼类的行为实际上被CatchLimit和IsBossFish等数据字段决定,这些字段存储在Data/Locations。 |
geode | (自动添加)标记此物品为晶球,可以在铁匠铺或使用晶球破开器打开。若晶球字段出现在Data/Objects中,则自动添加此标签。 |
id_<item id>
|
(自动添加)限定性物品ID,像id_(o)128。可用于匹配或排除物品。ID中任何空格会被替换为下划线,而单引号会被删除。 |
is_machine | (自动添加)表示物品具有机器逻辑。根据Data/Machines自动添加。 |
machine_input | (自动添加)物品是否为接受玩家输入的机器。基于Data/Machines中的如下字段自动添加:
|
machine_output | (自动添加) 物品是否为产出玩家可收集物品的机器。基于Data/Machines中的如下字段自动添加:
|
其他
控制台命令 debug listtags 列出了当前手持物品的所有标签。
导出的原始标签
应用于数据素材
某些游戏数据也以通用方式引用上下文标签。例如,您可以向物品添加自定义标签,然后在鱼塘数据中引用它们。
例如:
游戏数据 | 效果 |
---|---|
鱼塘 | 存储在Data/FishPondData。用于匹配能够放进鱼塘的鱼(参见数据文件中的RequiredTags)。 |
特别任务 | 存储在Data/SpecialOrders。用于匹配满足任务目标的物品(参见数据文件中的AcceptedContextTags) |
裁缝 | 存储在Data/TailoringRecipes。用于匹配某配方需要的物品。 |
礼物喜好 | 存储在Data/NPCGiftTastes。用于使用上下文标签设置角色喜欢和不喜欢的物品。 |
针对C#模组
ItemContextTagManager类
对于C#模组,ItemContextTagManager类简化了上下文标签的使用,且减少了重复代码。
提供了一些工具方法:
方法 | 效果 |
---|---|
GetBaseContextTags(id)
|
基于物品在Data/Objects或Data/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。
|