Crear Objetos
Aprende a crear objetos, armas y accesorios personalizados usando la API de ModItem. Asegúrate de haber completado la configuración del entorno de desarrollo primero.
Ejemplo Básico de Objeto
Aquí tienes un ejemplo simple de cómo crear una espada personalizada:
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace YourModName.Items
{
public class ExampleSword : ModItem
{
public override void SetDefaults()
{
Item.damage = 50;
Item.DamageType = DamageClass.Melee;
Item.width = 40;
Item.height = 40;
Item.useTime = 20;
Item.useAnimation = 20;
Item.useStyle = ItemUseStyleID.Swing;
Item.knockBack = 6;
Item.value = 10000;
Item.rare = ItemRarityID.Blue;
}
public override void AddRecipes()
{
Recipe recipe = CreateRecipe();
recipe.AddIngredient(ItemID.DirtBlock, 10);
recipe.AddTile(TileID.WorkBenches);
recipe.Register();
}
}
}
Propiedades de Objetos Explicadas
Referencia completa de todas las propiedades comunes de objetos:
damage
Valor de daño base antes de modificadores
Item.damage = 50;
DamageType
Cuerpo a cuerpo, A distancia, Magia, Invocación, Lanzamiento
Item.DamageType = DamageClass.Melee;
useTime
Frames entre usos (menor = más rápido)
Item.useTime = 20;
useAnimation
Duración de animación (usualmente = useTime)
Item.useAnimation = 20;
rare
Nivel de rareza (-1 a 11, afecta el color)
Item.rare = ItemRarityID.Blue;
knockBack
Fuerza de retroceso (0-20 típico)
Item.knockBack = 6;
width / height
Tamaño de hitbox en píxeles
Item.width = 40; Item.height = 40;
value
Valor de venta en cobre (100 = 1 plata)
Item.value = Item.sellPrice(gold: 1);
Más Ejemplos de Objetos
Crear un Arma a Distancia
public class ExampleGun : ModItem
{
public override void SetDefaults()
{
Item.damage = 25;
Item.DamageType = DamageClass.Ranged;
Item.width = 44;
Item.height = 24;
Item.useTime = 10;
Item.useAnimation = 10;
Item.useStyle = ItemUseStyleID.Shoot;
Item.noMelee = true; // Important for guns
Item.knockBack = 2;
Item.value = Item.sellPrice(silver: 50);
Item.rare = ItemRarityID.Green;
Item.UseSound = SoundID.Item11;
Item.autoReuse = true;
Item.shoot = ProjectileID.Bullet;
Item.shootSpeed = 16f;
Item.useAmmo = AmmoID.Bullet;
}
}
Crear un Accesorio
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; // Makes it an accessory
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
player.moveSpeed += 0.1f; // +10% movement speed
player.maxRunSpeed += 1f;
player.GetDamage(DamageClass.Generic) += 0.05f; // +5% all damage
}
}