mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2026-09-17 21:21:36 +02:00
okey
This commit is contained in:
1 parent
ca558f76bd
commit
88c69529fd
17 files changed
+243
-9
No files matched your search
@@ -0,0 +1,31 @@
|
|||||||
|
namespace Common.Utils
|
||||||
|
{
|
||||||
|
public static class Misc
|
||||||
|
{
|
||||||
|
public static byte[] StringToByteArray(string hex)
|
||||||
|
{
|
||||||
|
if (hex.Length % 2 == 1)
|
||||||
|
throw new Exception("The binary key cannot have an odd number of digits");
|
||||||
|
|
||||||
|
byte[] arr = new byte[hex.Length >> 1];
|
||||||
|
|
||||||
|
for (int i = 0; i < hex.Length >> 1; ++i)
|
||||||
|
{
|
||||||
|
arr[i] = (byte)((GetHexVal(hex[i << 1]) << 4) + (GetHexVal(hex[(i << 1) + 1])));
|
||||||
|
}
|
||||||
|
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetHexVal(char hex)
|
||||||
|
{
|
||||||
|
int val = (int)hex;
|
||||||
|
//For uppercase A-F letters:
|
||||||
|
//return val - (val < 58 ? 48 : 55);
|
||||||
|
//For lowercase a-f letters:
|
||||||
|
//return val - (val < 58 ? 48 : 87);
|
||||||
|
//Or the two combined, but a bit slower:
|
||||||
|
return val - (val < 58 ? 48 : (val < 97 ? 55 : 87));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
using Common.Resources.Proto;
|
||||||
|
using Common.Utils;
|
||||||
|
using ProtoBuf;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.ChapterGroupGetDataReq)]
|
||||||
|
internal class ChapterGroupGetDataReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
MemoryStream ms = new(Misc.StringToByteArray("08001212080112060801100118031206080210021803122208021206080310031803120608041004180312060805100518031206080610061803122a08031206080710071803120608081008180312060809100918031206080a100a18031206080b100b1803122208041206080c100c18031206080d100d18031206080e100e18031206080f100f18031212080512060810101018031206081110111803121a08061206081210121803120608131013180312060814101418031212080712060815101518031206081610161803121a0808120608171017180312060818101818031206081910191803121a08091206081a101a18031206081b101b18031206081c101c18031212080a1206081d101d18031206081e101e1802120a080b1206081f101f1802121a080c1206082010201803120608211021180312060822102218021212080d120608241024180312060825102518021801"));
|
||||||
|
ChapterGroupGetDataRsp Rsp = Serializer.Deserialize<ChapterGroupGetDataRsp>(ms);
|
||||||
|
session.Send(Packet.FromProto(Rsp, CmdId.ChapterGroupGetDataRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
using Common;
|
||||||
|
using Common.Resources.Proto;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.ClientReportReq)]
|
||||||
|
internal class ClientReportReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
ClientReportReq Data = packet.GetDecodedBody<ClientReportReq>();
|
||||||
|
|
||||||
|
if((int)Global.config.VerboseLevel > 0)
|
||||||
|
session.c.Warn($"ClientReport | {Data.ReportType} = {Data.ReportValue}");
|
||||||
|
|
||||||
|
session.Send(Packet.FromProto(new ClientReportRsp() { retcode = ClientReportRsp.Retcode.Succ }, CmdId.ClientReportRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
using Common.Resources.Proto;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.GetAuthkeyReq)]
|
||||||
|
internal class GetAuthkeyReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
GetAuthkeyReq Data = packet.GetDecodedBody<GetAuthkeyReq>();
|
||||||
|
|
||||||
|
GetAuthkeyRsp Rsp = new()
|
||||||
|
{
|
||||||
|
retcode = GetAuthkeyRsp.Retcode.Succ,
|
||||||
|
AuthAppid = Data.AuthAppid,
|
||||||
|
Authkey = "0",
|
||||||
|
SignType = 2,
|
||||||
|
AuthkeyVer = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
session.Send(Packet.FromProto(Rsp, CmdId.GetAuthkeyRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using Common.Resources.Proto;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.GetBulletinActivityMissionReq)]
|
||||||
|
internal class GetBulletinActivityMissionReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
GetBulletinActivityMissionReq Data = packet.GetDecodedBody<GetBulletinActivityMissionReq>();
|
||||||
|
|
||||||
|
GetBulletinActivityMissionRsp Rsp = new() { retcode = GetBulletinActivityMissionRsp.Retcode.Succ };
|
||||||
|
Rsp.MissionGroupLists.AddRange(Data.ActivityIdLists.Select(activityId => new BulletinMissionGroup() { ActivityId = activityId }).ToList());
|
||||||
|
|
||||||
|
session.Send(Packet.FromProto(Rsp, CmdId.GetBulletinActivityMissionRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
using Common.Resources.Proto;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.GetBulletinReq)]
|
||||||
|
internal class GetBulletinReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
session.Send(Packet.FromProto(new GetBulletinRsp() { retcode = GetBulletinRsp.Retcode.Succ, IsAll = true }, CmdId.GetBulletinRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
using Common;
|
using Common;
|
||||||
using Common.Resources.Proto;
|
using Common.Resources.Proto;
|
||||||
|
using Common.Utils;
|
||||||
|
using ProtoBuf;
|
||||||
|
|
||||||
namespace PemukulPaku.GameServer.Handlers
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
{
|
{
|
||||||
@@ -8,11 +10,13 @@ namespace PemukulPaku.GameServer.Handlers
|
|||||||
{
|
{
|
||||||
public void Handle(Session session, Packet packet)
|
public void Handle(Session session, Packet packet)
|
||||||
{
|
{
|
||||||
GetConfigRsp Rsp = new()
|
|
||||||
{
|
MemoryStream ms = new(Misc.StringToByteArray("080010e802203c287830c070389e95a2a306403248940160e8077819fa0105089407100afa010608ce08109802fa010608cf08109802fa010608d008109802fa010508d208103cfa010608d408109802fa010608d508109601fa010608d60810c801fa010608d70810c801fa010508d8081078fa010608db08109802fa010508a7391064fa0105089e3a100afa010508a83d100afa010708fdfa0610c801fa0106089cfb061008fa010608a6fc06100afa01060888fd06100afa01060898fd061008fa010608e7ff06100afa010608ebff061008fa010608818007100afa010608a48307100afa010608a98307100afa010608ba8307100afa010608df83071008fa010608e283071008fa010608ef83071008fa0106089c8b07100afa0106089a9007100afa010608c4a2071008fa010608c9b107100afa010608d1b107100afa010608d2b107100afa010608ceb307100afa010608d2b307100afa01060892d207100afa010608dbde07100afa010608dcde07100afa0106089ce640106482020a6f76657273656173303188021a9a02160802105018c0e494a30620c0bcafa40628c91a28ad1b9a0211080410d80418c0e494a30620c0bcafa406a00278a802a0bfc6fa05b002a0a8d6fa05b80202c802ff93ebdc03d00280cab5ee01e802fa36f00205f80280a3059203bb02089a2210021884e1f8ee052084dddadf0728003818420130480f50636212444c435f426f7867616368615f5469746c656a275370726974654f75747075742f53686f7054616249636f6e732f49636f6e53686f70476163686172416576656e742f496d6d6564696174656c792f4163746976697479506167652f332e35535068756e74696e6767616368615f62616e6e65725f74727565636f6c6f727a00820115332e35535068756e74696e6767616368615f4465738801ce029201386576656e742f496d6d6564696174656c792f4163746976697479506167652f332e35535068756e74696e675f62675f74727565636f6c6f729a01406576656e742f496d6d6564696174656c792f4163746976697479506167652f332e35535068756e74696e6767616368615f7469746c655f74727565636f6c6f72aa010092036608af28102e18a0c9f38e0620bf8bc1bc08280042013048505063620d352e365455504f5f7469746c656a1c5370726974654f75747075742f42502f352e365f5475506f5f54616272007a0082010b352e365455504f5f6465738801bc059201009a0100aa01009203ad0208b72810021880d7fd8e0620bf979ad30728003823420130481950636211352e34646c6367616368615f7469746c656a275370726974654f75747075742f53686f7054616249636f6e732f49636f6e53686f704761636861723d6576656e742f496d6d6564696174656c792f4163746976697479506167652f352e345f444c433267616368615f62616e6e65725f74727565636f6c6f727a0082010f352e34646c6367616368615f446573880182079201396576656e742f496d6d6564696174656c792f4163746976697479506167652f352e345f444c433267616368615f62675f74727565636f6c6f729a013c6576656e742f496d6d6564696174656c792f4163746976697479506167652f352e345f444c433267616368615f7469746c655f74727565636f6c6f72aa010092039102089d2b100318c0b2cca10620bff0a9a30628003839420130480a5063620f352e36425053686f705f5469746c656a2e6576656e742f496d6d6564696174656c792f42502f636f6e73745f53686f7054616230345f74727565636f6c6f72723f6576656e742f496d6d6564696174656c792f42502f53686f702f362e355f362e365f425053686f7042616e6e65725f62616e6e65725f74727565636f6c6f727a008201008801ca0992013b6576656e742f496d6d6564696174656c792f42502f53686f702f362e355f362e365f425053686f7042616e6e65725f62675f74727565636f6c6f729a01215370726974654f75747075742f42502f42505f42616e6e65725f546f756d696e67a00193b93baa01009203ab03089f2b100418c0e494a30620c0bcafa4062800389e86073880a7293881a7293882a7293883a7293884a7293885a7293886a7293887a7293888a7293889a729388aa729388ba729388ca729388da729388ea729388fa7293890a7293891a729420134480950636217362e3653686f7070696e674461797330315f7469746c656a3f6576656e742f496d6d6564696174656c792f4163746976697479506167652f362e365f53686f7070696e674461797330315f7461625f74727565636f6c6f7272426576656e742f496d6d6564696174656c792f4163746976697479506167652f362e365f53686f7070696e674461797330315f62616e6e65725f74727565636f6c6f727a00820111362e3653686f7070696e6730315f4465738801d00f92013e6576656e742f496d6d6564696174656c792f4163746976697479506167652f362e365f53686f7070696e674461797330315f62675f74727565636f6c6f729a01416576656e742f496d6d6564696174656c792f4163746976697479506167652f362e365f53686f7070696e674461797330315f7469746c655f74727565636f6c6f72a001afd207aa01009203e10208a02b100318c0e494a30620c0bcafa40628003816420130481450636217362e3653686f7070696e674461797330325f7469746c656a3f6576656e742f496d6d6564696174656c792f4163746976697479506167652f362e365f53686f7070696e674461797330325f7461625f74727565636f6c6f7272426576656e742f496d6d6564696174656c792f4163746976697479506167652f362e365f53686f7070696e674461797330325f62616e6e65725f74727565636f6c6f727a00820111362e3653686f7070696e6730325f4465738801cf0f92013e6576656e742f496d6d6564696174656c792f4163746976697479506167652f362e365f53686f7070696e674461797330325f62675f74727565636f6c6f729a01416576656e742f496d6d6564696174656c792f4163746976697479506167652f362e365f53686f7070696e674461797330325f7469746c655f74727565636f6c6f72a001afd207aa01009203e10208a12b100318c0e494a30620c0bcafa4062800382d420130481450636217362e3653686f7070696e674461797330335f7469746c656a3f6576656e742f496d6d6564696174656c792f4163746976697479506167652f362e365f53686f7070696e674461797330325f7461625f74727565636f6c6f7272426576656e742f496d6d6564696174656c792f4163746976697479506167652f362e365f53686f7070696e674461797330335f62616e6e65725f74727565636
Line truncated
|
||||||
retcode = GetConfigRsp.Retcode.Succ,
|
GetConfigRsp Rsp = Serializer.Deserialize<GetConfigRsp>(ms)!;
|
||||||
ServerCurTime = (uint)Global.GetUnixInSeconds(),
|
|
||||||
};
|
Rsp.ServerCurTime = (uint)Global.GetUnixInSeconds();
|
||||||
|
Rsp.RegionName = Global.config.Gameserver.RegionName;
|
||||||
|
Rsp.NextDayBeginTime = (uint)Global.GetUnixInSeconds() + 604800 / 7;
|
||||||
|
|
||||||
session.Send(Packet.FromProto(Rsp, CmdId.GetConfigRsp));
|
session.Send(Packet.FromProto(Rsp, CmdId.GetConfigRsp));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
using Common.Resources.Proto;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.GetCustomHeadDataReq)]
|
||||||
|
internal class GetCustomHeadDataReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
GetCustomHeadDataRsp Rsp = new() { retcode = GetCustomHeadDataRsp.Retcode.Succ, IsAll = true };
|
||||||
|
Rsp.CustomHeadLists.Add(new CustomHead() { Id = 161001 });
|
||||||
|
|
||||||
|
session.Send(Packet.FromProto(Rsp, CmdId.GetCustomHeadDataRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
using Common.Resources.Proto;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.GetFrameDataReq)]
|
||||||
|
internal class GetFrameDataReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
GetFrameDataRsp Rsp = new() { retcode = GetFrameDataRsp.Retcode.Succ, IsAll = true };
|
||||||
|
Rsp.FrameLists.Add(new FrameData() { Id = 200001 });
|
||||||
|
|
||||||
|
session.Send(Packet.FromProto(Rsp, CmdId.GetFrameDataRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using Common.Resources.Proto;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.GetGalInteractTriggerEventReq)]
|
||||||
|
internal class GetGalInteractTriggerEventReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
GetGalInteractTriggerEventReq Data = packet.GetDecodedBody<GetGalInteractTriggerEventReq>();
|
||||||
|
|
||||||
|
Random random = new ();
|
||||||
|
GetGalInteractTriggerEventRsp Rsp = new()
|
||||||
|
{
|
||||||
|
retcode = GetGalInteractTriggerEventRsp.Retcode.Succ,
|
||||||
|
AvatarId = Data.AvatarId,
|
||||||
|
EventId = Data.EventIdLists[random.Next(0, Data.EventIdLists.Length - 1)]
|
||||||
|
};
|
||||||
|
|
||||||
|
session.Send(Packet.FromProto(Rsp, CmdId.GetGalInteractTriggerEventRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,7 +14,7 @@ namespace PemukulPaku.GameServer.Handlers
|
|||||||
Id = 581,
|
Id = 581,
|
||||||
LoginDays = 1,
|
LoginDays = 1,
|
||||||
AcceptTime = session.Player.User.GetCreationTime(),
|
AcceptTime = session.Player.User.GetCreationTime(),
|
||||||
DurationEndTime = session.Player.User.GetCreationTime() + 604800
|
DurationEndTime = session.Player.User.GetCreationTime() + 604800 * 2
|
||||||
});
|
});
|
||||||
|
|
||||||
session.Send(Packet.FromProto(Rsp, CmdId.GetLoginActivityRsp));
|
session.Send(Packet.FromProto(Rsp, CmdId.GetLoginActivityRsp));
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ namespace PemukulPaku.GameServer.Handlers
|
|||||||
OpenPanelActivityLists = new uint[] { 2 },
|
OpenPanelActivityLists = new uint[] { 2 },
|
||||||
ChatworldActivityInfo = new()
|
ChatworldActivityInfo = new()
|
||||||
{
|
{
|
||||||
IsHasNpcRedEnvelope = true,
|
IsHasNpcRedEnvelope = false,
|
||||||
TreasureScheduleId = 1
|
TreasureScheduleId = 0
|
||||||
},
|
},
|
||||||
IsAllowCostSeniorEquipOnCurDevice = true,
|
IsAllowCostSeniorEquipOnCurDevice = true,
|
||||||
TypeLists = new uint[] { 2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39 },
|
TypeLists = new uint[] { 2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39 },
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
using Common.Resources.Proto;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.GetShopListReq)]
|
||||||
|
internal class GetShopListReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
session.Send(Packet.FromProto(new GetShopListRsp() { retcode = GetShopListRsp.Retcode.Succ, IsAll = true }, CmdId.GetShopListRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
using Common.Resources.Proto;
|
||||||
|
using Common.Utils;
|
||||||
|
using ProtoBuf;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.GetWorldMapDataReq)]
|
||||||
|
internal class GetWorldMapDataReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
MemoryStream ms = new(Misc.StringToByteArray("0800121c080110c0c4f4eb0418bffbaad60720002800300038c0c4f4eb044001121c080210c0c4f4eb0418bffbaad60720002800300038c0c4f4eb044002121c080310c0c4f4eb0418bffbaad6072019281e300038c0c4f4eb044003121c080410c0c4f4eb0418bffbaad60720002800300138c0c4f4eb044004121c080510c0c4f4eb0418bffbaad60720002800300138c0c4f4eb044005121c080610c0c4f4eb0418bffbaad607200f2858300138c0c4f4eb044006121c080710c0c4f4eb0418bffbaad607201e2828300138c0c4f4eb044007121c080810c0c4f4eb0418bffbaad60720002800300138c0c4f4eb044008121c080910c0c4f4eb0418bffbaad60720002800300138c0c4f4eb044009121c080a10c0c4f4eb0418bffbaad60720002800300138c0c4f4eb04400a121c080b10c0c4f4eb0418bffbaad60720002800300138c0c4f4eb04400b121c080c10c0c4f4eb0418bffbaad60720002800300138c0c4f4eb044031121e08bb1010a099aae90518bffbaad6072014286330cd0138a099aae9054079121d081210c0c4f4eb0418bffbaad60720322863300138c0c4f4eb04409e02121e08ad1110a092c3800618bffbaad607200f2858300138a092c3800640b302121e08db1110c0e494a30618bfa2f2a40620002800307a38c0e494a306408103"));
|
||||||
|
GetWorldMapDataRsp Rsp = Serializer.Deserialize<GetWorldMapDataRsp>(ms);
|
||||||
|
session.Send(Packet.FromProto(Rsp, CmdId.GetWorldMapDataRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -47,7 +47,7 @@ namespace PemukulPaku.GameServer.Handlers
|
|||||||
session.ProcessPacket(Packet.FromProto(new GetMainDataReq() { }, CmdId.GetMainDataReq));
|
session.ProcessPacket(Packet.FromProto(new GetMainDataReq() { }, CmdId.GetMainDataReq));
|
||||||
session.ProcessPacket(Packet.FromProto(new GetEquipmentDataReq() { }, CmdId.GetEquipmentDataReq));
|
session.ProcessPacket(Packet.FromProto(new GetEquipmentDataReq() { }, CmdId.GetEquipmentDataReq));
|
||||||
session.ProcessPacket(Packet.FromProto(new GetWorldMapDataReq() { }, CmdId.GetWorldMapDataReq));
|
session.ProcessPacket(Packet.FromProto(new GetWorldMapDataReq() { }, CmdId.GetWorldMapDataReq));
|
||||||
session.ProcessPacket(Packet.FromProto(new ChapterGroupGetDataReq() { }, CmdId.ChapterGroupGetDataReq));
|
session.ProcessPacket(Packet.FromProto(new ChapterGroupGetDataReqHandler() { }, CmdId.ChapterGroupGetDataReq));
|
||||||
session.ProcessPacket(Packet.FromProto(new GetStageDataReq() { }, CmdId.GetStageDataReq));
|
session.ProcessPacket(Packet.FromProto(new GetStageDataReq() { }, CmdId.GetStageDataReq));
|
||||||
|
|
||||||
Rsp.PlayerExpReward = 100;
|
Rsp.PlayerExpReward = 100;
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using Common;
|
||||||
|
using Common.Resources.Proto;
|
||||||
|
|
||||||
|
namespace PemukulPaku.GameServer.Handlers
|
||||||
|
{
|
||||||
|
[PacketCmdId(CmdId.SyncTimeReq)]
|
||||||
|
internal class SyncTimeReqHandler : IPacketHandler
|
||||||
|
{
|
||||||
|
public void Handle(Session session, Packet packet)
|
||||||
|
{
|
||||||
|
SyncTimeReq Data = packet.GetDecodedBody<SyncTimeReq>();
|
||||||
|
|
||||||
|
session.Send(Packet.FromProto(new SyncTimeRsp()
|
||||||
|
{
|
||||||
|
retcode = SyncTimeRsp.Retcode.Succ,
|
||||||
|
CurTime = (uint)Global.GetUnixInSeconds(),
|
||||||
|
Seq = Data.Seq
|
||||||
|
}, CmdId.SyncTimeRsp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,6 +11,7 @@ namespace PemukulPaku.GameServer
|
|||||||
public readonly string Id;
|
public readonly string Id;
|
||||||
public readonly TcpClient Client;
|
public readonly TcpClient Client;
|
||||||
public readonly Logger c;
|
public readonly Logger c;
|
||||||
|
public long LastKeepAlive = Global.GetUnixInSeconds();
|
||||||
public Player Player = default!;
|
public Player Player = default!;
|
||||||
|
|
||||||
public Session(string id, TcpClient client)
|
public Session(string id, TcpClient client)
|
||||||
@@ -82,6 +83,7 @@ namespace PemukulPaku.GameServer
|
|||||||
public void ProcessPacket(Packet _packet)
|
public void ProcessPacket(Packet _packet)
|
||||||
{
|
{
|
||||||
string PacketName = Enum.GetName(typeof(CmdId), _packet.CmdId)!;
|
string PacketName = Enum.GetName(typeof(CmdId), _packet.CmdId)!;
|
||||||
|
if(PacketName == "KeepAliveNotify") { LastKeepAlive = Global.GetUnixInSeconds(); c.Log(PacketName); return; }
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CmdId cmdId = (CmdId)Enum.ToObject(typeof(CmdId), _packet.CmdId);
|
CmdId cmdId = (CmdId)Enum.ToObject(typeof(CmdId), _packet.CmdId);
|
||||||
|
|||||||
Reference in new issue
Block a user