mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
feat: era flipper saved data
This commit is contained in:
@@ -30,6 +30,16 @@ public class SceneData : BaseDatabaseDataHelper
|
||||
[SugarColumn(IsJson = true, ColumnDataType = "TEXT")]
|
||||
public Dictionary<int, List<SceneMarkedChestData>> MarkedChestData { get; set; } =
|
||||
[]; // Dictionary<FuncId, List<ScenePropTimelineData>>
|
||||
|
||||
[SugarColumn(IsJson = true, ColumnDataType = "TEXT")]
|
||||
public Dictionary<int, Dictionary<int, Dictionary<string, int>>> GroupPropertyData { get; set; } =
|
||||
[]; // Dictionary<FloorId, Dictionary<GroupId, Dictionary<Key, Value>>>
|
||||
|
||||
[SugarColumn(IsJson = true, ColumnDataType = "TEXT")]
|
||||
public SceneEraFlipperData EraFlipperData { get; set; } = new();
|
||||
|
||||
[SugarColumn(IsJson = true, ColumnDataType = "TEXT")]
|
||||
public SceneRotatableRegionData RotatableRegionData { get; set; } = new();
|
||||
}
|
||||
|
||||
public class ScenePropData
|
||||
@@ -38,6 +48,20 @@ public class ScenePropData
|
||||
public PropStateEnum State { get; set; }
|
||||
}
|
||||
|
||||
public class SceneEraFlipperData
|
||||
{
|
||||
public int CurRegionId { get; set; }
|
||||
public Dictionary<int, int> RegionState { get; set; } = []; // Dictionary<RegionId, State>
|
||||
}
|
||||
|
||||
public class SceneRotatableRegionData
|
||||
{
|
||||
public int CurRegionId { get; set; }
|
||||
public int Energy { get; set; }
|
||||
public int MaxEnergy { get; set; }
|
||||
public int RotateValue { get; set; }
|
||||
}
|
||||
|
||||
public class ScenePropTimelineData
|
||||
{
|
||||
public bool BoolValue { get; set; }
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using EggLink.DanhengServer.GameServer.Game.Scene.Component;
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.EraFlipper;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
@@ -11,6 +12,15 @@ public class HandlerEnterEraFlipperRegionCsReq : Handler
|
||||
{
|
||||
var req = EnterEraFlipperRegionCsReq.Parser.ParseFrom(data);
|
||||
|
||||
var component = connection.Player!.SceneInstance!.GetComponent<EraFlipperSceneComponent>();
|
||||
if (component == null)
|
||||
{
|
||||
await connection.SendPacket(new PacketEnterEraFlipperRegionScRsp(Retcode.RetAdventureMapNotExist));
|
||||
return;
|
||||
}
|
||||
|
||||
component.EnterEraFlipperRegion((int)req.EraFlipperRegionId, (int)req.State);
|
||||
|
||||
await connection.SendPacket(new PacketEnterEraFlipperRegionScRsp(req.EraFlipperRegionId));
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.EraFlipper;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.EraFlipper;
|
||||
|
||||
@@ -9,8 +8,6 @@ public class HandlerGetEraFlipperDataCsReq : Handler
|
||||
{
|
||||
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
|
||||
{
|
||||
var req = GetEraFlipperDataCsReq.Parser.ParseFrom(data);
|
||||
|
||||
await connection.SendPacket(new PacketGetEraFlipperDataScRsp(connection.Player!));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using EggLink.DanhengServer.GameServer.Game.Scene.Component;
|
||||
using EggLink.DanhengServer.GameServer.Server.Packet.Send.EraFlipper;
|
||||
using EggLink.DanhengServer.Kcp;
|
||||
using EggLink.DanhengServer.Proto;
|
||||
|
||||
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.EraFlipper;
|
||||
|
||||
[Opcode(CmdIds.ResetEraFlipperDataCsReq)]
|
||||
public class HandlerResetEraFlipperDataCsReq : Handler
|
||||
{
|
||||
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
|
||||
{
|
||||
var req = ResetEraFlipperDataCsReq.Parser.ParseFrom(data);
|
||||
|
||||
var component = connection.Player!.SceneInstance!.GetComponent<EraFlipperSceneComponent>();
|
||||
if (component == null)
|
||||
{
|
||||
await connection.SendPacket(new PacketResetEraFlipperDataScRsp(Retcode.RetAdventureMapNotExist));
|
||||
return;
|
||||
}
|
||||
|
||||
// leave
|
||||
await connection.SendPacket(new PacketResetEraFlipperDataScRsp(component.CurRegionId, component.RegionState, req.PAHMAGPFDDJ));
|
||||
|
||||
component.LeaveFlipperRegion();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user