Member 13871461 Ответов: 2

Как исправить эту ошибку, созданную из мода для terraria


Здравствуйте, у меня есть проблема, и так как я новичок, я почти ничего не знаю об этой теме, я пытаюсь сделать мод для Terraria 1.3.5, вот скрипты:

using Terraria;
using Terraria.ID;
using Terraria.ModLoader;

namespace op_weapons.Items
{
    public class TrueHell : ModItem
    {
        public override void SetDefaults()
        {
            Item.name = "Omega Eye";
            Item.maxStack = 999;
            Item.Width = 40;
            Item.height = 40;
            Item.value = 1230000;
            Addtooltip("The legendary item");
        }

        public override void AddRecipe()
        {
            ModRecipe recipe = new ModRecipe(mod);
            recipe.AddIngredient(ItemID.GrayBrick);
            recipe.SetResult(this, 2);
            recipe.AddRecepie();
        }
    }
}


новая ошибка такова:

c:\Users\chedl\Documents\My игры\в Terraria\ModLoader\мод источники\ОП\оружия\элементов TrueHell.КС(12,18) : ошибка CS0117: 'террариумов.Item' не содержит определения для 'name'

c:\Users\chedl\Documents\My Games\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(13,13) : ошибка CS0120: ссылка на объект требуется для нестатического поля, метода или свойства 'Terraria.Item.maxStack'

c:\Users\chedl\Documents\My игры\в Terraria\ModLoader\мод источники\ОП\оружия\элементов TrueHell.КС(14,18) : ошибка CS0117: 'террариумов.Item' не содержит определения для 'Width'

c:\Users\chedl\Documents\My Games\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(15,13) : ошибка CS0120: ссылка на объект требуется для нестатического поля, метода или свойства 'Terraria.Сущность.высота'

c:\Users\chedl\Documents\My Games\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(16,13) : ошибка CS0120: ссылка на объект требуется для нестатического поля, метода или свойства 'Terraria.Item.value'

c:\Users\chedl\Documents\My Games\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(17,13) : ошибка CS0103: имя 'Addtooltip' не существует в текущем контексте

c:\Users\chedl\Documents\My игры\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(23,20) : ошибка CS1061: 'op_weapons.Предметы.ModRecipe' не содержит определения для 'AddIngredient' и никакого метода расширения 'AddIngredient', принимающего первый аргумент типа 'op_weapons.Предметы.ModRecipe' может быть найден (пропущена директива using или ссылка на сборку?)

c:\Users\chedl\Documents\My игры\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(24,20) : ошибка CS1061: 'op_weapons.Предметы.ModRecipe' не содержит определения для 'SetResult' и никакого метода расширения 'SetResult', принимающего первый аргумент типа 'op_weapons.Предметы.ModRecipe' может быть найден (пропущена директива using или ссылка на сборку?)

c:\Users\chedl\Documents\My Games\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(25,13) : ошибка CS0201: в качестве оператора можно использовать только выражения присваивания, вызова, инкремента, декремента, ожидания и новых объектов

c:\Users\chedl\Documents\My игры\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(25,20) : ошибка CS1061: 'op_weapons.Предметы.ModRecipe' не содержит определения для 'AddRecipe' и никакого метода расширения 'AddRecipe', принимающего первый аргумент типа 'op_weapons.Предметы.ModRecipe' может быть найден (пропущена директива using или ссылка на сборку?)

Что я уже пробовал:

Я пробовал изменить название, изменить рецепт, изменить текстуру, изменить название мода, я смотрел несколько видео о том, как это исправить, но ни одно из них не сработало.

2 Ответов

Рейтинг:
2

Member 14898872

1 решение ошибки:

public override void SetStaticDefaults()
		{
			DisplayName.SetDefault("Rotating Stick");
			Tooltip.SetDefault("Spinning go brrr");
		}


пример:

using System;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
 
namespace LatormRage.Items.LatormMatter 
{
    public class Item_a : ModItem
    {
		public override void SetStaticDefaults()
		{
			DisplayName.SetDefault("Rotating Stick");
			Tooltip.SetDefault("Spinning go brrr");
		}
         public override void SetDefaults()
        {
            item.damage = 10;
            item.melee = true;
            item.width = 138;
            item.height = 140;
            item.useTime = 10; 
            item.useAnimation = 10;
            item.channel = true;
            item.useStyle = 100;
            item.knockBack = 3; 
            item.value = Item.sellPrice(0, 5, 0, 0);
            item.rare = 3;                   
            item.shoot = mod.ProjectileType("Projectile4"); 
            item.noUseGraphic = true;
        }
        public override bool UseItemFrame(Player player)
        {
            player.bodyFrame.Y = 3 * player.bodyFrame.Height;
            return true;
        }
    }
}


2 решение ошибки:

измените Terraria.Item.maxStack на: item.maxStack = количество здесь;

пример:

using Terraria.ID;
using Terraria.ModLoader;

namespace LatormRage.Items
{
	public class LatormSoul : ModItem
	{
		public override void SetStaticDefaults()
		{
			DisplayName.SetDefault("Latorm Soul");
			Tooltip.SetDefault("HardMode ingot");
		}
		public override void SetDefaults()
		{
			item.width = 30;
			item.height = 24;
			item.maxStack = 999;
			item.value = 1000;
			item.rare = 4;
			ItemID.Sets.ItemNoGravity[item.type] = true;
		}
	}
}


3 устранение ошибок :

terraria.item.width = item.width = 30; (просто сотрите "terraria." в каждой строке кода вашего кода)

4 устранение ошибок :

сменить Террарию.Сущность.высота для terraia.item.height = 24;

пример:

using Terraria.ID;
using Terraria.ModLoader;

namespace LatormRage.Items
{
	public class LatormSoul : ModItem
	{
		public override void SetStaticDefaults()
		{
			DisplayName.SetDefault("Latorm Soul");
			Tooltip.SetDefault("HardMode ingot");
		}
		public override void SetDefaults()
		{
			item.width = 30;
			item.height = 24;
			item.maxStack = 999;
			item.value = 1000;
			item.rare = 4;
			ItemID.Sets.ItemNoGravity[item.type] = true;
		}
	}
}

5 Решение ошибки:

изменения в Terraria.товар.значение для элемента.ценность = 1000;

6 устранение ошибок :

public override void SetStaticDefaults()
		{
			DisplayName.SetDefault("Rotating Stick");
			Tooltip.SetDefault("Spinning go brrr");
		}


пример:

using System;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
 
namespace LatormRage.Items.LatormMatter 
{
    public class Item_a : ModItem
    {
		public override void SetStaticDefaults()
		{
			DisplayName.SetDefault("Rotating Stick");
			Tooltip.SetDefault("Spinning go brrr");
		}
         public override void SetDefaults()
        {
            item.damage = 10;
            item.melee = true;
            item.width = 138;
            item.height = 140;
            item.useTime = 10; 
            item.useAnimation = 10;
            item.channel = true;
            item.useStyle = 100;
            item.knockBack = 3; 
            item.value = Item.sellPrice(0, 5, 0, 0);
            item.rare = 3;                   
            item.shoot = mod.ProjectileType("Projectile4"); 
            item.noUseGraphic = true;
        }
        public override bool UseItemFrame(Player player)
        {
            player.bodyFrame.Y = 3 * player.bodyFrame.Height;
            return true;
        }
    }
}


решение для всех:

измените свой код на этот:

using Terraria;
using Terraria.ID;
using Terraria.ModLoader;

namespace op_weapons.Items
{
    public class TrueHell : ModItem
    {
	public override void SetStaticDefaults() {

          DisplayName.SetDefault(Omega Eye");
          Tooltip.SetDefault("The legendary item");

        }
        public override void SetDefaults()
        {
            Item.maxStack = 999;
            Item.Width = 40;
            Item.height = 40;
            Item.value = 1230000;
        }

        public override void AddRecipes()
        {
            ModRecipe recipe = new ModRecipe(mod);
            recipe.AddIngredient(ItemID.Wood, 1);
            recipe.AddTile(TileID.Anvils);
            recipe.SetResult(this, 2);
            recipe.AddRecipe();
        }
    }


и не писать код [BadInsult].


Dave Kreskowiak

Я серьезно сомневаюсь, что ОП все еще ищет решение 2 года спустя.

В основном проблема сводилась к непониманию того, что C# чувствителен к регистру и орфографическим ошибкам.

Рейтинг:
1

User 7429338

Это похоже на орфографическую ошибку :) Это AddRecipe / AddRecipes.

public override void AddRecipes()
{
    ModRecipe recipe = new ModRecipe(mod);
    recipe.AddIngredient(ItemID.GrayBrick);
    recipe.SetResult(this, 2);
    recipe.AddRecipe();
}


OriginalGriff

Я не знаю - я мог бы съесть пирог с рисом прямо сейчас!

Member 13871461

ха-ха-ха, я начал сегодня утром. и я знаю только этот код...

Member 13871461

о, и это не орфографическая ошибка.

[no name]

общественного переопределить недействительными AddRecepies() &ЛТ;- это должно быть AddRecipes
рецепт.AddRecepie(); <- это должен быть AddRecipe

Member 13871461

спасибо, что помогли мне в этом, но,новая проблема, также извините за использование вашего времени, я даже не в старшей школе

Member 13871461

вот новая ошибка.

c:\Users\chedl\Documents\My игры\в Terraria\ModLoader\мод источники\ОП\оружия\элементов TrueHell.КС(12,18) : ошибка CS0117: 'террариумов.Item' не содержит определения для 'name'

c:\Users\chedl\Documents\My Games\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(13,13) : ошибка CS0120: ссылка на объект требуется для нестатического поля, метода или свойства 'Terraria.Item.maxStack'

c:\Users\chedl\Documents\My игры\в Terraria\ModLoader\мод источники\ОП\оружия\элементов TrueHell.КС(14,18) : ошибка CS0117: 'террариумов.Item' не содержит определения для 'Width'

c:\Users\chedl\Documents\My Games\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(15,13) : ошибка CS0120: ссылка на объект требуется для нестатического поля, метода или свойства 'Terraria.Сущность.высота'

c:\Users\chedl\Documents\My Games\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(16,13) : ошибка CS0120: ссылка на объект требуется для нестатического поля, метода или свойства 'Terraria.Item.value'

c:\Users\chedl\Documents\My Games\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(17,13) : ошибка CS0103: имя 'Addtooltip' не существует в текущем контексте

c:\Users\chedl\Documents\My игры\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(23,20) : ошибка CS1061: 'op_weapons.Предметы.ModRecipe' не содержит определения для 'AddIngredient' и никакого метода расширения 'AddIngredient', принимающего первый аргумент типа 'op_weapons.Предметы.ModRecipe' может быть найден (пропущена директива using или ссылка на сборку?)

c:\Users\chedl\Documents\My игры\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(24,20) : ошибка CS1061: 'op_weapons.Предметы.ModRecipe' не содержит определения для 'SetResult' и никакого метода расширения 'SetResult', принимающего первый аргумент типа 'op_weapons.Предметы.ModRecipe' может быть найден (пропущена директива using или ссылка на сборку?)

c:\Users\chedl\Documents\My Games\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(25,13) : ошибка CS0201: в качестве оператора можно использовать только выражения присваивания, вызова, инкремента, декремента, ожидания и новых объектов

c:\Users\chedl\Documents\My игры\Terraria\ModLoader\Mod sources\op weapons\Items\TrueHell.cs(25,20) : ошибка CS1061: 'op_weapons.Предметы.ModRecipe' не содержит определения для 'AddRecipe' и никакого метода расширения 'AddRecipe', принимающего первый аргумент типа 'op_weapons.Предметы.ModRecipe' может быть найден (пропущена директива using или ссылка на сборку?)

[no name]

Проверьте капитализацию: это item.name, item.width, item.height и т. д., Все в нижнем регистре. И AddTooltip вместо Addtooltip.