Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка при компиляции мода tmodloader.

Сергей Яковлев Ученик (117), открыт 6 дней назад
Я решил сделать мод чтобы поменять крафт зенита в calamity. Но при компиляции ошибка:


Код zenit.cs:
 using Terraria; 
using Terraria.ID;
using Terraria.ModLoader;
using CalamityMod.Items.Materials; // Для доступа к материалам Calamity
using CalamityMod.Items.Placeables; // Для божественной жеоды
using CalamityMod.Items.Weapons.Melee; // Добавьте, если хотите использовать классы из weapons.melee (например, StygianShield)
namespace zenit
{
public class zenit : ModSystem
{
public override void AddRecipes()
{
Recipe recipe = Recipe.Create(ItemID.Zenith);
recipe.AddIngredient(ItemID.TerraBlade);
recipe.AddIngredient(ItemID.Meowmere);
recipe.AddIngredient(ItemID.StarWrath);
recipe.AddIngredient(ItemID.InfluxWaver);
recipe.AddIngredient(ItemID.TheHorsemansBlade);
recipe.AddIngredient(ItemID.Seedler);
recipe.AddIngredient(ItemID.Starfury);
recipe.AddIngredient(ItemID.EnchantedSword);
recipe.AddIngredient(ModContent.ItemType<BloomSludge>(), 5); // Цветонит (Calamity)
recipe.AddIngredient(ModContent.ItemType<DivineGeode>(), 5); // Божественная Жеода (Calamity)
recipe.AddIngredient(ModContent.ItemType<CorruptedEnergy>(), 10); // Оскверненная эссенция (Calamity)
recipe.AddIngredient(ModContent.ItemType<GalacticSingularity>(), 5); // Галактическая сингулярность (Calamity)
recipe.AddIngredient(ModContent.ItemType<LifeAlloy>(), 5); // Сплав Жизни (Calamity)
recipe.AddIngredient(ModContent.ItemType<AstralBar>(), 5); // Астральный слиток (Calamity)
recipe.AddIngredient(ModContent.ItemType<CalamityMod.Items.Materials.AshesofCalamity>(), 5); // Пепел бедствия (Calamity)
recipe.AddIngredient(ModContent.ItemType<StygianShield>()); // Стигийский щит (Calamity)
recipe.AddTile(TileID.LunarCraftingStation); // Манипулятор Древних
recipe.Register();
}
}
}
Код который я не менял zenit.csproj:
 <Project Sdk="Microsoft.NET.Sdk"> 

<!-- Import tModLoader mod properties -->
<Import Project="..\tModLoader.targets" />

<!-- General -->
<PropertyGroup>

</PropertyGroup>

<!-- References -->
<ItemGroup>

</ItemGroup>

</Project>
Я не сильно в этом разбираюсь в модинге и в c#, помогите пожалуйста.
2 ответа
Ваня Широбоков Ученик (139) 6 дней назад
Похоже, что у тебя ошибка в коде мода tModLoader. Давай разберемся.

Возможные причины ошибки:

1. Проблема с зависимостями: Убедись, что все необходимые зависимости CalamityMod подключены корректно и доступны в твоем проекте. Проверь файл zenit.csproj на наличие всех необходимых <Reference> для классов из CalamityMod.
2. Некорректное использование API CalamityMod: Проверь, что ты правильно используешь классы и методы из CalamityMod. Возможно, ты забыл импортировать нужные пространства имен или вызываешь метод некорректно.
3. Конфликты с другими модами: Если у тебя установлено много модов, возможно, один из них конфликтует с твоим. Попробуй отключить другие моды и посмотреть, исчезнет ли ошибка.

Шаги для решения проблемы:

1. Проверь лог ошибок: tModLoader обычно выдает подробный лог ошибок при компиляции. Внимательно изучи его, чтобы понять, где именно возникает проблема.
2. Используй отладчик: Отладчик поможет тебе шаг за шагом проследить выполнение кода и найти место ошибки.
3. Проверь документацию CalamityMod: В документации CalamityMod ты найдешь подробную информацию о его API и способах использования.

Дополнительные советы:


Попробуй создать простой мод, который добавляет только один предмет. Это поможет тебе убедиться, что базовая настройка мода корректна.
Обратись за помощью на форуме tModLoader или в Discord-сервере CalamityMod. Там ты сможешь получить помощь от опытных моддеров.

Удачи с модингом!
S.H.I. Оракул (71319) 6 дней назад
Мод Calamity должен быть установлен и находиться в папке Mods (включая CalamityMod.dll и прочие файлы). Запустите tModLoader и посмотрите в списке установленных модов, есть ли CalamityMod и включён ли он. В старых версиях (до tModLoader 1.4) зависимость от другого мода обычно прописывалась в build.txt (строка modReferences = CalamityMod). В tModLoader 1.4 формат перешёл на *.csproj, поэтому достаточно в вашем zenit.csproj (или как он у вас называется) внутри тега <ItemGroup> добавить строчку:
 <ItemGroup> 
<!-- Здесь у вас могут быть и другие ссылки, если что-то ещё добавляли -->
<ModReference Include="CalamityMod" />
</ItemGroup>
В итоге zenit.csproj будет выглядеть, например, так:
 <Project Sdk="Microsoft.NET.Sdk"> 
<!-- Import tModLoader mod properties -->
<Import Project="..\tModLoader.targets" />

<!-- General -->
<PropertyGroup>
<!-- Можно ничего не указывать, если не нужно -->
</PropertyGroup>

<!-- References -->
<ItemGroup>
<ModReference Include="CalamityMod" />
</ItemGroup>
</Project>
Убедитесь, что в папке ModSources/zenit (или как у вас называется папка мода) лежит zenit.csproj с внесёнными изменениями. Откройте tModLoader, зайдите в меню «Workshop» → «Development» (или «Mod Sources» в более старых сборках) и попробуйте снова скомпилировать.
Сергей ЯковлевУченик (117) 5 дней назад
Мне надо исходный код каламити в папку mods добавлять? У меня один файл CalamityMod.tmod. У меня есть исходный код каламити и там есть файл CalamityMod.ddl,мне все исходные файлы в папку mods добавлять?
Похожие вопросы