From 4e2cb1fad901fdd766479a079cdb8b2b2acc67f2 Mon Sep 17 00:00:00 2001 From: wish Date: Thu, 13 Jul 2023 18:12:46 +1000 Subject: [PATCH] skip invalid pointers --- server/channelserver/handlers_character.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/channelserver/handlers_character.go b/server/channelserver/handlers_character.go index 01d9dc73a..7a4c164fd 100644 --- a/server/channelserver/handlers_character.go +++ b/server/channelserver/handlers_character.go @@ -151,7 +151,7 @@ func (save *CharacterSaveData) updateSaveDataWithStruct() { if _config.ErupeConfig.RealClientMode == _config.ZZ { copy(save.decompSave[pointerRP:pointerRP+2], rpBytes) copy(save.decompSave[pointerKQF:pointerKQF+8], save.KQF) - } else { + } else if _config.ErupeConfig.RealClientMode >= _config.Z1 { copy(save.decompSave[pointerRPZ:pointerRPZ+2], rpBytes) copy(save.decompSave[pointerKQFZ:pointerKQFZ+8], save.KQF) } @@ -181,7 +181,7 @@ func (save *CharacterSaveData) updateStructWithSaveData() { save.GR = grpToGR(binary.LittleEndian.Uint32(save.decompSave[pointerGRP : pointerGRP+4])) } save.KQF = save.decompSave[pointerKQF : pointerKQF+8] - } else { + } else if _config.ErupeConfig.RealClientMode >= _config.Z1 { save.RP = binary.LittleEndian.Uint16(save.decompSave[pointerRPZ : pointerRPZ+2]) save.HouseTier = save.decompSave[pointerHouseTierZ : pointerHouseTierZ+5] save.HouseData = save.decompSave[pointerHouseDataZ : pointerHouseDataZ+195]