From 563a174b2a442f957903848fa10be1cc12cf81a7 Mon Sep 17 00:00:00 2001 From: thexeondev <149735250+thexeondev@users.noreply.github.com> Date: Thu, 4 Jan 2024 23:08:29 +0300 Subject: [PATCH] Unlock scene points & areas --- .../Controllers/SceneController.cs | 34 +++++++++++++++++++ .../Game/Scene/SceneManager.cs | 1 + 2 files changed, 35 insertions(+) diff --git a/NahidaImpact.Gameserver/Controllers/SceneController.cs b/NahidaImpact.Gameserver/Controllers/SceneController.cs index 0a00101..5902ee3 100644 --- a/NahidaImpact.Gameserver/Controllers/SceneController.cs +++ b/NahidaImpact.Gameserver/Controllers/SceneController.cs @@ -1,5 +1,6 @@ using NahidaImpact.Gameserver.Controllers.Attributes; using NahidaImpact.Gameserver.Controllers.Result; +using NahidaImpact.Gameserver.Game; using NahidaImpact.Gameserver.Game.Scene; using NahidaImpact.Protocol; @@ -11,6 +12,39 @@ internal class SceneController : ControllerBase // TODO: Scene management, Entity management!!! public const uint WeaponEntityId = 100663300; + [NetCommand(CmdType.GetScenePointReq)] + public ValueTask OnGetScenePointReq(SceneManager sceneManager, Player player) + { + GetScenePointRsp rsp = new() + { + SceneId = sceneManager.CurrentSceneId, + BelongUid = player.Uid + }; + + for (uint i = 1; i <= 777; i++) + { + rsp.UnlockedPointList.Add(i); + } + + return ValueTask.FromResult(Response(CmdType.GetScenePointRsp, rsp)); + } + + [NetCommand(CmdType.GetSceneAreaReq)] + public ValueTask OnGetSceneAreaReq(SceneManager sceneManager) + { + GetSceneAreaRsp rsp = new() + { + SceneId = sceneManager.CurrentSceneId + }; + + for (uint i = 1; i <= 20; i++) + { + rsp.AreaIdList.Add(i); + } + + return ValueTask.FromResult(Response(CmdType.GetSceneAreaRsp, rsp)); + } + [NetCommand(CmdType.PostEnterSceneReq)] public async ValueTask OnPostEnterSceneReq(SceneManager sceneManager) { diff --git a/NahidaImpact.Gameserver/Game/Scene/SceneManager.cs b/NahidaImpact.Gameserver/Game/Scene/SceneManager.cs index 1bf5514..1981197 100644 --- a/NahidaImpact.Gameserver/Game/Scene/SceneManager.cs +++ b/NahidaImpact.Gameserver/Game/Scene/SceneManager.cs @@ -11,6 +11,7 @@ namespace NahidaImpact.Gameserver.Game.Scene; internal class SceneManager(NetSession session, Player player, EntityManager entityManager, EntityFactory entityFactory, BinDataCollection binData) { public uint EnterToken { get; private set; } + public uint CurrentSceneId => _sceneId; private readonly BinDataCollection _binData = binData;