BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:工具
← 物品
此页面解释了游戏如何存储和解析“工具”类型的物品数据。对于物品数据的概述,请参阅模组:物品数据。
概览
工具是可以被玩家挥舞或使用、发挥特定功效(挖土、砍树、挤奶、剪毛等)的物品。
工具的物品类型为 (T)
(在 C# 代码中,也写作 ItemRegistry.type_tool
),其数据存储在 Data/Tools,其贴图默认存储在 TileSheets/Tools,其代码存储在 StardewValley.Tool 及其子类,例如 StardewValley.Tools.Axe。
数据格式
数据素材 Data/Tools 包含一个“字符串 → 模型”查询,其中:
- 键为非限定性物品ID。
- 值为包含如下字段的数据模型。
工具基本数据
字段 | 含义 |
---|---|
ClassName | 在StardewValley.Tools 命名空间下,要创建的C#类的名称。此类必须为StardewValley.Tool的子类,且必须有无参数的构造函数。例如,将此字段的值设为Axe,游戏会自动创建一个StardewValley.Tools.Axe 实例。
主要的取值为:
|
Name | 工具物品的内部名称。 |
DisplayName Description |
用于显示游戏内名称和描述的模板字符串。 |
AttachmentSlots | (可选) 工具的附件槽位数量。注意只有FishingRod工具拥有渲染和使用附件槽位的代码。默认为-1,也就是保持工具物品类所设置的默认值。 |
SalePrice | (可选) 商店中玩家购入此物品的默认售价。默认为-1,此时需要在商店中手动设置售价。 |
CustomFields | 此条目的自定义字段。 |
外观
注意,如果希望在世界中正确绘制工具(即,在玩家使用它时)需要自定义代码。
字段 | 意图 |
---|---|
Texture | 贴图集的素材名称。 |
SpriteIndex | 工具在贴图集Texture中的贴图索引。0代表最上一行。 |
MenuSpriteIndex | (可选) Texture中的物品图标索引。默认为SpriteIndex。 |
升级
字段 | 含义 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
UpgradeLevel | (可选) 工具的升级等级。默认为-1,即保持与工具类所设的默认值相同。 | |||||||||||||||
ApplyUpgradeLevelToDisplayName | (可选) 是否根据等级调整DisplayName。例如,1级的斧头为“铜斧头”。默认为false。
英语下的显示名称为:
| |||||||||||||||
ConventionalUpgradeFrom | (可选) 若设置,则向 UpgradeFrom 字段的列表最前面添加一条升级要求。具体而言,使用如下规则:(基于 UpgradeLevel 字段,而非基于指定的工具ID的等级):
例如,铱斧头指定了如下值: "ConventionalUpgradeFrom": "(T)GoldAxe"
| |||||||||||||||
UpgradeFrom | (可选) 从克林特的铁匠铺升级工具所需要求。若指定多个条目,则使用第一个匹配的条目。
此字段为包含如下字段的数据模型所组成的列表。
例如,下列代码相当于钢斧头的升级设置: "UpgradeFrom": [
{
"RequireToolId": "(T)CopperAxe",
"Price": 5000,
"TradeItemId": "(O)335", // Iron Bar
"TradeItemAmount": 5
}
]
若希望工具总可用,则可忽略这些条件。例如: "UpgradeFrom": [
{
"Price": 5000
}
]
注意克林特需要几天时间来升级工具。若希望直接卖掉工具,则将其添加到常规商店。 |
游戏逻辑
字段 | 含义 |
---|---|
CanBeLostOnDeath | 玩家晕倒后是否丢失此物品。默认为false。 |
扩展性
字段 | 含义 |
---|---|
ModData | (可选) 工具被创建时所用的模组数据值,可通过tool.modData字典获取。例如:
"ModData": {
"PowerLevel": 9000
}
|
SetProperties | (可选) 设置工具C#类的任意属性。例如,下面示例会禁用工具动画,且禁止工具消耗体力:
"SetProperties": {
"InstantUse": true,
"IsEfficient": true
}
|
另请参阅
- 模组:物品数据提供了物品数据的概述性参考。