Fix stage completion save

This commit is contained in:
Mikhail Thompson
2024-06-27 08:31:41 +03:00
parent feaa73ecf4
commit 508672bbaf
7 changed files with 93 additions and 10 deletions

View File

@@ -10,8 +10,8 @@ namespace ProtobufViewUtil
{
Console.WriteLine("Hello, World!");
ResGetScenarioList s = new ResGetScenarioList();
var inn = File.ReadAllBytes(@"C:\NIKKE\NIKKE\game\ses1\output-49");
ResGetStageData s = new ResGetStageData();
var inn = File.ReadAllBytes(@"C:\Users\Misha\Downloads\getstageinfo2");
s.MergeFrom(inn);
Console.WriteLine(s.ToString());
var outt = s.ToByteArray();

View File

@@ -21,7 +21,7 @@ namespace nksrv.LobbyServer.Msgs.Stage
{
foreach (var stages in fields.Value.CompletedStages)
{
response.ClearedStageIds.Add(stages.StageId);
// response.ClearedStageIds.Add(stages.StageId);
}
}

View File

@@ -32,7 +32,12 @@ namespace nksrv.LobbyServer.Msgs.User
response.RepresentationTeam.Slots.Add(new NetWholeTeamSlot() { Slot = 3 });
response.RepresentationTeam.Slots.Add(new NetWholeTeamSlot() { Slot = 4 });
response.RepresentationTeam.Slots.Add(new NetWholeTeamSlot() { Slot = 5 });
response.Currency.Add(new NetUserCurrencyData() { Type = 6100, Value = 2 });
foreach (var item in user.Currency)
{
response.Currency.Add(new NetUserCurrencyData() { Type = (int)item.Key, Value = item.Value });
}
response.LastClearedNormalMainStageId = user.LastStageCleared;
//var tTeams = new NetUserTeamData();

View File

@@ -8,9 +8,17 @@ namespace nksrv.LobbyServer.Msgs.User
protected override async Task HandleAsync()
{
var req = await ReadData<ReqGetContentsOpenData>();
var user = GetUser();
var response = new ResGetContentsOpenData();
foreach (var field in user.FieldInfo.Values)
{
foreach (var stage in field.CompletedStages)
{
response.ClearStageList.Add(stage.StageId);
}
}
WriteData(response);
}
}

View File

@@ -12,10 +12,30 @@ namespace nksrv.LobbyServer.Msgs.User
{
protected override async Task HandleAsync()
{
var req = await ReadData<GetUserDataRequest>();
var req = await ReadData<ReqGetUserData>();
var response = new UserDataResponse();
var response = new ResGetUserData();
var user = GetUser();
response.User = new NetUserData();
response.User.Lv = 1;
response.User.CommanderRoomJukebox = 5;
response.User.CostumeLv = 1;
response.User.Frame = 1;
response.User.Icon = 39900;
response.User.LobbyJukebox = 2;
response.ResetHour = 20;
response.OutpostBattleTime = new NetOutpostBattleTime() { MaxBattleTime = 864000000000, MaxOverBattleTime = 12096000000000 };
response.IsSimple = req.IsSimple;
foreach (var item in user.Currency)
{
response.Currency.Add(new NetUserCurrencyData() { Type = (int)item.Key, Value = item.Value });
}
response.LastClearedNormalMainStageId = user.LastStageCleared;
WriteData(response);
}

View File

@@ -200,11 +200,28 @@ message EnterServerResponse {
NetLegacyUserIdentifier identifier = 100;
}
message GetUserDataRequest {
message ReqGetUserData {
bool IsSimple = 1;
}
message UserDataResponse {
message ResGetUserData {
NetUserData user = 3;
repeated NetUserCurrencyData currency = 4;
int32 lastClearedNormalMainStageId = 8;
int32 lastClearedHardMainStageId = 9;
int32 lastClearedMod = 10;
int64 gsn = 12;
NetWholeUserTeamData representationTeam = 13;
int32 synchroLv = 14;
int32 costumeCount = 15;
repeated NetTimeReward timeRewardBuffs = 27;
repeated int32 clearLessons = 28;
NetOutpostBattleLevel outpostBattleLevel = 31;
int64 battleTime = 32;
int64 maxBattleTime = 33;
repeated int32 dispatchClearCountList = 34;
int32 resetHour = 35;
bool isSimple = 36;
NetOutpostBattleTime outpostBattleTime = 37;
}
message ReqGetContentsOpenData {
@@ -1016,4 +1033,33 @@ message ResSetNickname {
SetNicknameResult result = 1;
string nickname = 2;
repeated NetUserCurrencyData currencies = 3;
}
enum CurrencyType {
NoneCurrency = 0;
UserExp = 1;
ChargeCash = 98;
FreeCash = 99;
CharacterExp = 1000;
Gold = 2000;
CharacterExp2 = 3000;
Friendship_Point = 4000;
ArenaChip = 5000;
Char_Premium_Ticket = 5100;
Char_Customize_Ticket = 5200;
Char_Corporation_Ticket = 5300;
Arena_Ticket = 6001;
_2nd_Arena_Ticket = 6002;
InterceptTicket2 = 6003;
ContentStamina = 6100;
RecycleRoomPoint = 6200;
InfraCoreEnergy = 7000;
RaptureParts = 8000;
DissolutionPoint = 9000;
InApp = 9999;
GuildCoin = 10000;
SilverMileageTicket = 11000;
GoldMileageTicket = 12000;
SimulationRoomPoint = 13000;
CharacterSkillReset_Ticket = 14000;
}

View File

@@ -28,6 +28,7 @@ namespace nksrv.Utils
public bool BossEntered = false;
public NetworkPosition teamPosition = new();
}
public class User
{
// User info
@@ -44,6 +45,9 @@ namespace nksrv.Utils
public List<string> CompletedScenarios = new();
public Dictionary<int, FieldInfo> FieldInfo = new();
public Dictionary<string, string> MapJson = new();
public Dictionary<CurrencyType, long> Currency = new Dictionary<CurrencyType, long>() {
{ CurrencyType.ContentStamina, 2}
};
}
public class CoreInfo
{