From e0b1b7eab259ca464f652c3a266581935f949532 Mon Sep 17 00:00:00 2001 From: wish Date: Tue, 2 Aug 2022 05:21:03 +1000 Subject: [PATCH] objects v3.1 --- patch-schema/dbuserbinaries.sql | 1 - server/channelserver/handlers.go | 3 --- server/channelserver/handlers_data.go | 14 ++++++++++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/patch-schema/dbuserbinaries.sql b/patch-schema/dbuserbinaries.sql index e92b3fd20..012172073 100644 --- a/patch-schema/dbuserbinaries.sql +++ b/patch-schema/dbuserbinaries.sql @@ -3,7 +3,6 @@ BEGIN; CREATE TABLE user_binaries ( id int PRIMARY KEY, - type1 bytea, type2 bytea, type3 bytea ); diff --git a/server/channelserver/handlers.go b/server/channelserver/handlers.go index 1977d0281..e34bd7f7c 100644 --- a/server/channelserver/handlers.go +++ b/server/channelserver/handlers.go @@ -134,7 +134,6 @@ func handleMsgSysTerminalLog(s *Session, p mhfpacket.MHFPacket) { func handleMsgSysLogin(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysLogin) - name := "" rights := uint32(0x0E) // 0e with normal sub 4e when having premium @@ -150,9 +149,7 @@ func handleMsgSysLogin(s *Session, p mhfpacket.MHFPacket) { panic(err) } - s.server.db.QueryRow("SELECT name FROM characters WHERE id = $1", pkt.CharID0).Scan(&name) s.Lock() - s.Name = name s.charID = pkt.CharID0 s.rights = rights s.token = pkt.LoginTokenString diff --git a/server/channelserver/handlers_data.go b/server/channelserver/handlers_data.go index 2104808c5..d0ae083b0 100644 --- a/server/channelserver/handlers_data.go +++ b/server/channelserver/handlers_data.go @@ -3,7 +3,9 @@ package channelserver import ( "encoding/binary" "encoding/hex" + "erupe-ce/common/stringsupport" "fmt" + "io" "io/ioutil" "os" "path/filepath" @@ -308,6 +310,18 @@ func handleMsgMhfLoaddata(s *Session, p mhfpacket.MHFPacket) { s.logger.Fatal("Failed to get savedata from db", zap.Error(err)) } doAckBufSucceed(s, pkt.AckHandle, data) + + decompSaveData, err := nullcomp.Decompress(data) + if err != nil { + s.logger.Error("Failed to decompress savedata", zap.Error(err)) + } + bf := byteframe.NewByteFrameFromBytes(decompSaveData) + bf.Seek(88, io.SeekStart) + binary1 := bf.ReadNullTerminatedBytes() + s.server.userBinaryPartsLock.Lock() + s.server.userBinaryParts[userBinaryPartID{charID: s.charID, index: 1}] = append(binary1, []byte{0x00}...) + s.server.userBinaryPartsLock.Unlock() + s.Name = stringsupport.SJISToUTF8(binary1) } func handleMsgMhfSaveScenarioData(s *Session, p mhfpacket.MHFPacket) {