From 6f8497e60b5a4b454c63800fda5aad2ac46e4822 Mon Sep 17 00:00:00 2001 From: SELEKCJONER <136343482+SELEKCJONER@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:47:01 +0200 Subject: [PATCH] Add intercept support (#14) * Add files via upload --------- Co-authored-by: Mikhail --- .../Msgs/Intercept/GetInterceptData.cs | 10 +++- .../Msgs/Intercept/InterceptCheck.cs | 26 +++++++++ .../Msgs/Intercept/InterceptClear.cs | 29 ++++++++++ .../Msgs/Intercept/InterceptEnter.cs | 23 ++++++++ .../Msgs/Intercept/InterceptFastClear.cs | 25 ++++++++ nksrv/Protos/intercept.proto | 58 ++++++++++++++++++- 6 files changed, 167 insertions(+), 4 deletions(-) create mode 100644 nksrv/LobbyServer/Msgs/Intercept/InterceptCheck.cs create mode 100644 nksrv/LobbyServer/Msgs/Intercept/InterceptClear.cs create mode 100644 nksrv/LobbyServer/Msgs/Intercept/InterceptEnter.cs create mode 100644 nksrv/LobbyServer/Msgs/Intercept/InterceptFastClear.cs diff --git a/nksrv/LobbyServer/Msgs/Intercept/GetInterceptData.cs b/nksrv/LobbyServer/Msgs/Intercept/GetInterceptData.cs index 4100aa9..fe1702f 100644 --- a/nksrv/LobbyServer/Msgs/Intercept/GetInterceptData.cs +++ b/nksrv/LobbyServer/Msgs/Intercept/GetInterceptData.cs @@ -15,9 +15,13 @@ namespace nksrv.LobbyServer.Msgs.Intercept { var req = await ReadData(); - var response = new ResGetInterceptData(); - - // TODO implement + var response = new ResGetInterceptData + { + NormalInterceptGroup = 1, + SpecialInterceptId = 1, + TicketCount = 5, + MaxTicketCount = 10 + }; await WriteDataAsync(response); } diff --git a/nksrv/LobbyServer/Msgs/Intercept/InterceptCheck.cs b/nksrv/LobbyServer/Msgs/Intercept/InterceptCheck.cs new file mode 100644 index 0000000..5384f50 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Intercept/InterceptCheck.cs @@ -0,0 +1,26 @@ +using nksrv.Net; +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Intercept +{ + [PacketPath("/intercept/check")] + public class CheckClearInterceptToday : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResCheckClearInterceptToday + { + Clear = true + }; + + await WriteDataAsync(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Intercept/InterceptClear.cs b/nksrv/LobbyServer/Msgs/Intercept/InterceptClear.cs new file mode 100644 index 0000000..37eb27d --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Intercept/InterceptClear.cs @@ -0,0 +1,29 @@ +using nksrv.Net; +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Intercept +{ + [PacketPath("/intercept/clear")] + public class ClearInterceptData : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResClearIntercept + { + Intercept = 1, + InterceptId = 1, + TicketCount = 5, + MaxTicketCount = 10 + }; + + await WriteDataAsync(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Intercept/InterceptEnter.cs b/nksrv/LobbyServer/Msgs/Intercept/InterceptEnter.cs new file mode 100644 index 0000000..6c87f26 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Intercept/InterceptEnter.cs @@ -0,0 +1,23 @@ +using nksrv.Net; +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Intercept +{ + [PacketPath("/intercept/enter")] + public class EnterInterceptData : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResEnterIntercept(); + + await WriteDataAsync(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Intercept/InterceptFastClear.cs b/nksrv/LobbyServer/Msgs/Intercept/InterceptFastClear.cs new file mode 100644 index 0000000..1f11676 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Intercept/InterceptFastClear.cs @@ -0,0 +1,25 @@ +using nksrv.Net; +using nksrv.Utils; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Intercept +{ + [PacketPath("/intercept/fastclear")] + public class FastClearInterceptData : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResFastClearIntercept + { + Intercept = 1, + InterceptId = 1, + TicketCount = 3, + MaxTicketCount = 10 + }; + + await WriteDataAsync(response); + } + } +} diff --git a/nksrv/Protos/intercept.proto b/nksrv/Protos/intercept.proto index b3b8248..4c3a1e6 100644 --- a/nksrv/Protos/intercept.proto +++ b/nksrv/Protos/intercept.proto @@ -12,4 +12,60 @@ message ResGetInterceptData { int32 SpecialInterceptId = 2; int32 TicketCount = 3; int32 MaxTicketCount = 4; -} \ No newline at end of file +} + + +message ReqFastClearIntercept { + int32 Intercept = 1; + int32 InterceptId = 2; +} + +message ResFastClearIntercept { + int32 Intercept = 1; + int32 InterceptId = 2; + int32 TicketCount = 3; + int32 MaxTicketCount = 4; + NetRewardData NormalReward = 5; + NetRewardData BonusReward = 6; + NetRewardData NormalRewardByRewardUpEvent = 7; + NetRewardData BonusRewardByRewardUpEvent = 8; +} + +message ReqEnterIntercept { + int32 Intercept = 2; + int32 InterceptId = 3; + int32 TeamNumber = 4; + NetAntiCheatBattleTLogAdditionalInfo AnticheatAdditionalInfo = 5; +} +message ResEnterIntercept {} + + +message ReqClearIntercept { + int32 intercept = 2; + int32 InterceptID = 3; + int64 Damage = 4; + int32 TeamNumber = 5; + int32 BattleResult = 6; + NetAntiCheatBattleData AnticheatBattleData = 7; + NetAntiCheatBattleTLogAdditionalInfo AdditionalInfo = 8; +} + +message ResClearIntercept { + int32 Intercept = 1; + int32 InterceptId = 2; + int32 TicketCount = 3; + int32 MaxTicketCount = 4; + NetRewardData NormalReward = 5; + NetRewardData BonusReward = 6; + NetRewardData NormalRewardByRewardUpEvent = 7; + NetRewardData BonusRewardByRewardUpEvent = 8; +} + +message ReqCheckClearInterceptToday { + int32 InterceptType = 1; + int32 InterceptId = 2; +} + +message ResCheckClearInterceptToday { + bool Clear = 1; +}