ModNPC 类

用于创建自定义 NPC、敌人和 Boss 的基类。

概述

ModNPC 类允许您创建自定义非玩家角色,包括友好 NPC、敌人和具有自定义 AI 行为的 Boss。此内容基于 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;
        }
    }
}

创建 Boss

Boss 需要更复杂的设置和自定义 AI:

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

内置 AI 模式:

  • • Fighter(僵尸型)
  • • Flying(蝙蝠型)
  • • Worm(分段型)
  • • Custom(自定义)

boss

将 NPC 标记为 Boss:

  • • 显示血条
  • • 防止消失
  • • 播放 Boss 音乐
  • • 特殊死亡效果

了解更多

获取完整的 ModNPC 文档及 AI 示例:

查看完整 ModNPC 文档

获取完整的 ModNPC 文档:

查看完整文档