示例#1
0
        public async void ApplyTransferedItems(UnityEngine.GameObject gameObject, bool clear = false)
        {
            await Task.Delay(250);

            Smod2.API.Player player = new ServerMod2.API.SmodPlayer(gameObject);
            if (clear)
            {
                foreach (Smod2.API.Item item in player.GetInventory())
                {
                    item.Remove();
                }
            }

            StackEventHandler.CheckSteamIDItemNum[player.SteamId].ResetToZero();

            if (Escape)
            {
                player.SetAmmo(AmmoType.DROPPED_9, StackEventHandler.CheckSteamIDItemNum[player.SteamId].ammo9 + player.GetAmmo(AmmoType.DROPPED_9));
                player.SetAmmo(AmmoType.DROPPED_7, StackEventHandler.CheckSteamIDItemNum[player.SteamId].ammo7 + player.GetAmmo(AmmoType.DROPPED_7));
                player.SetAmmo(AmmoType.DROPPED_5, StackEventHandler.CheckSteamIDItemNum[player.SteamId].ammo5 + player.GetAmmo(AmmoType.DROPPED_5));
            }

            foreach (Smod2.API.ItemType item in (Smod2.API.ItemType[])Enum.GetValues(typeof(Smod2.API.ItemType)))
            {
                if (StackEventHandler.CheckSteamIDItemNum[player.SteamId].TempItemList.TryGetValue((int)item, out int value))
                {
                    for (int i = 0; i < value; i++)
                    {
                        player.GiveItem(item);
                    }
                }
            }
            StackEventHandler.CheckSteamIDItemNum[player.SteamId].TempItemList.Clear();
        }