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