예제 #1
0
        internal async Task SaveQuickBar(object[] args)
        {
            int characterId = (int)args[0];

            QuickSkillBarItem[] quickSkillBarItems = (QuickSkillBarItem[])args[1];

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

            _database.QuickItems.RemoveRange(items);

            DbQuickSkillBarItem[] newItems = new DbQuickSkillBarItem[quickSkillBarItems.Length];
            // Add new items.
            for (var i = 0; i < quickSkillBarItems.Length; i++)
            {
                var quickItem = quickSkillBarItems[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();
        }
예제 #2
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();
        }
예제 #3
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();
        }