mirror of
https://github.com/MikuLeaks/MikuSB.git
synced 2026-06-04 11:43:57 +00:00
VirCaptureLevel_SavePos VirCaptureLevel_SaveCapture VirCaptureLevel_ChangeFlag
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
using MikuSB.Database;
|
||||
using MikuSB.Proto;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace MikuSB.GameServer.Server.CallGS.Handlers.VirCapture;
|
||||
|
||||
[CallGSApi("VirCaptureLevel_SavePos")]
|
||||
public class VirCaptureLevel_SavePos : ICallGSHandler
|
||||
{
|
||||
public async Task Handle(Connection connection, string param, ushort seqNo)
|
||||
{
|
||||
var req = JsonSerializer.Deserialize<VirCaptureSavePosParam>(param);
|
||||
if (req == null || req.LevelId == 0)
|
||||
{
|
||||
await CallGSRouter.SendScript(connection, "VirCaptureLevel_SavePos", "{\"sErr\":\"error.BadParam\"}");
|
||||
return;
|
||||
}
|
||||
|
||||
var player = connection.Player!;
|
||||
var sync = new NtfSyncPlayer();
|
||||
VirCaptureStateHelper.SetSignedMapOffset(player, (uint)req.LevelId, VirCaptureStateHelper.OffPosX, req.PosX, sync);
|
||||
VirCaptureStateHelper.SetSignedMapOffset(player, (uint)req.LevelId, VirCaptureStateHelper.OffPosY, req.PosY, sync);
|
||||
VirCaptureStateHelper.SetSignedMapOffset(player, (uint)req.LevelId, VirCaptureStateHelper.OffPosZ, req.PosZ, sync);
|
||||
VirCaptureStateHelper.SetSignedMapOffset(player, (uint)req.LevelId, VirCaptureStateHelper.OffToward, req.Toward, sync);
|
||||
|
||||
DatabaseHelper.SaveDatabaseType(player.Data);
|
||||
await CallGSRouter.SendScript(connection, "VirCaptureLevel_SavePos", "{}", sync);
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class VirCaptureSavePosParam
|
||||
{
|
||||
[JsonPropertyName("nLevelID")]
|
||||
public int LevelId { get; set; }
|
||||
|
||||
[JsonPropertyName("nPosX")]
|
||||
public int PosX { get; set; }
|
||||
|
||||
[JsonPropertyName("nPosY")]
|
||||
public int PosY { get; set; }
|
||||
|
||||
[JsonPropertyName("nPosZ")]
|
||||
public int PosZ { get; set; }
|
||||
|
||||
[JsonPropertyName("nToward")]
|
||||
public int Toward { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user