From 16d1413cd8a964ea0132935200e430869b9f53f5 Mon Sep 17 00:00:00 2001 From: Naruse <71993948+DevilProMT@users.noreply.github.com> Date: Mon, 27 Apr 2026 21:46:03 +0800 Subject: [PATCH] unlock convenant after finish intimate chat --- .../Handlers/Preview/RecordConfession.cs | 42 +++++++++++++++++++ .../Packet/Send/Misc/PacketNtfCallScript.cs | 2 +- version.txt | 2 +- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 GameServer/Server/CallGS/Handlers/Preview/RecordConfession.cs diff --git a/GameServer/Server/CallGS/Handlers/Preview/RecordConfession.cs b/GameServer/Server/CallGS/Handlers/Preview/RecordConfession.cs new file mode 100644 index 0000000..ee19e30 --- /dev/null +++ b/GameServer/Server/CallGS/Handlers/Preview/RecordConfession.cs @@ -0,0 +1,42 @@ +using MikuSB.Database.Player; +using MikuSB.GameServer.Server.CallGS.Handlers.Misc; +using MikuSB.Proto; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace MikuSB.GameServer.Server.CallGS.Handlers.Preview; + +[CallGSApi("RecordConfession")] +public class RecordConfession : ICallGSHandler +{ + private const int MainSceneGID = 132; + public async Task Handle(Connection connection, string param, ushort seqNo) + { + var req = JsonSerializer.Deserialize(param); + if (req == null) return; + var sid = req.Id + 10; + var player = connection.Player!; + var attr = player.Data.Attrs + .FirstOrDefault(x => x.Gid == MainSceneGID && x.Sid == sid); + if (attr == null) + { + attr = new PlayerAttr + { + Gid = MainSceneGID, + Sid = sid, + Val = 1 + }; + player.Data.Attrs.Add(attr); + } + var sync = new NtfSyncPlayer(); + sync.Custom[player.ToPackedAttrKey(MainSceneGID, sid)] = attr.Val; + sync.Custom[player.ToShiftedAttrKey(MainSceneGID, sid)] = attr.Val; + await CallGSRouter.SendScript(connection, "RecordConfession", "{}", sync); + } +} + +internal sealed class RecordConfessionParam +{ + [JsonPropertyName("nIdx")] + public uint Id { get; set; } +} \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/Misc/PacketNtfCallScript.cs b/GameServer/Server/Packet/Send/Misc/PacketNtfCallScript.cs index 2df8a76..62da213 100644 --- a/GameServer/Server/Packet/Send/Misc/PacketNtfCallScript.cs +++ b/GameServer/Server/Packet/Send/Misc/PacketNtfCallScript.cs @@ -62,7 +62,7 @@ public class PacketNtfCallScript : BasePacket }; var extraSync = new NtfSyncPlayer(); - foreach (var item in inventory.Items.Values) if ((item.TemplateId & 0xFFFF) != 5) extraSync.Items.Add(item.ToProto()); + foreach (var item in inventory.Items.Values) extraSync.Items.Add(item.ToProto()); foreach (var weapon in inventory.Weapons.Values) extraSync.Items.Add(weapon.ToProto()); proto.ExtraSync = extraSync; SetData(proto); diff --git a/version.txt b/version.txt index 17c19a6..8e4423b 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v=0.8 \ No newline at end of file +v=0.9 \ No newline at end of file