Пример #1
0
        public void CItemsChangeReq(GameSession session, CItemsChangeReqMessage message)
        {
            var plr = session.Player;

            Logger.Debug()
            .Account(session)
            .Message($"Item sync - {JsonConvert.SerializeObject(message.Unk1, Formatting.Indented)}")
            .Write();

            if (message.Unk2.Length > 0)
            {
                Logger.Warn()
                .Account(session)
                .Message($"Unk2: {JsonConvert.SerializeObject(message.Unk2, Formatting.Indented)}")
                .Write();
            }

            var @char = plr.CharacterManager.CurrentCharacter;
            var unk1  = new ChangeItemsUnkDto
            {
                AccountId = plr.Account.Id,
                Skills    = @char.Skills.GetItems().Select(item => item?.ItemNumber ?? 0).ToArray(),
                Weapons   = @char.Weapons.GetItems().Select(item => item?.ItemNumber ?? 0).ToArray(),
                Unk4      = message.Unk1.Unk4,
                Unk5      = message.Unk1.Unk5,
                Unk6      = message.Unk1.Unk6,
                HP        = plr.GetMaxHP(),
                Unk8      = message.Unk1.Unk8
            };

            plr.Room.Broadcast(new SItemsChangeAckMessage(unk1, message.Unk2));
        }
Пример #2
0
        public void CItemsChangeReq(GameSession session, CItemsChangeReqMessage message)
        {
            var plr = session.Player;

            Logger.ForAccount(session)
            .Debug("Item sync - {unk1}", message.Unk1);

            if (message.Unk2.Length > 0)
            {
                Logger.ForAccount(session)
                .Warning("{unk2}", message.Unk2);
            }

            var @char = plr.CharacterManager.CurrentCharacter;
            var unk1  = new ChangeItemsUnkDto
            {
                AccountId = plr.Account.Id,
                Skills    = @char.Skills.GetItems().Select(item => item?.ItemNumber ?? 0).ToArray(),
                Weapons   = @char.Weapons.GetItems().Select(item => item?.ItemNumber ?? 0).ToArray(),
                Unk4      = message.Unk1.Unk4,
                Unk5      = message.Unk1.Unk5,
                Unk6      = message.Unk1.Unk6,
                HP        = plr.GetMaxHP(),
                Unk8      = message.Unk1.Unk8
            };

            plr.Room.Broadcast(new SItemsChangeAckMessage(unk1, message.Unk2));
        }
Пример #3
0
 public CItemsChangeReqMessage()
 {
     Unk1 = new ChangeItemsUnkDto();
     Unk2 = Array.Empty <ChangeAvatarUnk2Dto>();
 }
Пример #4
0
 public SItemsChangeAckMessage(ChangeItemsUnkDto unk1, ChangeAvatarUnk2Dto[] unk2)
 {
     Unk1 = unk1;
     Unk2 = unk2;
 }
Пример #5
0
 public RoomChangeItemAckMessage()
 {
     Unk1 = new ChangeItemsUnkDto();
     Unk2 = Array.Empty <ChangeAvatarUnk2Dto>();
 }