My methods, edit them to your likingCode:@Override public void sendDeath(final Entity source) { if (getRights() == 2 && getHitpoints() == 0) { setNextAnimation(new Animation(21280)); setHitpoints((int) (getMaxHitpoints())); lock(4); return; } if (getEffectsManager().hasActiveEffect(EffectType.IMMORTALITY)) { resetReceivedHits(); setHitpoints((int) (getMaxHitpoints() * 0.40)); setNextAnimation(new Animation(18119)); setNextGraphics(new Graphics(3630)); World.sendGraphics(this, new Graphics(3631, 0, 0, getDirection(), true), this); getEffectsManager().removeEffect(EffectType.IMMORTALITY); return; } if (prayer.hasPrayersOn() && getTemporaryAttributtes().get("startedDuel") != Boolean.TRUE) { if (prayer.usingPrayer(0, 14)) { setNextGraphics(new Graphics(437)); final Player target = this; for (int regionId : getMapRegionsIds()) { List<Integer> playersIndexes = World.getRegion(regionId).getPlayerIndexes(); if (playersIndexes != null) { for (int playerIndex : playersIndexes) { Player player = World.getPlayers().get(playerIndex); if (player == null || !player.hasStarted() || player.isDead() || player.hasFinished() || !player.withinDistance(this, 1) || !player.isCanPvp() || !target.getControlerManager().canHit(player)) continue; player.applyHit( new Hit(target, Utils.random((int) (skills.getLevelForXp(Skills.PRAYER) * 2.5)), HitLook.REGULAR_DAMAGE)); } } List<Integer> npcsIndexes = World.getRegion(regionId).getNPCsIndexes(); if (npcsIndexes != null) { for (int npcIndex : npcsIndexes) { NPC npc = World.getNPCs().get(npcIndex); if (npc == null || npc.isDead() || npc.hasFinished() || !npc.withinDistance(this, 1) || !npc.getDefinitions().hasAttackOption() || !target.getControlerManager().canHit(npc)) continue; npc.applyHit( new Hit(target, Utils.random((int) (skills.getLevelForXp(Skills.PRAYER) * 25.00)), HitLook.REGULAR_DAMAGE)); } } } WorldTasksManager.schedule(new WorldTask() { @Override public void run() { World.sendGraphics(target, new Graphics(438), new WorldTile(target.getX() - 1, target.getY(), target.getPlane())); World.sendGraphics(target, new Graphics(438), new WorldTile(target.getX() + 1, target.getY(), target.getPlane())); World.sendGraphics(target, new Graphics(438), new WorldTile(target.getX(), target.getY() - 1, target.getPlane())); World.sendGraphics(target, new Graphics(438), new WorldTile(target.getX(), target.getY() + 1, target.getPlane())); World.sendGraphics(target, new Graphics(438), new WorldTile(target.getX() - 1, target.getY() - 1, target.getPlane())); World.sendGraphics(target, new Graphics(438), new WorldTile(target.getX() - 1, target.getY() + 1, target.getPlane())); World.sendGraphics(target, new Graphics(438), new WorldTile(target.getX() + 1, target.getY() - 1, target.getPlane())); World.sendGraphics(target, new Graphics(438), new WorldTile(target.getX() + 1, target.getY() + 1, target.getPlane())); } }); } else if (prayer.usingPrayer(1, 23)) { World.sendProjectile(this, new WorldTile(getX() + 2, getY() + 2, getPlane()), 2261, 24, 0, 41, 35, 30, 0); World.sendProjectile(this, new WorldTile(getX() + 2, getY(), getPlane()), 2261, 41, 0, 41, 35, 30, 0); World.sendProjectile(this, new WorldTile(getX() + 2, getY() - 2, getPlane()), 2261, 41, 0, 41, 35, 30, 0); World.sendProjectile(this, new WorldTile(getX() - 2, getY() + 2, getPlane()), 2261, 41, 0, 41, 35, 30, 0); World.sendProjectile(this, new WorldTile(getX() - 2, getY(), getPlane()), 2261, 41, 0, 41, 35, 30, 0); World.sendProjectile(this, new WorldTile(getX() - 2, getY() - 2, getPlane()), 2261, 41, 0, 41, 35, 30, 0); World.sendProjectile(this, new WorldTile(getX(), getY() + 2, getPlane()), 2261, 41, 0, 41, 35, 30, 0); World.sendProjectile(this, new WorldTile(getX(), getY() - 2, getPlane()), 2261, 41, 0, 41, 35, 30, 0); final Player target = this; WorldTasksManager.schedule(new WorldTask() { @Override public void run() { setNextGraphics(new Graphics(2259)); for (int regionId : getMapRegionsIds()) { List<Integer> playersIndexes = World.getRegion(regionId).getPlayerIndexes(); if (playersIndexes != null) { for (int playerIndex : playersIndexes) { Player player = World.getPlayers().get(playerIndex); if (player == null || !player.hasStarted() || player.isDead() || player.hasFinished() || !player.isCanPvp() || !player.withinDistance(target, 2) || !target.getControlerManager().canHit(player)) continue; player.applyHit(new Hit(target, (int) Utils.random((skills.getLevelForXp(Skills.PRAYER) * 25.00)), HitLook.REGULAR_DAMAGE)); } } List<Integer> npcsIndexes = World.getRegion(regionId).getNPCsIndexes(); if (npcsIndexes != null) { for (int npcIndex : npcsIndexes) { NPC npc = World.getNPCs().get(npcIndex); if (npc == null || npc.isDead() || npc.hasFinished() || !npc.withinDistance(target, 2) || !npc.getDefinitions().hasAttackOption() || !target.getControlerManager().canHit(npc)) continue; npc.applyHit(new Hit(target, (int) Utils.random((skills.getLevelForXp(Skills.PRAYER) * 25.00)), HitLook.REGULAR_DAMAGE)); } } } World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() + 2, getY() + 2, getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() + 2, getY(), getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() + 2, getY() - 2, getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() - 2, getY() + 2, getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() - 2, getY(), getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() - 2, getY() - 2, getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX(), getY() + 2, getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX(), getY() - 2, getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() + 1, getY() + 1, getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() + 1, getY() - 1, getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() - 1, getY() + 1, getPlane())); World.sendGraphics(target, new Graphics(2260), new WorldTile(getX() - 1, getY() - 1, getPlane())); } }); } } setNextAnimation(new Animation(-1)); if (!controlerManager.sendDeath()) return; lock(8); stopAll(); if (familiar != null) familiar.sendDeath(this); final WorldTile deathTile = new WorldTile(this); WorldTasksManager.schedule(new WorldTask() { int loop; @Override public void run() { if (loop == 0) { if (deathByFire = true){ setNextAnimation(new Animation(20168)); setNextGraphics(new Graphics(3958)); }else if (deathByWater = true){ setNextAnimation(new Animation(20164)); setNextGraphics(new Graphics(3956)); }else if (deathByAir = true){ setNextAnimation(new Animation(20162)); setNextGraphics(new Graphics(3955)); }else if (deathByEarth = true){ setNextAnimation(new Animation(20166)); setNextGraphics(new Graphics(3957)); }else{ setNextAnimation(getDeathAnimation()); } } else if (loop == 1) { getPackets().sendGameMessage("Oh dear, you have died."); } else if (loop == 3) { controlerManager.startControler("DeathEvent", deathTile, hasSkull()); } else if (loop == 4) { getMusicsManager().playMusicEffect(MusicsManager.DEATH_MUSIC_EFFECT); stop(); } loop++; } }, 0, 1); } public void sendItemsOnDeath(Player killer, boolean dropItems, boolean dropLostItems) { Integer[][] slots = GraveStone.getItemSlotsKeptOnDeath(this, true, dropItems, getPrayer().isProtectingItem()); sendItemsOnDeath(killer, getLastWorldTile(), new WorldTile(this), true, slots, dropLostItems); } /* * default items on death, now only used for wilderness */ public void sendItemsOnDeath(Player killer, boolean dropItems) { sendItemsOnDeath(killer, dropItems, true); } /* * default items on death, now only used for wilderness */ public void sendItemsOnDeath(Player killer) { sendItemsOnDeath(killer, hasSkull()); } public void sendItemsOnDeath(Player killer, WorldTile deathTile, WorldTile respawnTile, boolean wilderness, Integer[][] slots, boolean dropLostItems) { /* * if ((((killer != null && killer.getRights() >= 2) || getRights() >= * 2) && Settings.HOSTED) || hasFinished()) return; */ if (Settings.HOSTED) { if (getRights() >= 2 || hasFinished()) return; if (killer != null) { if (killer.getRights() >= 2) return; } } charges.die(slots[1], slots[3]); // degrades droped and lost items only auraManager.removeAura(); Item[][] items = GraveStone.getItemsKeptOnDeath(this, slots); inventory.reset(); equipment.reset(); appearence.generateAppearenceData(); for (Item item : items[0]) inventory.addItemDrop(item.getId(), item.getAmount(), respawnTile); if (dropLostItems) { if (items[1].length != 0) { if (wilderness) { if (!isBeginningAccount()) for (Item item : items[1]) World.addGroundItem(item, deathTile, killer == null ? this : killer, true, 60, killer == null ? 1 : 0); } else new GraveStone(this, deathTile, items[1]); } } if (killer != null) Logger.globalLog(username, session.getIP(), new String(killer.getUsername() + " has killed " + username + " with the ip: " + killer.getSession().getIP() + " items are as follows:" + Arrays.toString(items[1]).replace("null,", "") + " .")); }