mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2025-12-12 21:04:43 +01:00
avatar skill impl...
i hate mongo C#
This commit is contained in:
@@ -53,9 +53,14 @@ namespace PemukulPaku.GameServer.Commands
|
||||
{
|
||||
string action = args[0];
|
||||
int avatarId = int.Parse(args[1]);
|
||||
string modType = args[2];
|
||||
int value = int.Parse(args[3]);
|
||||
AvatarScheme? avatar;
|
||||
string modType = "";
|
||||
int value = 0;
|
||||
if (args.Length > 3)
|
||||
{
|
||||
modType = args[2];
|
||||
value = int.Parse(args[3]);
|
||||
}
|
||||
AvatarScheme? avatar = null;
|
||||
|
||||
switch (action)
|
||||
{
|
||||
@@ -95,7 +100,7 @@ namespace PemukulPaku.GameServer.Commands
|
||||
avatar.Save();
|
||||
}
|
||||
else
|
||||
c.Error("Invalid AvatarScheme in avatar modify command");
|
||||
throw new ArgumentException("Avatar not found");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
28
GameServer/Handlers/AvatarSubSkillLevelUpReqHandler.cs
Normal file
28
GameServer/Handlers/AvatarSubSkillLevelUpReqHandler.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using Common.Database;
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers
|
||||
{
|
||||
[PacketCmdId(CmdId.AvatarSubSkillLevelUpReq)]
|
||||
internal class AvatarSubSkillLevelUpReqHandler : IPacketHandler
|
||||
{
|
||||
// TODO: Find out how to calculate cost with itemType 0
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
AvatarSubSkillLevelUpReq Data = packet.GetDecodedBody<AvatarSubSkillLevelUpReq>();
|
||||
AvatarScheme? avatar = session.Player.AvatarList.FirstOrDefault(avatar => avatar.AvatarId == Data.AvatarId);
|
||||
AvatarSubSkillLevelUpRsp Rsp = new() { retcode = AvatarSubSkillLevelUpRsp.Retcode.Succ };
|
||||
|
||||
if (avatar is not null)
|
||||
{
|
||||
avatar.LevelUpSkill(Data.SubSkillId, Data.IsLevelUpAll);
|
||||
session.ProcessPacket(Packet.FromProto(new GetAvatarDataReq() { AvatarIdLists = new uint[] { avatar.AvatarId } }, CmdId.GetAvatarDataReq));
|
||||
}
|
||||
else
|
||||
{
|
||||
Rsp.retcode = AvatarSubSkillLevelUpRsp.Retcode.AvatarNotExist;
|
||||
}
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.AvatarSubSkillLevelUpRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -38,7 +38,12 @@ namespace PemukulPaku.GameServer.Handlers
|
||||
TouchGoodfeel = avatar.TouchGoodfeel,
|
||||
WeaponUniqueId = avatar.WeaponUniqueId
|
||||
};
|
||||
a.SkillLists.AddRange(avatar.SkillLists);
|
||||
a.SkillLists.AddRange(avatar.SkillLists.Select(skill =>
|
||||
{
|
||||
AvatarSkill avatarSkill = new() { SkillId = skill.SkillId };
|
||||
avatarSkill.SubSkillLists.AddRange(skill.SubSkillLists);
|
||||
return avatarSkill;
|
||||
}));
|
||||
|
||||
return a;
|
||||
});
|
||||
@@ -70,7 +75,12 @@ namespace PemukulPaku.GameServer.Handlers
|
||||
TouchGoodfeel = avatar.TouchGoodfeel,
|
||||
WeaponUniqueId = avatar.WeaponUniqueId
|
||||
};
|
||||
a.SkillLists.AddRange(avatar.SkillLists);
|
||||
a.SkillLists.AddRange(avatar.SkillLists.Select(skill =>
|
||||
{
|
||||
AvatarSkill avatarSkill = new() { SkillId = skill.SkillId };
|
||||
avatarSkill.SubSkillLists.AddRange(skill.SubSkillLists);
|
||||
return avatarSkill;
|
||||
}));
|
||||
|
||||
return a;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user