From 5da6892d76fae737e8e9487600a5db9f3811d819 Mon Sep 17 00:00:00 2001 From: Naruse <71993948+DevilProMT@users.noreply.github.com> Date: Sat, 14 Jun 2025 21:23:44 +0800 Subject: [PATCH] fix: valk tutorial stage --- ...lerGeneralActivityGetScoreRewardInfoReq.cs | 14 +++++ .../PacketGeneralActivityGetMainInfoRsp.cs | 30 ++++------- .../PacketGeneralActivityGetScheduleRsp.cs | 8 +++ ...ketGeneralActivityGetScoreRewardInfoRsp.cs | 25 +++++++++ .../Send/Stage/PacketGetStageDataRsp.cs | 54 ++++--------------- 5 files changed, 67 insertions(+), 64 deletions(-) create mode 100644 GameServer/Server/Packet/Recv/Activity/HandlerGeneralActivityGetScoreRewardInfoReq.cs create mode 100644 GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetScoreRewardInfoRsp.cs diff --git a/GameServer/Server/Packet/Recv/Activity/HandlerGeneralActivityGetScoreRewardInfoReq.cs b/GameServer/Server/Packet/Recv/Activity/HandlerGeneralActivityGetScoreRewardInfoReq.cs new file mode 100644 index 0000000..c0f51dd --- /dev/null +++ b/GameServer/Server/Packet/Recv/Activity/HandlerGeneralActivityGetScoreRewardInfoReq.cs @@ -0,0 +1,14 @@ +using KianaBH.GameServer.Server.Packet.Send.Activity; +using KianaBH.Proto; + +namespace KianaBH.GameServer.Server.Packet.Recv.Activity; + +[Opcode(CmdIds.GeneralActivityGetScoreRewardInfoReq)] +public class HandlerGeneralActivityGetScoreRewardInfoReq : Handler +{ + public override async Task OnHandle(Connection connection, byte[] header, byte[] data) + { + var req = GeneralActivityGetScoreRewardInfoReq.Parser.ParseFrom(data); + await connection.SendPacket(new PacketGeneralActivityGetScoreRewardInfoRsp(req.ActivityIdList)); + } +} diff --git a/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetMainInfoRsp.cs b/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetMainInfoRsp.cs index cda404f..0695240 100644 --- a/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetMainInfoRsp.cs +++ b/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetMainInfoRsp.cs @@ -2,6 +2,7 @@ using Google.Protobuf.Collections; using KianaBH.Data; using KianaBH.KcpSharp; using KianaBH.Proto; +using KianaBH.Util.Extensions; namespace KianaBH.GameServer.Server.Packet.Send.Activity; @@ -19,30 +20,19 @@ public class PacketGeneralActivityGetMainInfoRsp : BasePacket GeneralBasicInfo = new GeneralActivityBasicInfo { ActivityId = activityId, - ScheduleId = series?.Series ?? 0, - SeriesActivityId ={ activityId } + //ScheduleId = series?.Series ?? 0, + //SeriesActivityId ={ activityId } } }; - GameData.GeneralActivityStageGroupData - .TryGetValue((int)activityId, out var activityStage); - - if (activityStage != null) + activity.ActivityStage = new GeneralActivityStage { - activity.ActivityStage = new GeneralActivityStage - { - StageGroupScheduleList = - { - activityStage.Select(x => new GeneralActivityStageGroupScheduleInfo - { - BeginTime = 1593223200, - EndTime = 1913140799, - StageGroupId = x.StageGroupId - }) - - } - }; - } + EnterTimes = 1, + ExchangeTimes = 1, + }; + + + return activity; }); diff --git a/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetScheduleRsp.cs b/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetScheduleRsp.cs index 028538f..a7d48c9 100644 --- a/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetScheduleRsp.cs +++ b/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetScheduleRsp.cs @@ -1,3 +1,4 @@ +using System.Security.Cryptography; using KianaBH.Data; using KianaBH.KcpSharp; using KianaBH.Proto; @@ -36,6 +37,13 @@ public class PacketGeneralActivityGetScheduleRsp : BasePacket EndTime = time, }); } + proto.ScheduleList.Add(new GeneralActivityScheduleInfo + { + ActivityId = 50000006, + SettleTime = time, + EndTime = time, + EndDayTime = time + }); SetData(proto); } diff --git a/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetScoreRewardInfoRsp.cs b/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetScoreRewardInfoRsp.cs new file mode 100644 index 0000000..c952bde --- /dev/null +++ b/GameServer/Server/Packet/Send/Activity/PacketGeneralActivityGetScoreRewardInfoRsp.cs @@ -0,0 +1,25 @@ +using Google.Protobuf.Collections; +using KianaBH.KcpSharp; +using KianaBH.Proto; + +namespace KianaBH.GameServer.Server.Packet.Send.Activity; + +public class PacketGeneralActivityGetScoreRewardInfoRsp : BasePacket +{ + public PacketGeneralActivityGetScoreRewardInfoRsp(RepeatedField ActivityIdList) : base(CmdIds.GeneralActivityGetScoreRewardInfoRsp) + { + var proto = new GeneralActivityGetScoreRewardInfoRsp + { + ScoreInfoList = + { + ActivityIdList?.Select(id => new GeneralActivityScoreRewardInfo + { + ActivityId = id, + CurScore = 0 + }) + } + }; + + SetData(proto); + } +} diff --git a/GameServer/Server/Packet/Send/Stage/PacketGetStageDataRsp.cs b/GameServer/Server/Packet/Send/Stage/PacketGetStageDataRsp.cs index fee0944..7c41013 100644 --- a/GameServer/Server/Packet/Send/Stage/PacketGetStageDataRsp.cs +++ b/GameServer/Server/Packet/Send/Stage/PacketGetStageDataRsp.cs @@ -9,55 +9,21 @@ public class PacketGetStageDataRsp : BasePacket { public PacketGetStageDataRsp(RepeatedField StageIdList) : base(CmdIds.GetStageDataRsp) { - var isAll = StageIdList.Count == 1 && StageIdList[0] == 0; - var stageData = GameData.StageDataMain; - - var stageList = isAll - ? stageData.Values.Select(stage => new Proto.Stage - { - Id = stage.LevelId, - Progress = 1, - ChallengeIndexList = - { - stage.ChallengeList.Count == 3 - ? new uint[] { 0, 1, 2 } - : new uint[] { 0 } - }, - IsDone = true, - MaxRank = 1 - }) - : stageData.Values - .Where(stage => StageIdList.Contains(stage.LevelId)) - .Select(stage => new Proto.Stage - { - Id = stage.LevelId, - Progress = 1, - ChallengeIndexList = - { - stage.ChallengeList.Count == 3 - ? new uint[] { 0, 1, 2 } - : new uint[] { 0 } - }, - IsDone = true, - MaxRank = 1 - }); - var proto = new GetStageDataRsp { - IsAll = isAll, - FinishedChapterList = { Enumerable.Range(1, 43).Select(i => (uint)i) }, - EventDataList = + IsAll = true, + StageList = { - new StageEventData + stageData.Values.Select(stage => new Proto.Stage { - BeginTime = 1729108800, - EndTime = 1990911600, - ChapterId = 200, - UnlockLevel = 30 - } - }, - StageList = { } + Id = stage.LevelId, + Progress = stage.MaxProgress, + EnterTimes = 0, + ChallengeIndexList = { stage.ChallengeList.Count == 3 ? new uint[] { 0, 1, 2 } : new uint[0] }, + IsDone = true, + }).ToList(), + } }; SetData(proto);