إنشاء العناصر

تعلم كيفية إنشاء عناصر وأسلحة وإكسسوارات مخصصة باستخدام واجهة ModItem API. تأكد من إكمال إعداد بيئة التطوير أولاً.

مثال أساسي للعنصر

إليك مثال بسيط لإنشاء سيف مخصص:

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();
        }
    }
}

شرح خصائص العناصر

مرجع كامل لجميع خصائص العناصر الشائعة:

damage

قيمة الضرر الأساسية قبل المُعدِّلات

Item.damage = 50;

DamageType

قتال قريب، بعيد المدى، سحر، استدعاء، رمي

Item.DamageType = DamageClass.Melee;

useTime

الإطارات بين الاستخدامات (أقل = أسرع)

Item.useTime = 20;

useAnimation

مدة الرسوم المتحركة (عادة = useTime)

Item.useAnimation = 20;

rare

مستوى الندرة (-1 إلى 11، يؤثر على اللون)

Item.rare = ItemRarityID.Blue;

knockBack

قوة الارتداد (0-20 عادي)

Item.knockBack = 6;

width / height

حجم صندوق التصادم بالبكسل

Item.width = 40; Item.height = 40;

value

قيمة البيع بالنحاس (100 = 1 فضة)

Item.value = Item.sellPrice(gold: 1);

المزيد من أمثلة العناصر

إنشاء سلاح بعيد المدى

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;
    }
}

إنشاء إكسسوار

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
    }
}

الخطوات التالية