mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-13 15:34:38 +01:00
fix various savedata bugs
This commit is contained in:
@@ -97,8 +97,8 @@ func (save *CharacterSaveData) Save(s *Session) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = s.server.db.Exec(`UPDATE characters SET savedata=$1, is_new_character=$2, hrp=$3, gr=$4, is_female=$5, weapon_type=$6, weapon_id=$7 WHERE id=$8
|
_, err = s.server.db.Exec(`UPDATE characters SET savedata=$1, is_new_character=false, hrp=$2, gr=$3, is_female=$4, weapon_type=$5, weapon_id=$6 WHERE id=$7
|
||||||
`, save.compSave, save.IsNewCharacter, save.HRP, save.GR, save.Gender, save.WeaponType, save.WeaponID, save.CharID)
|
`, save.compSave, save.HRP, save.GR, save.Gender, save.WeaponType, save.WeaponID, save.CharID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Error("Failed to update savedata", zap.Error(err), zap.Uint32("charID", save.CharID))
|
s.logger.Error("Failed to update savedata", zap.Error(err), zap.Uint32("charID", save.CharID))
|
||||||
}
|
}
|
||||||
@@ -140,18 +140,21 @@ func (save *CharacterSaveData) updateStructWithSaveData() {
|
|||||||
} else {
|
} else {
|
||||||
save.Gender = false
|
save.Gender = false
|
||||||
}
|
}
|
||||||
save.RP = binary.LittleEndian.Uint16(save.decompSave[pointerRP : pointerRP+2])
|
if !save.IsNewCharacter {
|
||||||
save.HouseTier = save.decompSave[pointerHouseTier : pointerHouseTier+5]
|
save.RP = binary.LittleEndian.Uint16(save.decompSave[pointerRP : pointerRP+2])
|
||||||
save.HouseData = save.decompSave[pointerHouseData : pointerHouseData+195]
|
save.HouseTier = save.decompSave[pointerHouseTier : pointerHouseTier+5]
|
||||||
save.BookshelfData = save.decompSave[pointerBookshelfData : pointerBookshelfData+5576]
|
save.HouseData = save.decompSave[pointerHouseData : pointerHouseData+195]
|
||||||
save.GalleryData = save.decompSave[pointerGalleryData : pointerGalleryData+1748]
|
save.BookshelfData = save.decompSave[pointerBookshelfData : pointerBookshelfData+5576]
|
||||||
save.ToreData = save.decompSave[pointerToreData : pointerToreData+240]
|
save.GalleryData = save.decompSave[pointerGalleryData : pointerGalleryData+1748]
|
||||||
save.GardenData = save.decompSave[pointerGardenData : pointerGardenData+68]
|
save.ToreData = save.decompSave[pointerToreData : pointerToreData+240]
|
||||||
save.WeaponType = save.decompSave[pointerWeaponType]
|
save.GardenData = save.decompSave[pointerGardenData : pointerGardenData+68]
|
||||||
save.WeaponID = binary.LittleEndian.Uint16(save.decompSave[pointerWeaponID : pointerWeaponID+2])
|
save.WeaponType = save.decompSave[pointerWeaponType]
|
||||||
save.HRP = binary.LittleEndian.Uint16(save.decompSave[pointerHRP : pointerHRP+2])
|
save.WeaponID = binary.LittleEndian.Uint16(save.decompSave[pointerWeaponID : pointerWeaponID+2])
|
||||||
save.GR = grpToGR(binary.LittleEndian.Uint32(save.decompSave[pointerGRP : pointerGRP+4]))
|
save.HRP = binary.LittleEndian.Uint16(save.decompSave[pointerHRP : pointerHRP+2])
|
||||||
save.KQF = save.decompSave[pointerKQF : pointerKQF+8]
|
save.GR = grpToGR(binary.LittleEndian.Uint32(save.decompSave[pointerGRP : pointerGRP+4]))
|
||||||
|
save.KQF = save.decompSave[pointerKQF : pointerKQF+8]
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleMsgMhfSexChanger(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfSexChanger(s *Session, p mhfpacket.MHFPacket) {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ func handleMsgMhfSavedata(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
s.logger.Info("Updating save with blob")
|
s.logger.Info("Updating save with blob")
|
||||||
characterSaveData.decompSave = saveData
|
characterSaveData.decompSave = saveData
|
||||||
}
|
}
|
||||||
characterSaveData.IsNewCharacter = false
|
characterSaveData.updateStructWithSaveData()
|
||||||
characterSaveData.Save(s)
|
characterSaveData.Save(s)
|
||||||
s.logger.Info("Wrote recompressed savedata back to DB.")
|
s.logger.Info("Wrote recompressed savedata back to DB.")
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ func (s *Server) registerDBAccount(username string, password string) error {
|
|||||||
INSERT INTO characters (
|
INSERT INTO characters (
|
||||||
user_id, is_female, is_new_character, name, unk_desc_string,
|
user_id, is_female, is_new_character, name, unk_desc_string,
|
||||||
hrp, gr, weapon_type, last_login)
|
hrp, gr, weapon_type, last_login)
|
||||||
VALUES($1, False, True, '', '', 1, 0, 0, $2)`,
|
VALUES($1, False, True, '', '', 0, 0, 0, $2)`,
|
||||||
id,
|
id,
|
||||||
uint32(time.Now().Unix()),
|
uint32(time.Now().Unix()),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user