update event data, change protobuf, improve db format

This commit is contained in:
Mikhail Tyukin
2025-06-23 11:38:18 +04:00
parent 0133f7f55b
commit 7955c2f4db
44 changed files with 228847 additions and 140323 deletions

View File

@@ -24,20 +24,9 @@ namespace EpinelPS.LobbyServer.LobbyUser
response.OutpostBattleLevel = user.OutpostBattleLevel;
response.OutpostBattleTime = new NetOutpostBattleTime() { MaxBattleTime = 864000000000, MaxOverBattleTime = 12096000000000, BattleTime = battleTimeMs };
response.JukeboxV2 = new NetUserJukeboxDataV2() { CommandBgm = new NetJukeboxBgm() { JukeboxTableId = user.CommanderMusic.TableId, Type = NetJukeboxBgmType.NetJukeboxBgmTypeJukeboxTableId, Location = NetJukeboxLocation.NetJukeboxLocationCommanderRoom } };
response.JukeboxV2 = new NetUserJukeboxDataV2() { CommandBgm = new NetJukeboxBgm() { JukeboxTableId = user.CommanderMusic.TableId, Type = NetJukeboxBgmType.JukeboxTableId, Location = NetJukeboxLocation.CommanderRoom } };
// Add default slot data
if (user.RepresentationTeamData.Slots.Count == 0)
{
user.RepresentationTeamData = new NetWholeUserTeamData() { TeamNumber = 1, Type = 2 };
user.RepresentationTeamData.Slots.Add(new NetWholeTeamSlot() { Slot = 1 });
user.RepresentationTeamData.Slots.Add(new NetWholeTeamSlot() { Slot = 2 });
user.RepresentationTeamData.Slots.Add(new NetWholeTeamSlot() { Slot = 3 });
user.RepresentationTeamData.Slots.Add(new NetWholeTeamSlot() { Slot = 4 });
user.RepresentationTeamData.Slots.Add(new NetWholeTeamSlot() { Slot = 5 });
JsonDb.Save();
}
response.RepresentationTeam = user.RepresentationTeamData;
foreach (var item in user.Currency)
{
@@ -46,7 +35,7 @@ namespace EpinelPS.LobbyServer.LobbyUser
foreach (var item in user.Characters)
{
response.Character.Add(new NetUserCharacterData() { Default = new() { Csn = item.Csn, Skill1Lv = item.Skill1Lvl, Skill2Lv = item.Skill2Lvl, CostumeId = item.CostumeId, Level = user.GetCharacterLevel(item.Csn, item.Level), Grade = item.Grade, Tid = item.Tid, UltiSkillLv = item.UltimateLevel}, IsSynchro = user.GetSynchro(item.Csn) });
response.Character.Add(new NetUserCharacterData() { Default = new() { Csn = item.Csn, Skill1Lv = item.Skill1Lvl, Skill2Lv = item.Skill2Lvl, CostumeId = item.CostumeId, Lv = user.GetCharacterLevel(item.Csn, item.Level), Grade = item.Grade, Tid = item.Tid, UltiSkillLv = item.UltimateLevel}, IsSynchro = user.GetSynchro(item.Csn) });
}
foreach (var item in NetUtils.GetUserItems(user))

View File

@@ -26,7 +26,7 @@ namespace EpinelPS.LobbyServer.LobbyUser
{
response.Currency.Add(new NetUserCurrencyData() { Type = (int)item.Key, Value = item.Value });
}
response.RepresentationTeam = user.RepresentationTeamData;
response.RepresentationTeam = NetUtils.GetDisplayedTeam(user);
response.LastClearedNormalMainStageId = user.LastNormalStageCleared;
@@ -39,8 +39,8 @@ namespace EpinelPS.LobbyServer.LobbyUser
response.User.Tutorials.Add(new NetTutorialData() { GroupId = groupId, LastClearedTid = item.Key, LastClearedVersion = version });
}
response.CommanderRoomJukeboxBgm = new NetJukeboxBgm() { JukeboxTableId = user.CommanderMusic.TableId, Type = NetJukeboxBgmType.NetJukeboxBgmTypeJukeboxTableId, Location = NetJukeboxLocation.NetJukeboxLocationCommanderRoom };
response.LobbyJukeboxBgm = new NetJukeboxBgm() { JukeboxTableId = user.LobbyMusic.TableId, Type = NetJukeboxBgmType.NetJukeboxBgmTypeJukeboxTableId, Location = NetJukeboxLocation.NetJukeboxLocationLobby };
response.CommanderRoomJukeboxBgm = new NetJukeboxBgm() { JukeboxTableId = user.CommanderMusic.TableId, Type = NetJukeboxBgmType.JukeboxTableId, Location = NetJukeboxLocation.CommanderRoom };
response.LobbyJukeboxBgm = new NetJukeboxBgm() { JukeboxTableId = user.LobbyMusic.TableId, Type = NetJukeboxBgmType.JukeboxTableId, Location = NetJukeboxLocation.Lobby };
await WriteDataAsync(response);
}

View File

@@ -14,22 +14,25 @@ namespace EpinelPS.LobbyServer.LobbyUser
if (user != null)
{
response.Data = new NetProfileData();
response.Data.User = LobbyHandler.CreateWholeUserDataFromDbUser(user);
response.Data.LastActionAt = DateTimeOffset.UtcNow.Ticks;
response.Data = new NetProfileData
{
User = LobbyHandler.CreateWholeUserDataFromDbUser(user),
LastActionAt = DateTimeOffset.UtcNow.Ticks,
};
response.Data.CharacterCount.Add(new NetCharacterCount() { Count = user.Characters.Count });
response.Data.InfraCoreLv = user.InfraCoreLvl;
response.Data.LastCampaignNormalStageId = user.LastNormalStageCleared;
response.Data.LastCampaignHardStageId = user.LastHardStageCleared;
response.Data.OutpostOpenState = user.MainQuestData.ContainsKey(25);
foreach (var item in user.RepresentationTeamData.Slots)
for (int i = 0; i < user.RepresentationTeamDataNew.Length; i++)
{
var c = user.GetCharacterBySerialNumber(item.Csn);
long csn = user.RepresentationTeamDataNew[i];
var c = user.GetCharacterBySerialNumber(csn);
if (c != null)
{
response.Data.ProfileTeam.Add(new NetProfileTeamSlot() { Slot = item.Slot, Default = new() { CostumeId = c.CostumeId, Csn = c.Csn, Grade = c.Grade, Level = c.Level, Skill1Lv = c.Skill1Lvl, Skill2Lv = c.Skill2Lvl, Tid = c.Tid, UltiSkillLv = c.UltimateLevel } });
response.Data.ProfileTeam.Add(new NetProfileTeamSlot() { Slot = i + 1, Default = new() { CostumeId = c.CostumeId, Csn = c.Csn, Grade = c.Grade, Lv = c.Level, Skill1Lv = c.Skill1Lvl, Skill2Lv = c.Skill2Lvl, Tid = c.Tid, UltiSkillLv = c.UltimateLevel } });
}
}
}

View File

@@ -16,7 +16,7 @@ namespace EpinelPS.LobbyServer.LobbyUser
foreach (var titleId in userTitleRecords.Keys)
{
r.UserTitleList.Add(new NetUserTitle() { UserTitleId = titleId });
r.UserTitleList.Add(new ResGetUserTitleList.Types.NetUserTitle() { UserTitleId = titleId });
}
await WriteDataAsync(r);

View File

@@ -13,7 +13,7 @@ namespace EpinelPS.LobbyServer.LobbyUser
user.Nickname = req.Nickname;
var response = new ResSetNickname();
response.Result = SetNicknameResult.SetNicknameResultOkay;
response.Result = SetNicknameResult.Okay;
response.Nickname = req.Nickname;
JsonDb.Save();

View File

@@ -14,7 +14,7 @@ namespace EpinelPS.LobbyServer.LobbyUser
var response = new ResSetNicknameFree
{
Result = SetNicknameResult.SetNicknameResultOkay,
Result = SetNicknameResult.Okay,
Nickname = req.Nickname
};

View File

@@ -14,7 +14,7 @@ namespace EpinelPS.LobbyServer.LobbyUser
var response = new ResSetNicknameInTutorial
{
Result = SetNicknameResult.SetNicknameResultOkay,
Result = SetNicknameResult.Okay,
Nickname = req.Nickname
};

View File

@@ -15,15 +15,11 @@ namespace EpinelPS.LobbyServer.LobbyUser
{
var req = await ReadData<ReqSetProfileTeam>();
var user = GetUser();
user.RepresentationTeamData = new NetWholeUserTeamData();
user.RepresentationTeamData.TeamNumber = req.Team.TeamNumber;
foreach (var item in req.Team.Slots)
for (int i = 0; i < req.Team.Slots.Count - 1; i++)
{
var character = user.GetCharacterBySerialNumber(item.Value);
if (character != null)
{
user.RepresentationTeamData.Slots.Add(new NetWholeTeamSlot() { Csn = item.Value, Slot = item.Slot, CostumeId = character.CostumeId, Level = character.Level, Tid = character.Tid });
}
var slot = req.Team.Slots[i];
user.RepresentationTeamDataNew[i] = slot.Value;
}
JsonDb.Save();