示例#1
0
        /// <summary>
        /// Sends every modified weapon to the player.
        /// Steps:
        /// Change every weapon to default values.
        /// Stores the index of every modified weapon, and stores the index as the max index.
        /// Fill the player's inventory with a placeholder item up to the max index.
        /// Removes every item that was modified serverside with the list of indexes.
        /// Starts to drop the modified items.
        /// </summary>
        public static void SendCustomItems(PvPPlayer player)
        {
            RefreshInventory(player);
            List <int>       itemIndex = new List <int>();
            InventoryIndexer indexer   = new InventoryIndexer();

            for (byte loop = 0; loop < indexer.MaxInventoryCycle; loop++)
            {
                int index = indexer.NextIndex();

                Item item = player.TPlayer.inventory[index];

                var custwep = GetCustomWeapon(player, item.type, item.prefix, (short)item.stack);
                if (IsModifiedItem(custwep.ItemNetId))
                {
                    indexer.StoreMaxIndex(index);
                    itemIndex.Add(index);
                    player.InvTracker.AddItem(custwep);
                }
            }

            if (itemIndex.Count != 0)
            {
                SSCUtils.FillInventoryToIndex(player, Constants.EmptyItem, Constants.JunkItem, indexer.MaxIndex);
                foreach (int num in itemIndex)
                {
                    SSCUtils.SetItem(player, (byte)num, Constants.EmptyItem);
                }
                player.InvTracker.StartDroppingItems();
            }
            else
            {
                player.InvTracker.CheckFinishedModifications(0);
            }
        }