From 5f488b67d9ca82b20389cdebf53f0babe8862cc7 Mon Sep 17 00:00:00 2001 From: AlessandroCH Date: Sat, 8 Mar 2025 15:26:54 +0100 Subject: [PATCH] saving player gender --- Campofinale/Database/Database.cs | 4 +++- Campofinale/Packets/Cs/HandleCsLogin.cs | 11 ++++++++++- Campofinale/Packets/Sc/PacketScSyncBaseData.cs | 2 +- Campofinale/Player.cs | 5 ++++- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Campofinale/Database/Database.cs b/Campofinale/Database/Database.cs index 3ef9d80..91b655f 100644 --- a/Campofinale/Database/Database.cs +++ b/Campofinale/Database/Database.cs @@ -42,6 +42,7 @@ namespace Campofinale.Database public List scenes = new(); public Dictionary> bitsets = new(); public PlayerSafeZoneInfo savedSafeZone = new(); + public Gender gender = Gender.GenFemale; } public class Account { @@ -141,7 +142,8 @@ namespace Campofinale.Database noSpawnAnymore = player.noSpawnAnymore, scenes=player.sceneManager.scenes, bitsets=player.bitsetManager.bitsets, - savedSafeZone = player.savedSaveZone + savedSafeZone = player.savedSaveZone, + gender=player.gender, }; UpsertPlayerData(data); } diff --git a/Campofinale/Packets/Cs/HandleCsLogin.cs b/Campofinale/Packets/Cs/HandleCsLogin.cs index bc40444..52b957f 100644 --- a/Campofinale/Packets/Cs/HandleCsLogin.cs +++ b/Campofinale/Packets/Cs/HandleCsLogin.cs @@ -65,9 +65,18 @@ namespace Campofinale.Packets.Cs session.Disconnect(); return; } - session.Load(account.id); + bool exist=session.Load(account.id); rsp.Uid = ""+session.accountId; + if (!exist) + { + rsp.IsFirstLogin = true; + //session.gender = Gender.GenInvalid; + + //session.Send(ScMsgId.ScLogin, rsp); + //session.Send(new PacketScSyncBaseData(session)); + //return; + } session.Send(ScMsgId.ScLogin, rsp); } diff --git a/Campofinale/Packets/Sc/PacketScSyncBaseData.cs b/Campofinale/Packets/Sc/PacketScSyncBaseData.cs index dfb2763..672afa2 100644 --- a/Campofinale/Packets/Sc/PacketScSyncBaseData.cs +++ b/Campofinale/Packets/Sc/PacketScSyncBaseData.cs @@ -20,7 +20,7 @@ namespace Campofinale.Packets.Sc Level = client.level, Exp=client.xp, RoleName = client.nickname, - Gender = Gender.GenFemale, + Gender = client.gender, ShortId="1", }; diff --git a/Campofinale/Player.cs b/Campofinale/Player.cs index 59d1e66..0109fb4 100644 --- a/Campofinale/Player.cs +++ b/Campofinale/Player.cs @@ -89,6 +89,7 @@ namespace Campofinale public string accountId = ""; public string nickname = "Endministrator"; public ulong roleId= 1; + public Gender gender=Gender.GenFemale; public uint level = 20; public uint xp = 0; // @@ -139,7 +140,7 @@ namespace Campofinale { return chars.FindAll(c=> teams[teamIndex].members.Contains(c.guid)); } - public void Load(string accountId) + public bool Load(string accountId) { this.accountId = accountId; PlayerData data = DatabaseManager.db.GetPlayerById(this.accountId); @@ -161,6 +162,7 @@ namespace Campofinale maxDashEnergy = data.maxDashEnergy; curStamina = data.curStamina; nextRecoverTime=data.nextRecoverTime; + if (data.gender > 0) gender = data.gender; LoadCharacters(); mails = DatabaseManager.db.LoadMails(roleId); inventoryManager.Load(); @@ -178,6 +180,7 @@ namespace Campofinale } sceneManager.Load(); factoryManager.Load(); + return (data != null); } public void LoadCharacters() {