Esempio n. 1
0
        void GiveItems(Inventory inv)
        {
            int num   = 0;
            int count = Convert.ToInt32(Config["ItemsPerChest"]);

            while (num < count)
            {
                var ItemList = getRarity();
                int rand     = UnityEngine.Random.Range(0, ItemList.Count);
                ItemGeneratorAsset generator = RuntimeHurtDB.Instance.GetObjectByGuid <ItemGeneratorAsset>((string)ItemList.ElementAt(rand).Key);
                GIM.GiveItem(generator, ItemList.ElementAt(rand).Value, inv);
                num++;
            }
        }
Esempio n. 2
0
 void GiveItems(Inventory inv)
 {
     if (ItemList.Count > 0)
     {
         int num   = 0;
         int count = Convert.ToInt32(Config["ItemsPerChest"]);
         while (num < count)
         {
             int rand = UnityEngine.Random.Range(0, ItemList.Count - 1);
             var item = GIM.GetItem((int)ItemList.ElementAt(rand).Key);
             GIM.GiveItem(item, ItemList.ElementAt(rand).Value, inv);
             num++;
         }
     }
 }
Esempio n. 3
0
        void stackCommand(PlayerSession session)
        {
            Dictionary <int, int> items = new Dictionary <int, int>();
            Dictionary <int, ItemGeneratorAsset> generators = new Dictionary <int, ItemGeneratorAsset>();
            Inventory         inv = session.WorldPlayerEntity.Storage;
            GlobalItemManager GIM = GlobalItemManager.Instance;

            if (!inv.IsEmpty())
            {
                for (int i = 0; i < inv.Capacity; i++)
                {
                    if (i < 8 || i > 15)
                    {
                        ItemObject item = inv.GetSlot(i);

                        if (item != null)
                        {
                            if (items.ContainsKey(item.ItemId))
                            {
                                items[item.ItemId] += item.StackSize;
                            }
                            else
                            {
                                items.Add(item.ItemId, item.StackSize);
                                generators.Add(item.ItemId, item.Generator);
                            }
                            item.StackSize = 0;
                            inv.Invalidate();
                        }
                    }
                }
                foreach (var item in items)
                {
                    GIM.GiveItem(session.Player, generators[item.Key], item.Value);
                    inv.Invalidate();
                }
            }
        }
Esempio n. 4
0
        void stackCommand(PlayerSession session)
        {
            Dictionary <int, int> items = new Dictionary <int, int>();
            Inventory             inv   = session.WorldPlayerEntity.gameObject.GetComponent <PlayerInventory>();
            GlobalItemManager     GIM   = Singleton <GlobalItemManager> .Instance;

            if (inv.Items.Length > 0)
            {
                for (int i = 0; i < inv.Capacity; i++)
                {
                    if (i < 8 || i > 15)
                    {
                        ItemInstance item = inv.GetSlot(i);
                        if (item != null)
                        {
                            if (items.ContainsKey(item.Item.ItemId))
                            {
                                items[item.Item.ItemId] += item.StackSize;
                            }
                            else
                            {
                                items.Add(item.Item.ItemId, item.StackSize);
                            }

                            item.StackSize = 0;
                            inv.Invalidate();
                        }
                    }
                }
                foreach (var item in items)
                {
                    GIM.GiveItem(session.Player, GIM.GetItem(item.Key), item.Value);
                    inv.Invalidate();
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Gives quantity of an item to the player
        /// </summary>
        /// <param name="session"></param>
        /// <param name="item"></param>
        /// <param name="quantity"></param>
#if ITEMV2
        public void GiveItem(PlayerSession session, ItemObject item, int quantity = 1) => ItemManager.GiveItem(session.Player, item.Generator, quantity);
Esempio n. 6
0
 /// <summary>
 /// Gives quantity of an item to the player
 /// </summary>
 /// <param name="session"></param>
 /// <param name="item"></param>
 /// <param name="quantity"></param>
 public void GiveItem(PlayerSession session, IItem item, int quantity = 1) => ItemManager.GiveItem(session.Player, item, quantity);
Esempio n. 7
0
        private void DoRemove(PlayerSession session, string[] args, string vehicleType, VehicleInventory vehicleInventory, VehiclePassenger[] vehiclePassengers)
        {
            string steamId = session.SteamId.ToString();

            // /car remove bumper|front|left|right|roof|rear|tire|engine|gearbox
            string tmp = args[1].ToLower();

            //Check for permission to remove.extra
            if (tmp == "gear" || tmp == "gearbox" || tmp == "engine" || tmp == "tire" || tmp == "wheel" || tmp == "rotor" || tmp == "rotors")
            {
                if (!permission.UserHasPermission(steamId, RemoveExtraPermission))
                {
                    Player.Message(session, GetMsg("NoPermission", steamId).Replace("{permission}", RemoveExtraPermission));
                    return;
                }
            }
            //Check for permission to remove
            if (tmp == "bumper" || tmp == "front" || tmp == "left" || tmp == "right" || tmp == "roof" || tmp == "rear" || tmp == "all")
            {
                if (!permission.UserHasPermission(steamId, RemovePermission))
                {
                    Player.Message(session, GetMsg("NoPermission", steamId).Replace("{permission}", RemovePermission));
                    return;
                }
            }

            List <string> parts;

            if (tmp == "all")
            {
                parts = new List <string> {
                    "bumper", "front", "left", "right", "roof", "rear"
                }
            }
            ;
            else
            {
                parts = new List <string> {
                    tmp
                }
            };

            bool ignorePart = false;

            foreach (string attach in parts)
            {
                ignorePart = false;
                // Cannot remove rear if a player is on the vehicle rear
                if (attach == "rear" || attach == "front")
                {
                    foreach (VehiclePassenger vehiclePassenger in vehiclePassengers)
                    {
                        if (vehiclePassenger.HasPassenger())
                        {
                            string seat = GetSeatName(vehiclePassenger.SeatOffset);
                            if (attach == seat)
                            {
                                Player.Message(session, GetMsg("RemoveSeatError", steamId).Replace("{seat}", seat));
                                ignorePart = true;
                                break;
                            }
                        }
                    }
                }

                if (ignorePart)
                {
                    continue;
                }

                //Get the restrictedSlots relative to vehicle attachment player wants to remove
                List <int>        restrictedSlots   = GetRestrictedSlots(attach, vehicleType, vehicleInventory);
                GlobalItemManager globalItemManager = GlobalItemManager.Instance;
                foreach (int slot in restrictedSlots)
                {
                    //Give vehicle attach to player inventory
                    ItemObject vehicleAttach = vehicleInventory.GetSlot(slot);
                    globalItemManager.GiveItem(session.Player, vehicleAttach);
                    //Remove attachment from vehicle.
                    vehicleInventory.SetSlot(slot, null);
                    vehicleInventory.Invalidate(false);
                    if (tmp != "all")
                    {
                        Player.Message(session, GetMsg("VehicleRemove", steamId).Replace("{attachRemoved}", vehicleAttach.Generator.name).Replace("{vehicleType}", GetMsg("vehicles/" + vehicleType)));
                    }
                }
                if (restrictedSlots.Count == 0)
                {
                    if (tmp != "all")
                    {
                        Player.Message(session, GetMsg("RemoveAttachmentError").Replace("{attachment}", attach));
                    }
                }
            }
            if (tmp == "all")
            {
                Player.Message(session, GetMsg("VehicleRemoveAll").Replace("{vehicleType}", GetMsg("vehicles/" + vehicleType)));
            }
        }