Npc : Entity
NPC泛指除了玩家之外的所有生物,如动物、敌怪、村民、BOSS等。Npc类表示具有生物基本信息的非玩家实体类。
属性
属性 |
int id 【只读】当前NPC的动态ID。 |
NpcType type 【只读】当前NPC的类型。 |
Attack baseAttack 当前NPC的基础攻击属性。 |
double defaultMaxSpeed 【只读】当前NPC的默认最大横向移动速度。 |
double maxSpeed 当前NPC的最大横向移动速度。每帧重置为所在环境(流体黏性等)决定的最大移动速度。 |
double defaultGravity 【只读】当前NPC的默认重力加速度。 |
double gravity 当前NPC的纵向加速度。每帧重置为作用了所在环境纵向受力以及重力后的纵向加速度。 |
double defaultMaxFallSpeed 【只读】当前NPC的默认最大下落速度。 |
double maxFallSpeed 当前NPC的最大下落速度。每帧重置为作用了所在环境纵向阻力后的最大下落速度。 |
double defaultJumpForce 【只读】当前NPC的默认跳跃力度。 |
double jumpForce 当前NPC的跳跃力度。每帧重置为作用了所在环境纵向阻力后的跳跃力度。 |
bool noMove 决定当前NPC在行走模板中是否停止行走。 |
bool inLiquid 【只读】当前NPC是否处在流体环境中。 |
bool oldInLiquid 【只读】上一帧的NPC是否处在流体环境中。 |
int touchLiquidID 【只读】当前NPC所处流体环境的ID。如果不在任何流体内,则ID总是为0。 |
bool isEnemy 【只读】当前NPC是否会伤害玩家。 |
bool state NPC当前在简单有限状态机中的状态。 |
int stateTimer NPC的状态机计时器。 |
bool hurry 当前NPC是否为匆忙状态。匆忙状态下随机走模板不会停下来。 |
int maxHealth 当前NPC的生命值上限。 |
int health 当前NPC的生命值。 |
bool angry 当前NPC是否为愤怒状态。易怒的NPC在被玩家击中后会将该玩家视为目标,并置愤怒状态为true。 |
int animation NPC当前执行的动画状态。通常用于表示骨骼模型的动画状态。 |
int animationTickTime NPC在当前动画索引所经过的时间。每帧自动自增1,当动画状态切换时自动重置为0。 |
double watchAngle 【只读】NPC的目视角度。若NPC目标存在,则总是目视目标。否则总是根据朝向水平目视。 |
ArrayList<ItemSlot> itemSlots 当前NPC自己的物品格子列表。物品格子数目在NPC的AI数据表中指定。 |
NpcType type 【只读】NPC类型。 |
double spawnCount 占用生成量。 |
double defaultKnockBackDefenseValue 击退抗性。 |
double toolUseRate 工具使用概率。 |
int maxDisappearTime 最大消失时间。 |
int defaultDefenseValue 防御力。 |
int defaultAttackValue 攻击力。 |
int defaultCritValue 双倍暴击率百分比。 |
int defaultKnockBackValue 击退力。 |
int movement 运动方式。 |
int gfxOffsetX 贴图偏移量X。 |
int gfxOffsetY 贴图偏移量Y。 |
int gfxWidth 贴图宽度。 |
int gfxHeight 贴图高度。 |
int frameStyle 贴图方式 0-不分左右 1-分左右。 |
int exps 经验值。 |
int checkTargetDistance 检测目标的半径。 |
int special 特殊值。 |
int magicRate 产生魔法碎片概率的反比) |
bool friendly 是否友好。 |
bool hasGravity 是否受重力。 |
bool canClimbWal 是否能爬墙。 |
bool isForeground 是否置前。 |
bool isAntiLava 是否抵抗岩浆。 |
bool noFixByBlock 是否不根据方块修正位置。 |
bool willBurnUnderSun 是否白天自燃。 |
bool defaultAngry 是否易怒。 |
bool isBoss 是否作为BOSS。 |
bool noShowHp 是否不显示血条。 |
bool noBurnSound 是否不播放燃烧音效。 |
bool usingBoneModule 【只读】是否使用骨骼模型。 |
bool isCheckPlayerTarget 是否自动检测玩家目标。 |
bool isVisionNoCrossTile 是否视野不穿墙。 |
bool isAutoSave 是否保存到存档。 |
bool netUpdate 【只读】是否使用逻辑网络同步。 |
类成员函数
函数 |
void Npc:Kill() 不掉落物品直接清除当前NPC对象。 |
void Npc:Strike(Attack attack, double hitAngle = 0, bool immune = true, bool hurtSound = true, int lootingLevel = 0)
制造一个对当前NPC的伤害。
|
void Npc:StrikeFromPlayer(Player player, Attack attack, double hitAngle = 0, bool immune = true, bool hurtSound = true, int lootingLevel = 0)
制造一个某玩家对当前NPC的伤害。
|
void Npc:StrikeFromNpc(Npc npc, Attack attack, double hitAngle = 0, bool immune = true, bool hurtSound = true, int lootingLevel = 0)
制造一个某NPC对当前NPC的伤害。
|
Player/nil Npc:GetPlayerTarget() 若当前NPC的玩家锁定目标存在且存活,返回该玩家对象,否则返回nil。 |
void Npc:AddBuff(int buffID, int buffTime) 为当前NPC添加一个状态效果。若原状态效果存在,以最长时间为新状态效果的持续时间。 |
void Npc:RemoveBuff(int buffID) 移除一个状态效果。 |
void Npc:RemoveAllBuff() 移除全部状态效果。 |
bool Npc:HasBuff(int buffID) 返回NPC是否拥有指定状态效果。 |
bool Npc:HasAnyBuff() 返回NPC是否存在状态效果。 |
void Npc:TryMakeSound(int tryTimes = 512) NPC尝试发出平时声音。平均经过tryTimes时间发出一次平时声音。 |
void Npc:MakeSound() NPC发出平时声音。 |
void Npc:UseTool(ItemSlot itemSlot, int skJointID) NPC使用指定物品格子内的工具。 itemSlot:指定物品格子。 skJointID:当前NPC使用工具的骨骼模型关节ID。 |
void Npc:Stand(bool faceToTarget = true)
站立静止不动。目标存在时, |
void Npc:RandomWalk(int idleTime = 128, int idleTimeOffset = 64, int walkTime = 96, int walkTimeOffset = 32) 随机地朝一个方向行走或停下或转弯。 停下时闲置 朝一个方向行走时持续 使用内置寻路逻辑,遇到墙壁会尝试跳跃3次。 |
void Npc:KeepWalking(bool followTarget = true)
持续行走而不停下。 使用内置寻路逻辑,遇到墙壁会尝试跳跃3次。 |
void Npc:Walk(bool followTarget = true)
目标存在时,采用Npc:KeepWalking, 目标不存在时,采用Npc:RandomWalk。 |
void Npc:Swim(bool followTarget = true) 在流体中游泳,在空气中蹦跶。 目标存在时, |
void Npc:Fly(bool followTarget = true, double force = 0.1, bool gradientSpeed = false) 在空气中飞行。 目标存在时, |
bool Npc:RandomTeleport(int distance, bool noToAir = true, bool noToLiquid = true) 传送NPC自己到以自己为圆心的圆形区域随机位置。若传送成功,返回true,否则返回false。
|
Last updated