From 53a3bfcc0f13c78d49b2606ed21144c285b42678 Mon Sep 17 00:00:00 2001 From: Malckyor Date: Thu, 12 May 2022 01:03:23 +0900 Subject: [PATCH 1/2] Added JP shift-jis character support Added JP shift-jis support for character's name in launcher, this should fix JP names. --- Erupe/server/signserver/dsgn_resp.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Erupe/server/signserver/dsgn_resp.go b/Erupe/server/signserver/dsgn_resp.go index 18c370271..bf60110b1 100644 --- a/Erupe/server/signserver/dsgn_resp.go +++ b/Erupe/server/signserver/dsgn_resp.go @@ -7,6 +7,8 @@ import ( "github.com/Andoryuuta/byteframe" "go.uber.org/zap" + "golang.org/x/text/encoding/japanese" + "golang.org/x/text/transform" ) func paddedString(x string, size uint) []byte { @@ -77,13 +79,19 @@ func (s *Session) makeSignInResp(uid int) []byte { } else { bf.WriteUint16(char.HRP) } + + t := japanese.ShiftJIS.NewEncoder() + str_name, _, err := transform.String(t, char.Name) + if err != nil { + } + bf.WriteUint16(char.WeaponType) // Weapon, 0-13. bf.WriteUint32(char.LastLogin) // Last login date, unix timestamp in seconds. bf.WriteBool(char.IsFemale) // Sex, 0=male, 1=female. bf.WriteBool(char.IsNewCharacter) // Is new character, 1 replaces character name with ?????. bf.WriteUint8(0) // Old GR bf.WriteBool(true) // Use uint16 GR, no reason not to - bf.WriteBytes(paddedString(char.Name, 16)) // Character name + bf.WriteBytes(paddedString(str_name, 16)) // Character name bf.WriteBytes(paddedString(char.UnkDescString, 32)) // unk str bf.WriteUint16(char.GR) bf.WriteUint16(0) // Unk From d6f0e1d55e731824586377a72e6f817228d86021 Mon Sep 17 00:00:00 2001 From: Malckyor Date: Thu, 12 May 2022 03:45:18 +0900 Subject: [PATCH 2/2] Update Erupe/server/signserver/dsgn_resp.go Co-authored-by: Yslan Ramos --- Erupe/server/signserver/dsgn_resp.go | 1 + 1 file changed, 1 insertion(+) diff --git a/Erupe/server/signserver/dsgn_resp.go b/Erupe/server/signserver/dsgn_resp.go index bf60110b1..958f6db6e 100644 --- a/Erupe/server/signserver/dsgn_resp.go +++ b/Erupe/server/signserver/dsgn_resp.go @@ -83,6 +83,7 @@ func (s *Session) makeSignInResp(uid int) []byte { t := japanese.ShiftJIS.NewEncoder() str_name, _, err := transform.String(t, char.Name) if err != nil { + str_name = char.Name } bf.WriteUint16(char.WeaponType) // Weapon, 0-13.