mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2025-12-13 23:14:59 +01:00
chat cmd & hopefully proper avatar level up
This commit is contained in:
41
GameServer/Handlers/AddAvatarExpByMaterialReqHandler.cs
Normal file
41
GameServer/Handlers/AddAvatarExpByMaterialReqHandler.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using Common.Database;
|
||||
using Common.Resources.Proto;
|
||||
using Common.Utils.ExcelReader;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.AddAvatarExpByMaterialReq)]
|
||||
internal class AddAvatarExpByMaterialReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
AddAvatarExpByMaterialReq Data = packet.GetDecodedBody<AddAvatarExpByMaterialReq>();
|
||||
MaterialDataExcel? materialData = MaterialData.GetInstance().FromId(Data.MaterialId);
|
||||
AvatarScheme? avatar = session.Player.AvatarList.FirstOrDefault(avatar => avatar.AvatarId == Data.AvatarId);
|
||||
|
||||
AddAvatarExpByMaterialRsp Rsp = new() { retcode = AddAvatarExpByMaterialRsp.Retcode.Succ };
|
||||
|
||||
if (avatar is not null && materialData is not null)
|
||||
{
|
||||
session.Player.Equipment.AddMaterial(materialData.Id, -(int)Data.MaterialNum);
|
||||
GetEquipmentDataRsp EquipmentRsp = new()
|
||||
{
|
||||
retcode = GetEquipmentDataRsp.Retcode.Succ,
|
||||
VitalityValue = 0,
|
||||
IsAll = true
|
||||
};
|
||||
EquipmentRsp.MaterialLists.Add(session.Player.Equipment.MaterialList.First(mat => mat.Id == materialData.Id));
|
||||
|
||||
avatar.AddExp((uint)materialData.CharacterExpProvide * Data.MaterialNum);
|
||||
|
||||
session.Send(Packet.FromProto(EquipmentRsp, CmdId.GetEquipmentDataRsp));
|
||||
session.ProcessPacket(Packet.FromProto(new GetAvatarDataReq() { AvatarIdLists = new uint[] { avatar.AvatarId } }, CmdId.GetAvatarDataReq));
|
||||
}
|
||||
else
|
||||
{
|
||||
Rsp.retcode = AddAvatarExpByMaterialRsp.Retcode.AvatarNotExist;
|
||||
}
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.AddAvatarExpByMaterialRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user