Пример #1
0
        private async Task HandleSkillBarPacket(SkillBarPacket skillBarPacket)
        {
            using var database = DependencyContainer.Instance.Resolve <IDatabase>();

            // Remove old items.
            var items = database.QuickItems.Where(item => item.Character.Id == this.Id);

            database.QuickItems.RemoveRange(items);

            DbQuickSkillBarItem[] newItems = new DbQuickSkillBarItem[skillBarPacket.QuickItems.Length];
            // Add new items.
            for (var i = 0; i < skillBarPacket.QuickItems.Length; i++)
            {
                var quickItem = skillBarPacket.QuickItems[i];
                newItems[i] = new DbQuickSkillBarItem()
                {
                    Bar    = quickItem.Bar,
                    Slot   = quickItem.Slot,
                    Bag    = quickItem.Bag,
                    Number = quickItem.Number
                };
                newItems[i].CharacterId = Id;
            }
            await database.QuickItems.AddRangeAsync(newItems);

            await database.SaveChangesAsync();
        }
Пример #2
0
        public async Task Handle(WorldClient client, SkillBarPacket packet)
        {
            var characterId = _gameSession.CharId;

            if (characterId == 0)
            {
                return;
            }

            // Remove old items.
            var items = _database.QuickItems.Where(item => item.Character.Id == characterId);

            _database.QuickItems.RemoveRange(items);

            var newItems = new DbQuickSkillBarItem[packet.QuickItems.Length];

            // Add new items.
            for (var i = 0; i < packet.QuickItems.Length; i++)
            {
                var quickItem = packet.QuickItems[i];
                newItems[i] = new DbQuickSkillBarItem()
                {
                    Bar    = quickItem.Bar,
                    Slot   = quickItem.Slot,
                    Bag    = quickItem.Bag,
                    Number = quickItem.Number
                };
                newItems[i].CharacterId = characterId;
            }

            await _database.QuickItems.AddRangeAsync(newItems);

            await _database.SaveChangesAsync();
        }
 private void HandleSkillBarPacket(SkillBarPacket skillBarPacket)
 {
     _taskQueue.Enqueue(ActionType.SAVE_QUICK_BAR, Id, skillBarPacket.QuickItems);
 }