From 9439ab95f3b56113baceb77a90f2e536d836c6aa Mon Sep 17 00:00:00 2001 From: Shaun Date: Sun, 17 Apr 2022 08:20:58 +0200 Subject: [PATCH] bug #1915: Fixed player position resetting when joining random maps --- src/server/components/player.js | 3 ++- src/server/world/instancer.js | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/server/components/player.js b/src/server/components/player.js index 3fe6331c..e17525bd 100644 --- a/src/server/components/player.js +++ b/src/server/components/player.js @@ -35,7 +35,8 @@ module.exports = { hidden: character.dead || null, account: character.account, zoneName: character.zoneName || clientConfig.config.defaultZone, - zoneId: character.zoneId || null + zoneId: character.zoneId || null, + zoneMapSeed: character.zoneMapSeed }); character.components = character.components || []; diff --git a/src/server/world/instancer.js b/src/server/world/instancer.js index 44602496..e769df6c 100644 --- a/src/server/world/instancer.js +++ b/src/server/world/instancer.js @@ -212,12 +212,15 @@ module.exports = { if (msg.keepPos && (!physics.isValid(obj.x, obj.y) || !map.canPathFromPos(obj))) msg.keepPos = false; - if (!msg.keepPos || !obj.has('x') || (map.mapFile.properties.isRandom && obj.instanceId !== map.seed)) { + if (!msg.keepPos || !obj.has('x') || (map.mapFile.properties.isRandom && obj.zoneMapSeed !== map.seed)) { obj.x = spawnPos.x; obj.y = spawnPos.y; } - obj.instanceId = map.seed || null; + if (map.seed) + obj.zoneMapSeed = map.seed; + else + delete obj.zoneMapSeed; obj.spawn = map.spawn;