avatar skill impl...

i hate mongo C#
This commit is contained in:
rafi1212122
2023-06-03 21:29:13 +07:00
parent 96fe9b054d
commit 28913ad652
6 changed files with 276 additions and 10 deletions

View File

@@ -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:

View 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));
}
}
}

View File

@@ -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;
});