ModItem 类
用于创建自定义物品、武器、工具和配饰的基类。
概述
ModItem 类用于在 tModLoader 中定义自定义物品。通过继承此类,您可以创建武器、配饰、消耗品以及任何其他物品类型。请参阅我们的 物品创建教程 获取实际示例。
命名空间
Terraria.ModLoader
常用方法
SetDefaults()
设置物品属性,如伤害、大小、使用时间等。
public override void SetDefaults()
{
Item.damage = 50;
Item.width = 40;
Item.height = 40;
Item.useTime = 20;
}
AddRecipes()
为您的物品定义合成配方。
public override void AddRecipes()
{
Recipe recipe = CreateRecipe();
recipe.AddIngredient(ItemID.Wood, 10);
recipe.AddTile(TileID.WorkBenches);
recipe.Register();
}
高级物品示例
创建远程武器
public class ExampleBow : ModItem
{
public override void SetDefaults()
{
Item.damage = 30;
Item.DamageType = DamageClass.Ranged;
Item.width = 16;
Item.height = 32;
Item.useTime = 25;
Item.useAnimation = 25;
Item.useStyle = ItemUseStyleID.Shoot;
Item.noMelee = true; // Don't deal melee damage
Item.knockBack = 2;
Item.value = Item.sellPrice(silver: 30);
Item.rare = ItemRarityID.Green;
Item.UseSound = SoundID.Item5;
Item.autoReuse = true;
Item.shoot = ProjectileID.WoodenArrowFriendly;
Item.shootSpeed = 10f;
Item.useAmmo = AmmoID.Arrow; // Uses arrows as ammo
}
}
创建消耗品
public class ExamplePotion : ModItem
{
public override void SetDefaults()
{
Item.width = 20;
Item.height = 26;
Item.useStyle = ItemUseStyleID.DrinkLiquid;
Item.useAnimation = 15;
Item.useTime = 15;
Item.useTurn = true;
Item.UseSound = SoundID.Item3;
Item.maxStack = 30;
Item.consumable = true; // Item is consumed on use
Item.rare = ItemRarityID.Orange;
Item.value = Item.buyPrice(gold: 1);
Item.buffType = BuffID.Ironskin; // Grants buff
Item.buffTime = 5 * 60 * 60; // 5 minutes
}
}
创建配饰
public class ExampleAccessory : ModItem
{
public override void SetDefaults()
{
Item.width = 24;
Item.height = 24;
Item.value = Item.sellPrice(gold: 1);
Item.rare = ItemRarityID.Orange;
Item.accessory = true; // Mark as accessory
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
player.moveSpeed += 0.15f; // +15% movement speed
player.jumpSpeedBoost += 1.5f; // Better jumps
player.GetDamage(DamageClass.Generic) += 0.08f; // +8% all damage
}
}
完整属性参考
| 属性 | 类型 | 描述 | 示例 |
|---|---|---|---|
| damage | int | 基础伤害值 | 50 |
| useTime | int | 使用间隔帧数 | 20 |
| knockBack | float | 击退力度 | 6.5f |
| autoReuse | bool | 按住时自动挥舞 | true |
| maxStack | int | 最大堆叠数量 | 999 |
| consumable | bool | 使用后消耗 | true |