Класс ModNPC
Базовый класс для создания пользовательских NPC, врагов и боссов.
Обзор
Класс ModNPC позволяет создавать пользовательских неигровых персонажей, включая дружелюбных NPC, врагов и боссов с настраиваемым ИИ-поведением. Он основан на концепциях из ModItem, поэтому сначала ознакомьтесь с ним, если вы новичок в разработке для tModLoader.
Пример простого врага
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace YourMod.NPCs
{
public class ExampleEnemy : ModNPC
{
public override void SetStaticDefaults()
{
Main.npcFrameCount[Type] = 6; // Number of animation frames
}
public override void SetDefaults()
{
NPC.width = 40;
NPC.height = 40;
NPC.damage = 20;
NPC.defense = 10;
NPC.lifeMax = 100;
NPC.HitSound = SoundID.NPCHit1;
NPC.DeathSound = SoundID.NPCDeath1;
NPC.value = 100f; // Money dropped
NPC.knockBackResist = 0.5f;
NPC.aiStyle = NPCAIStyleID.Fighter; // Zombie-like AI
}
public override float SpawnChance(NPCSpawnInfo spawnInfo)
{
return SpawnCondition.OverworldNightMonster.Chance * 0.1f;
}
}
}
Создание босса
Боссы требуют более сложной настройки с пользовательским ИИ:
public class ExampleBoss : ModNPC
{
public override void SetStaticDefaults()
{
Main.npcFrameCount[Type] = 4;
NPCID.Sets.BossBestiaryPriority.Add(Type);
}
public override void SetDefaults()
{
NPC.width = 100;
NPC.height = 100;
NPC.damage = 40;
NPC.defense = 15;
NPC.lifeMax = 5000;
NPC.boss = true; // Mark as boss
NPC.npcSlots = 10f;
NPC.value = Item.buyPrice(gold: 5);
NPC.knockBackResist = 0f; // Immune to knockback
NPC.noGravity = true; // Flies
NPC.noTileCollide = true;
Music = MusicID.Boss1;
}
public override void AI()
{
// Custom AI code here
}
}
Руководство по свойствам NPC
aiStyle
Встроенные шаблоны ИИ:
- • Fighter (как зомби)
- • Flying (как летучая мышь)
- • Worm (сегментированный)
- • Custom (собственный)
boss
Отметить NPC как босса:
- • Показывает полоску здоровья
- • Предотвращает исчезновение
- • Играет музыку босса
- • Особые эффекты смерти
Полная документация ModNPC:
Просмотреть полную документацию