diff --git a/network/mhfpacket/msg_mhf_stampcard_stamp.go b/network/mhfpacket/msg_mhf_stampcard_stamp.go index f9da9612e..a783b3e91 100644 --- a/network/mhfpacket/msg_mhf_stampcard_stamp.go +++ b/network/mhfpacket/msg_mhf_stampcard_stamp.go @@ -32,7 +32,9 @@ func (m *MsgMhfStampcardStamp) Opcode() network.PacketID { func (m *MsgMhfStampcardStamp) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error { m.AckHandle = bf.ReadUint32() m.HR = bf.ReadUint16() - m.GR = bf.ReadUint16() + if _config.ErupeConfig.RealClientMode >= _config.G1 { + m.GR = bf.ReadUint16() + } m.Stamps = bf.ReadUint16() bf.ReadUint16() // Zeroed if _config.ErupeConfig.RealClientMode > _config.Z1 { diff --git a/server/channelserver/handlers.go b/server/channelserver/handlers.go index fb91f096f..7188d8bab 100644 --- a/server/channelserver/handlers.go +++ b/server/channelserver/handlers.go @@ -1049,9 +1049,11 @@ func handleMsgMhfStampcardStamp(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfStampcardStamp) bf := byteframe.NewByteFrame() bf.WriteUint16(pkt.HR) - bf.WriteUint16(pkt.GR) var stamps uint16 _ = s.server.db.QueryRow(`SELECT stampcard FROM characters WHERE id = $1`, s.charID).Scan(&stamps) + if _config.ErupeConfig.RealClientMode >= _config.G1 { + bf.WriteUint16(pkt.GR) + } bf.WriteUint16(stamps) stamps += pkt.Stamps bf.WriteUint16(stamps) diff --git a/server/channelserver/handlers_character.go b/server/channelserver/handlers_character.go index 782ec8190..795fc05e1 100644 --- a/server/channelserver/handlers_character.go +++ b/server/channelserver/handlers_character.go @@ -81,7 +81,7 @@ func getPointers() map[SavePointer]int { pointers[pHR] = 94550 pointers[pGRP] = 94556 pointers[pHouseData] = 94561 - pointers[pBookshelfData] = 103928 + pointers[pBookshelfData] = 89118 // TODO: fix bookshelf data pointer pointers[pGalleryData] = 104064 pointers[pGardenData] = 106424 pointers[pRP] = 106614 @@ -93,7 +93,7 @@ func getPointers() map[SavePointer]int { pointers[pToreData] = 62228 pointers[pHR] = 62550 pointers[pHouseData] = 62561 - pointers[pBookshelfData] = 57118 // This pointer only half works + pointers[pBookshelfData] = 57118 // TODO: fix bookshelf data pointer pointers[pGalleryData] = 72064 pointers[pGardenData] = 74424 pointers[pRP] = 74614 @@ -104,7 +104,7 @@ func getPointers() map[SavePointer]int { pointers[pToreData] = 14228 pointers[pHR] = 14550 pointers[pHouseData] = 14561 - pointers[pBookshelfData] = 9118 // Probably same here + pointers[pBookshelfData] = 9118 // TODO: fix bookshelf data pointer pointers[pGalleryData] = 24064 pointers[pGardenData] = 26424 pointers[pRP] = 26614 diff --git a/server/channelserver/handlers_quest.go b/server/channelserver/handlers_quest.go index 753e59040..a36c8116a 100644 --- a/server/channelserver/handlers_quest.go +++ b/server/channelserver/handlers_quest.go @@ -280,7 +280,7 @@ func makeEventQuest(s *Session, rows *sql.Rows) ([]byte, error) { bf.WriteBool(true) } bf.WriteUint16(0) // Unk - if _config.ErupeConfig.RealClientMode >= _config.G1 { + if _config.ErupeConfig.RealClientMode >= _config.G2 { bf.WriteUint32(mark) } bf.WriteUint16(0) // Unk @@ -578,7 +578,7 @@ func handleMsgMhfEnumerateQuest(s *Session, p mhfpacket.MHFPacket) { tuneValues = temp tuneLimit := 770 - if _config.ErupeConfig.RealClientMode <= _config.F5 { + if _config.ErupeConfig.RealClientMode <= _config.G1 { tuneLimit = 256 } else if _config.ErupeConfig.RealClientMode <= _config.G3 { tuneLimit = 283