From f822976f7452f9a5a1d643452337db5d0e72ad18 Mon Sep 17 00:00:00 2001 From: rafi1212122 Date: Mon, 5 Jun 2023 12:12:00 +0700 Subject: [PATCH] set dress, set bio & set birthday --- Common/Database/Avatar.cs | 2 ++ .../Handlers/ReportBirthdayReqHandler.cs | 22 ++++++++++++ GameServer/Handlers/SetDressReqHandler.cs | 34 +++++++++++++++++++ GameServer/Handlers/SetSelfDescReqHandler.cs | 22 ++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 GameServer/Handlers/ReportBirthdayReqHandler.cs create mode 100644 GameServer/Handlers/SetDressReqHandler.cs create mode 100644 GameServer/Handlers/SetSelfDescReqHandler.cs diff --git a/Common/Database/Avatar.cs b/Common/Database/Avatar.cs index 1748821..4f792c4 100644 --- a/Common/Database/Avatar.cs +++ b/Common/Database/Avatar.cs @@ -104,6 +104,8 @@ namespace Common.Database public void AddFragment(uint num) { Fragment += num; } + public void SetDress(uint dressId) { DressId = dressId; } + public void LevelUpSkill(uint subSkillId, bool isLevelUpAll = false) { AvatarSubSkillDataExcel? subSkillData = AvatarSubSkillData.GetInstance().FromId((int)subSkillId); diff --git a/GameServer/Handlers/ReportBirthdayReqHandler.cs b/GameServer/Handlers/ReportBirthdayReqHandler.cs new file mode 100644 index 0000000..d209f40 --- /dev/null +++ b/GameServer/Handlers/ReportBirthdayReqHandler.cs @@ -0,0 +1,22 @@ +using Common.Resources.Proto; + +namespace PemukulPaku.GameServer.Handlers +{ + [PacketCmdId(CmdId.ReportBirthdayReq)] + internal class ReportBirthdayReqHandler : IPacketHandler + { + public void Handle(Session session, Packet packet) + { + ReportBirthdayReq Data = packet.GetDecodedBody(); + session.Player.User.BirthDate = (int)Data.Birthday; + GetMainDataRsp mainDataRsp = new() + { + retcode = GetMainDataRsp.Retcode.Succ, + Birthday = Data.Birthday + }; + ReportBirthdayRsp Rsp = new() { retcode = ReportBirthdayRsp.Retcode.Succ }; + + session.Send(Packet.FromProto(mainDataRsp, CmdId.GetMainDataRsp), Packet.FromProto(Rsp, CmdId.ReportBirthdayRsp)); + } + } +} diff --git a/GameServer/Handlers/SetDressReqHandler.cs b/GameServer/Handlers/SetDressReqHandler.cs new file mode 100644 index 0000000..1e91f7d --- /dev/null +++ b/GameServer/Handlers/SetDressReqHandler.cs @@ -0,0 +1,34 @@ +using Common.Database; +using Common.Resources.Proto; + +namespace PemukulPaku.GameServer.Handlers +{ + [PacketCmdId(CmdId.SetDressReq)] + internal class SetDressReqHandler : IPacketHandler + { + public void Handle(Session session, Packet packet) + { + SetDressReq Data = packet.GetDecodedBody(); + SetDressRsp Rsp = new() { retcode = SetDressRsp.Retcode.Succ }; + AvatarScheme? avatar = session.Player.AvatarList.Where(x => x.AvatarId == Data.AvatarId).FirstOrDefault(); + if (avatar is not null) + { + if (avatar.DressLists.Contains(Data.DressId)) + { + avatar.SetDress(Data.DressId); + session.ProcessPacket(Packet.FromProto(new GetAvatarDataReq() { AvatarIdLists = new uint[] { avatar.AvatarId } }, CmdId.GetAvatarDataReq)); + } + else + { + Rsp.retcode = SetDressRsp.Retcode.DressNotExist; + } + } + else + { + Rsp.retcode = SetDressRsp.Retcode.AvatarNotExist; + } + + session.Send(Packet.FromProto(Rsp, CmdId.SetDressRsp)); + } + } +} diff --git a/GameServer/Handlers/SetSelfDescReqHandler.cs b/GameServer/Handlers/SetSelfDescReqHandler.cs new file mode 100644 index 0000000..b400ee1 --- /dev/null +++ b/GameServer/Handlers/SetSelfDescReqHandler.cs @@ -0,0 +1,22 @@ +using Common.Resources.Proto; + +namespace PemukulPaku.GameServer.Handlers +{ + [PacketCmdId(CmdId.SetSelfDescReq)] + internal class SetSelfDescReqHandler : IPacketHandler + { + public void Handle(Session session, Packet packet) + { + SetSelfDescReq Data = packet.GetDecodedBody(); + session.Player.User.SelfDesc = Data.SelfDesc; + GetMainDataRsp mainDataRsp = new() + { + retcode = GetMainDataRsp.Retcode.Succ, + SelfDesc = Data.SelfDesc + }; + SetSelfDescRsp Rsp = new() { retcode = SetSelfDescRsp.Retcode.Succ }; + + session.Send(Packet.FromProto(mainDataRsp, CmdId.GetMainDataRsp), Packet.FromProto(Rsp, CmdId.SetSelfDescRsp)); + } + } +}