From d1550675bfa28cd2dce659d8455ef9d3c6401efb Mon Sep 17 00:00:00 2001 From: Player Name Date: Sun, 28 Jun 2026 07:49:29 +0200 Subject: [PATCH] fix remaining bugs --- .../ardougne/quest/hazeelcult/HazeelCultListeners.kt | 10 ++++------ Server/src/main/core/game/node/entity/npc/NPC.java | 1 - .../main/core/game/world/map/build/DynamicRegion.java | 9 ++++++++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Server/src/main/content/region/kandarin/ardougne/quest/hazeelcult/HazeelCultListeners.kt b/Server/src/main/content/region/kandarin/ardougne/quest/hazeelcult/HazeelCultListeners.kt index cd6ac6007..53ed92a3d 100644 --- a/Server/src/main/content/region/kandarin/ardougne/quest/hazeelcult/HazeelCultListeners.kt +++ b/Server/src/main/content/region/kandarin/ardougne/quest/hazeelcult/HazeelCultListeners.kt @@ -173,18 +173,16 @@ class HazeelCultListeners : InteractionListener { } // chest with hazeel scroll. unlocks with key, opens, and contains the scroll. - onUseWith(IntType.SCENERY, CHEST_KEY, Scenery.CHEST_2856) { player, _, _ -> + onUseWith(IntType.SCENERY, CHEST_KEY, Scenery.CHEST_2856) { player, _, node -> sendMessage(player, "You unlock the chest.") animate(player, Animations.HUMAN_OPEN_CHEST_536) - addScenery(Scenery.CHEST_2857,CHEST_LOCATION, 2, 10) - removeScenery(core.game.node.scenery.Scenery(Scenery.CHEST_2856, Location(2565, 3272, 2))) + replaceScenery(node.asScenery(), Scenery.CHEST_2857, 20) return@onUseWith true } // chest with hazeel scroll. unlocks with key, opens, and contains the scroll. - on(Scenery.CHEST_2857, IntType.SCENERY, "Close") { _, _ -> - addScenery(Scenery.CHEST_2856, CHEST_LOCATION, 2, 10) - removeScenery(core.game.node.scenery.Scenery(Scenery.CHEST_2857, CHEST_LOCATION)) + on(Scenery.CHEST_2857, IntType.SCENERY, "Close") { _, node -> + replaceScenery(node.asScenery(), Scenery.CHEST_2856, 20) return@on true } diff --git a/Server/src/main/core/game/node/entity/npc/NPC.java b/Server/src/main/core/game/node/entity/npc/NPC.java index 59629bdde..6fa12f211 100644 --- a/Server/src/main/core/game/node/entity/npc/NPC.java +++ b/Server/src/main/core/game/node/entity/npc/NPC.java @@ -1059,5 +1059,4 @@ public class NPC extends Entity { public void setNeverWalks(boolean neverWalks) { this.neverWalks = neverWalks; } - } diff --git a/Server/src/main/core/game/world/map/build/DynamicRegion.java b/Server/src/main/core/game/world/map/build/DynamicRegion.java index 6e0d06031..7e5ce124a 100644 --- a/Server/src/main/core/game/world/map/build/DynamicRegion.java +++ b/Server/src/main/core/game/world/map/build/DynamicRegion.java @@ -292,7 +292,14 @@ public final class DynamicRegion extends Region { replacement.rebaseObjects(); replacement.rebuildFlags(orig); replacement.syncFlagsToRegionManager(); - replacement.getNpcs().addAll(orig.getNpcs()); //DO NOT create a copy npc, because it won't be initialized! + for (NPC npc : orig.getNpcs()) { + Location newLoc = currentBase.transform(npc.getLocation().getChunkOffsetX(), npc.getLocation().getChunkOffsetY(), 0); + NPC copy = NPC.create(npc.getId(), newLoc, npc.getDirection()); + copy.setAggressive(npc.isAggressive()); + copy.setRespawn(npc.isRespawn()); + copy.setWalks(npc.isWalks()); + copy.init(); + } } @Override