saving player gender

This commit is contained in:
AlessandroCH 2025-03-08 15:26:54 +01:00
parent 69d2dbaa0e
commit 5f488b67d9
4 changed files with 18 additions and 4 deletions

View File

@ -42,6 +42,7 @@ namespace Campofinale.Database
public List<Scene> scenes = new();
public Dictionary<int, List<int>> 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);
}

View File

@ -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);
}

View File

@ -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",
};

View File

@ -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()
{