@Override public void process() { if (getCombatTimer() == 0) sendNpcWalk(); if (needsRespawn) { respawnTimer--; } if (isDead()) { hiddenTimer--; if (hiddenTimer == 3 && isVisible) { getUpdateFlags().sendAnimation(getDefinition().getDeathAnimation(), 0); } if (hiddenTimer <= 0 && isVisible) { needsRespawn = true; isVisible = false; getUpdateFlags().setUpdateRequired(true); } if (respawnTimer <= 0 && !isVisible && needsRespawn) { getPosition().setAs(spawnPosition); isVisible = true; setDead(false); getUpdateFlags().sendAnimation(65535, 0); respawnTimer = definition.getRespawnTimer(); hiddenTimer = definition.getHiddenTimer(); hp = definition.getMaxHp(); needsRespawn = false; } } getCombat().combatTick(this); getFollowing().followTick(this); }
/** * Creates a new Npc. * * @param npcId the NPC ID */ public Npc(NpcDefinition definition, int npcId) { this.setNpcId(npcId); getUpdateFlags().setUpdateRequired(true); this.definition = definition; hp = definition.getMaxHp(); hiddenTimer = definition.getHiddenTimer(); respawnTimer = definition.getRespawnTimer(); initAttributes(); }
public void sendTransform(int transformId) { NpcDefinition def = World.getDefinitions()[transformId]; this.transformId = transformId; transformUpdate = true; setNpcId(transformId); getUpdateFlags().setUpdateRequired(true); respawnTimer = def.getRespawnTimer(); hiddenTimer = def.getHiddenTimer(); hp = def.getMaxHp(); }