From fb3e3c2713b67cbd82ecd3ec567dfb23288b95a9 Mon Sep 17 00:00:00 2001 From: wishu Date: Thu, 16 Jun 2022 15:01:27 +1000 Subject: [PATCH] add support for reading pugi names --- Erupe/server/channelserver/handlers_guild.go | 30 +++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/Erupe/server/channelserver/handlers_guild.go b/Erupe/server/channelserver/handlers_guild.go index 6de6e73af..524832a64 100644 --- a/Erupe/server/channelserver/handlers_guild.go +++ b/Erupe/server/channelserver/handlers_guild.go @@ -58,6 +58,9 @@ type Guild struct { RankRP uint32 `db:"rank_rp"` EventRP uint32 `db:"event_rp"` Comment string `db:"comment"` + PugiName1 string `db:"pugi_name_1"` + PugiName2 string `db:"pugi_name_2"` + PugiName3 string `db:"pugi_name_3"` FestivalColour FestivalColour `db:"festival_colour"` Rank uint16 `db:"rank"` Icon *GuildIcon `db:"icon"` @@ -123,6 +126,9 @@ SELECT leader_id, lc.name as leader_name, comment, + pugi_name_1, + pugi_name_2, + pugi_name_3, festival_colour, CASE WHEN rank_rp <= 48 THEN rank_rp/24 @@ -915,10 +921,26 @@ func handleMsgMhfInfoGuild(s *Session, p mhfpacket.MHFPacket) { bf.WriteBytes([]byte{0x01, 0x02, 0x02}) // Unk bf.WriteUint32(guild.EventRP) - // Pugi's names, probably expected as null until you have them with levels? Null gives them a default japanese name - for i := 0; i < 3; i++ { - bf.WriteUint8(0x1) // Name Length - 1 minimum due to null byte - bf.WriteUint8(0x0) // Name string + if guild.PugiName1 == "" { + bf.WriteUint16(0x0100) + } else { + bf.WriteUint8(uint8(len(guild.PugiName1)+1)) + pugiName := s.clientContext.StrConv.MustEncode(guild.PugiName1) + bf.WriteNullTerminatedBytes(pugiName) + } + if guild.PugiName2 == "" { + bf.WriteUint16(0x0100) + } else { + bf.WriteUint8(uint8(len(guild.PugiName2)+1)) + pugiName := s.clientContext.StrConv.MustEncode(guild.PugiName2) + bf.WriteNullTerminatedBytes(pugiName) + } + if guild.PugiName3 == "" { + bf.WriteUint16(0x0100) + } else { + bf.WriteUint8(uint8(len(guild.PugiName3)+1)) + pugiName := s.clientContext.StrConv.MustEncode(guild.PugiName3) + bf.WriteNullTerminatedBytes(pugiName) } // probably guild pugi properties, should be status, stamina and luck outfits