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 文档:
查看完整文档