예제 #1
0
        void OnServerInitialized()
        {
            GlobalItemManager GIM = Singleton <GlobalItemManager> .Instance;

            GIM.GetItem((int)EItemCode.IronOre).GetType().BaseType.GetProperty("ResourceTransitions").SetValue(GIM.GetItem((int)EItemCode.IronOre) as IItem, GenerateTransition((int)EItemCode.ShapedIron), null);
            GIM.GetItem((int)EItemCode.Metal2Ore).GetType().BaseType.GetProperty("ResourceTransitions").SetValue(GIM.GetItem((int)EItemCode.Metal2Ore) as IItem, GenerateTransition((int)EItemCode.ShapedMetal2), null);
            GIM.GetItem((int)EItemCode.Metal3Ore).GetType().BaseType.GetProperty("ResourceTransitions").SetValue(GIM.GetItem((int)EItemCode.Metal3Ore) as IItem, GenerateTransition((int)EItemCode.ShapedMetal3), null);
            GIM.GetItem((int)EItemCode.Metal4Ore).GetType().BaseType.GetProperty("ResourceTransitions").SetValue(GIM.GetItem((int)EItemCode.Metal4Ore) as IItem, GenerateTransition((int)EItemCode.ShapedMetal4), null);
        }
예제 #2
0
        void ConfigStacks()
        {
            GlobalItemManager GIM = GlobalItemManager.Instance;
            Dictionary <int, ItemGeneratorAsset> generators = GIM.GetGenerators();

            generators[170].GetDataProvider().MaxStackSize = (ushort)(int)Config["Steak"];
            generators[144].GetDataProvider().MaxStackSize = (ushort)(int)Config["Steak"];
            generators[279].GetDataProvider().MaxStackSize = (ushort)(int)Config["Steak"];
            generators[338].GetDataProvider().MaxStackSize = (ushort)(int)Config["Steak"];
            generators[322].GetDataProvider().MaxStackSize = (ushort)(int)Config["Steak"];
            generators[76].GetDataProvider().MaxStackSize  = (ushort)(int)Config["FreshOwrong"];
            generators[166].GetDataProvider().MaxStackSize = (ushort)(int)Config["Arrows"];
            generators[36].GetDataProvider().MaxStackSize  = (ushort)(int)Config["OwnershipStake"];
            generators[10].GetDataProvider().MaxStackSize  = (ushort)(int)Config["Spears"];
            generators[325].GetDataProvider().MaxStackSize = (ushort)(int)Config["Spears"];
            generators[331].GetDataProvider().MaxStackSize = (ushort)(int)Config["C4"];
            generators[274].GetDataProvider().MaxStackSize = (ushort)(int)Config["Dynamite"];
        }
예제 #3
0
        ////////////////////////////////////////////////////////////////////////////////////////
        //    Выдаем игроку нужный предмет
        ////////////////////////////////////////////////////////////////////////////////////////

        object GiveItem(PlayerSession session, string itemNameOrIdOrGuid, int amount = 1)
        {
            string             itemName  = itemNameOrIdOrGuid;
            PlayerInventory    inventory = session.WorldPlayerEntity.GetComponent <PlayerInventory>();
            ItemGeneratorAsset generator = FindItem(itemNameOrIdOrGuid);

            if (generator == null)
            {
                PrintWarning("Something is wrong with the item:" + itemNameOrIdOrGuid);
                return(false);
            }

            ItemObject itemObj;

            if (generator.IsStackable())
            {
                itemObj = GlobalItemManager.Instance.CreateItem(generator, amount);
                if (!inventory.GiveItemServer(itemObj))
                {
                    GlobalItemManager.SpawnWorldItem(itemObj, inventory);
                }
            }
            else
            {
                int amountGiven = 0;
                while (amountGiven < amount)
                {
                    itemObj = GlobalItemManager.Instance.CreateItem(generator);
                    if (!inventory.GiveItemServer(itemObj))
                    {
                        GlobalItemManager.SpawnWorldItem(itemObj, inventory);
                    }
                    amountGiven++;
                }
            }

            return(true);
        }
예제 #4
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();
                }
            }
        }
예제 #5
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();
                }
            }
        }
예제 #6
0
        private object GiveItem(IPlayer target, string itemNameOrId, int amount = 1, string container = "main")
        {
            if (config.ItemBlacklist.Contains(itemNameOrId.ToLower()))
            {
                return(null);
            }

            string itemName = itemNameOrId;

#if HURTWORLDITEMV2
            PlayerSession      session   = target.Object as PlayerSession;
            PlayerInventory    inventory = session.WorldPlayerEntity.GetComponent <PlayerInventory>();
            ItemGeneratorAsset generator = FindItem(itemNameOrId);

            ItemObject itemObj;
            if (generator.IsStackable())
            {
                itemObj = GlobalItemManager.Instance.CreateItem(generator, amount);
                if (!inventory.GiveItemServer(itemObj))
                {
                    GlobalItemManager.SpawnWorldItem(itemObj, inventory);
                }
            }
            else
            {
                int amountGiven = 0;
                while (amountGiven < amount)
                {
                    itemObj = GlobalItemManager.Instance.CreateItem(generator);
                    if (!inventory.GiveItemServer(itemObj))
                    {
                        GlobalItemManager.SpawnWorldItem(itemObj, inventory);
                    }
                    amountGiven++;
                }
            }
#elif HURTWORLD
            PlayerSession   session   = target.Object as PlayerSession;
            PlayerInventory inventory = session.WorldPlayerEntity.GetComponent <PlayerInventory>();
            GlobalItemManager.Instance.GiveItem(session.Player, FindItem(itemNameOrId), amount);
#elif REIGNOFKINGS
            Player player = target.Object as Player;
            if (player == null)
            {
                return(false);
            }

            Container itemContainer = null;
            switch (container.ToLower())
            {
            case "belt":
                itemContainer = player.CurrentCharacter.Entity.GetContainerOfType(CollectionTypes.Hotbar);
                break;

            case "main":
                itemContainer = player.CurrentCharacter.Entity.GetContainerOfType(CollectionTypes.Inventory);
                break;
            }

            InvItemBlueprint blueprint = InvDefinitions.Instance.Blueprints.GetBlueprintForName(itemName, true, true);
            if (blueprint == null)
            {
                return(false);
            }

            ContainerManagement containerManagement = blueprint.TryGet <ContainerManagement>();
            int stackableAmount = containerManagement != null ? containerManagement.StackLimit : 0;
            int amountGiven     = 0;
            while (amountGiven < amount)
            {
                int amountToGive           = Mathf.Min(stackableAmount, amount - amountGiven);
                InvGameItemStack itemStack = new InvGameItemStack(blueprint, amountToGive, null);
                if (!ItemCollection.AutoMergeAdd(itemContainer.Contents, itemStack))
                {
                    int stackAmount = amountToGive - itemStack.StackAmount;
                    if (stackAmount != 0)
                    {
                        amountGiven += stackAmount;
                    }
                    else
                    {
                        break;
                    }
                }
                else
                {
                    amountGiven += amountToGive;
                }
                if (itemContainer.Contents.FreeSlotCount == 0)
                {
                    break;
                }
            }
#elif RUST
            Item item = ItemManager.Create(FindItem(itemNameOrId));
            if (item == null)
            {
                return(false);
            }

            item.amount = amount;

            BasePlayer basePlayer = target.Object as BasePlayer;
            if (basePlayer == null)
            {
                return(false);
            }

            ItemContainer itemContainer = null;
            switch (container.ToLower())
            {
            case "belt":
                itemContainer = basePlayer.inventory.containerBelt;
                break;

            case "main":
                itemContainer = basePlayer.inventory.containerMain;
                break;
            }

            if (!basePlayer.inventory.GiveItem(item, itemContainer))
            {
                item.Remove();
                return(false);
            }

            itemName = item.info.displayName.english;

            if (config.ShowPopupNotices)
            {
                target.Command("note.inv", item.info.itemid, amount);
                target.Command("gametip.showgametip", Lang("ItemReceived", target.Id, itemName, amount));
                timer.Once(2f, () => target.Command("gametip.hidegametip"));
            }
#endif
            if (config.ShowChatNotices)
            {
                Message(target, "ItemReceived", itemName, amount);
            }

            if (config.LogToConsole)
            {
                Log($"{target.Name} {amount} x {itemName}");
            }

            return(true);
        }
예제 #7
0
        void Loaded()
        {
            LoadDefaultConfig();

            GlobalItemManager GIM = Singleton <GlobalItemManager> .Instance;

            (GIM.GetItem(4) as ConsumableItem)?.StackSize((int)Config["Steak"]);
            (GIM.GetItem(5) as ConsumableItem)?.StackSize((int)Config["Steak"]);
            (GIM.GetItem(6) as ConsumableItem)?.StackSize((int)Config["Steak"]);
            (GIM.GetItem(25) as ConsumableItem)?.StackSize((int)Config["FreshOwrong"]);
            (GIM.GetItem(53) as ConstructionItem)?.StackSize((int)Config["BlastFurnace"]);
            (GIM.GetItem(88) as GearItem)?.StackSize((int)Config["Backpacks"]);
            (GIM.GetItem(90) as GearItem)?.StackSize((int)Config["Backpacks"]);
            (GIM.GetItem(91) as ConstructionItem)?.StackSize((int)Config["ConstructionHammer"]);
            (GIM.GetItem(93) as ConstructionItem)?.StackSize((int)Config["OwnershipStake"]);
            (GIM.GetItem(127) as ConstructionItem)?.StackSize((int)Config["Drills"]);
            (GIM.GetItem(144) as ConstructionItem)?.StackSize((int)Config["C4"]);
            (GIM.GetItem(155) as ExplosiveItem)?.StackSize((int)Config["Dynamite"]);
            (GIM.GetItem(166) as VehicleAttachmentWheelItem)?.StackSize((int)Config["Wheels"]);
            (GIM.GetItem(167) as VehicleAttachmentWheelItem)?.StackSize((int)Config["Wheels"]);
            (GIM.GetItem(171) as VehicleAttachmentEngineItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(172) as VehicleAttachmentEngineItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(173) as VehicleAttachmentEngineItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(174) as VehicleAttachmentGearBoxItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(175) as VehicleAttachmentGearBoxItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(178) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(179) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(180) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(181) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(182) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(183) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(184) as VehicleAttachmentWheelItem)?.StackSize((int)Config["Wheels"]);
            (GIM.GetItem(192) as VehicleAttachmentWheelItem)?.StackSize((int)Config["Wheels"]);
            (GIM.GetItem(193) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(194) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(195) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(196) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(197) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(198) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(199) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(200) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(201) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(202) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(203) as VehicleAttachmentSimpleItem)?.StackSize((int)Config["CarPanels"]);
            (GIM.GetItem(204) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(205) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(206) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(207) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(222) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(223) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(224) as PaintMaskItem)?.StackSize((int)Config["Designs"]);
            (GIM.GetItem(232) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(233) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(234) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(235) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(236) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(237) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(238) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(239) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(240) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(241) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(242) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(243) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(244) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(245) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(246) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(247) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(248) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(249) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(250) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(251) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(252) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(253) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(254) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(255) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(256) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(257) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(258) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(259) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(260) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(261) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(262) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(263) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(264) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(265) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(266) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(267) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(268) as PaintItem)?.StackSize((int)Config["Paints"]);
            (GIM.GetItem(273) as ConstructionItem)?.StackSize((int)Config["LandcrabMine"]);
            (GIM.GetItem(274) as ConstructionItem)?.StackSize((int)Config["PoisonTrap"]);
            (GIM.GetItem(276) as GearItem)?.StackSize((int)Config["Backpacks"]);
            (GIM.GetItem(277) as GearItem)?.StackSize((int)Config["Backpacks"]);
            (GIM.GetItem(296) as VehicleAttachmentEngineItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(297) as VehicleAttachmentEngineItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(298) as VehicleAttachmentEngineItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(299) as VehicleAttachmentEngineItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(300) as VehicleAttachmentGearBoxItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(301) as VehicleAttachmentGearBoxItem)?.StackSize((int)Config["CarParts"]);
            (GIM.GetItem(304) as MeleeWeaponItem)?.StackSize((int)Config["Wrench"]);
            (GIM.GetItem(305) as VehicleAttachmentWheelItem)?.StackSize((int)Config["Wheels"]);
            (GIM.GetItem(306) as VehicleAttachmentWheelItem)?.StackSize((int)Config["Wheels"]);
            (GIM.GetItem(307) as ConstructionItem)?.StackSize((int)Config["Drills"]);
            (GIM.GetItem(308) as ConstructionItem)?.StackSize((int)Config["Drills"]);
            (GIM.GetItem(310) as ConstructionItem)?.StackSize((int)Config["Sign"]);
        }
예제 #8
0
        //void OnServerInitialized() => Loaded();
        void Loaded()
        {
            LoadDefaultConfig();

            GlobalItemManager GIM = Singleton <GlobalItemManager> .Instance;

            GIM.GetItem(4).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(4) as IItem, (int)Config["Steak"], null);
            GIM.GetItem(5).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(5) as IItem, (int)Config["Steak"], null);
            GIM.GetItem(6).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(6) as IItem, (int)Config["Steak"], null);
            GIM.GetItem(12).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(12) as IItem, (int)Config["Ruby"], null);
            GIM.GetItem(25).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(25) as IItem, (int)Config["FreshOwrong"], null);
            GIM.GetItem(48).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(48) as IItem, (int)Config["Arrows"], null);
            GIM.GetItem(53).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(53) as IItem, (int)Config["BlastFurnace"], null);
            GIM.GetItem(88).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(88) as IItem, (int)Config["Backpacks"], null);
            GIM.GetItem(90).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(90) as IItem, (int)Config["Backpacks"], null);
            GIM.GetItem(91).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(91) as IItem, (int)Config["ConstructionHammer"], null);
            GIM.GetItem(93).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(93) as IItem, (int)Config["OwnershipStake"], null);
            GIM.GetItem(127).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(127) as IItem, (int)Config["Drills"], null);
            GIM.GetItem(128).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(128) as IItem, (int)Config["Spears"], null);
            GIM.GetItem(144).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(144) as IItem, (int)Config["C4"], null);
            GIM.GetItem(155).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(155) as IItem, (int)Config["Dynamite"], null);
            GIM.GetItem(162).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(162) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(166).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(166) as IItem, (int)Config["Wheels"], null);
            GIM.GetItem(167).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(167) as IItem, (int)Config["Wheels"], null);
            GIM.GetItem(171).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(171) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(172).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(172) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(173).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(173) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(174).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(174) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(175).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(175) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(178).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(178) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(179).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(179) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(180).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(180) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(181).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(181) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(182).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(182) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(183).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(183) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(184).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(184) as IItem, (int)Config["Wheels"], null);
            GIM.GetItem(185).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(185) as IItem, (int)Config["GoatPanels"], null);
            GIM.GetItem(186).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(186) as IItem, (int)Config["GoatPanels"], null);
            GIM.GetItem(187).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(187) as IItem, (int)Config["GoatPanels"], null);
            GIM.GetItem(188).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(188) as IItem, (int)Config["GoatPanels"], null);
            GIM.GetItem(189).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(189) as IItem, (int)Config["GoatPanels"], null);
            GIM.GetItem(190).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(190) as IItem, (int)Config["GoatPanels"], null);
            GIM.GetItem(192).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(192) as IItem, (int)Config["Wheels"], null);
            GIM.GetItem(193).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(193) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(194).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(194) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(195).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(195) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(196).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(196) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(197).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(197) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(198).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(198) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(199).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(199) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(200).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(200) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(201).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(201) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(202).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(202) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(203).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(203) as IItem, (int)Config["CarPanels"], null);
            GIM.GetItem(204).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(204) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(205).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(205) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(206).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(206) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(207).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(207) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(222).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(222) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(223).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(223) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(224).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(224) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(226).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(226) as IItem, (int)Config["Spears"], null);
            GIM.GetItem(227).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(227) as IItem, (int)Config["Spears"], null);
            GIM.GetItem(228).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(228) as IItem, (int)Config["Spears"], null);
            GIM.GetItem(232).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(232) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(233).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(233) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(234).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(234) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(235).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(235) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(236).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(236) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(237).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(237) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(238).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(238) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(239).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(239) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(240).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(240) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(241).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(241) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(242).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(242) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(243).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(243) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(244).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(244) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(245).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(245) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(246).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(246) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(247).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(247) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(248).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(248) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(249).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(249) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(250).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(250) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(251).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(251) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(252).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(252) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(253).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(253) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(254).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(254) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(255).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(255) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(256).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(256) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(257).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(257) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(258).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(258) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(259).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(259) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(260).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(260) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(261).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(261) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(262).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(262) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(263).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(263) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(264).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(264) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(265).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(265) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(266).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(266) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(267).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(267) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(268).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(268) as IItem, (int)Config["Paints"], null);
            GIM.GetItem(273).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(273) as IItem, (int)Config["LandcrabMine"], null);
            GIM.GetItem(274).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(274) as IItem, (int)Config["PoisonTrap"], null);
            GIM.GetItem(276).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(276) as IItem, (int)Config["Backpacks"], null);
            GIM.GetItem(277).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(277) as IItem, (int)Config["Backpacks"], null);
            GIM.GetItem(296).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(296) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(297).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(297) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(298).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(298) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(299).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(299) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(300).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(300) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(301).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(301) as IItem, (int)Config["CarParts"], null);
            GIM.GetItem(304).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(304) as IItem, (int)Config["Wrench"], null);
            GIM.GetItem(305).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(305) as IItem, (int)Config["Wheels"], null);
            GIM.GetItem(306).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(306) as IItem, (int)Config["Wheels"], null);
            GIM.GetItem(307).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(307) as IItem, (int)Config["Drills"], null);
            GIM.GetItem(308).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(308) as IItem, (int)Config["Drills"], null);
            GIM.GetItem(310).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(310) as IItem, (int)Config["Sign"], null);
            GIM.GetItem(314).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(314) as IItem, (int)Config["Wrench"], null);
            GIM.GetItem(322).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(322) as IItem, (int)Config["Diamonds"], null);
            GIM.GetItem(323).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(323) as IItem, (int)Config["Diamonds"], null);
            GIM.GetItem(327).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(327) as IItem, (int)Config["KangaParts"], null);
            GIM.GetItem(328).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(328) as IItem, (int)Config["KangaParts"], null);
            GIM.GetItem(329).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(329) as IItem, (int)Config["KangaParts"], null);
            GIM.GetItem(330).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(330) as IItem, (int)Config["KangaParts"], null);
            GIM.GetItem(331).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(331) as IItem, (int)Config["KangaParts"], null);
            GIM.GetItem(332).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(332) as IItem, (int)Config["KangaParts"], null);
            GIM.GetItem(333).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(333) as IItem, (int)Config["KangaParts"], null);
            GIM.GetItem(334).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(334) as IItem, (int)Config["KangaParts"], null);
            GIM.GetItem(335).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(335) as IItem, (int)Config["KangaParts"], null);
            GIM.GetItem(336).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(336) as IItem, (int)Config["KangaPanels"], null);
            GIM.GetItem(337).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(337) as IItem, (int)Config["KangaPanels"], null);
            GIM.GetItem(338).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(338) as IItem, (int)Config["KangaPanels"], null);
            GIM.GetItem(339).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(339) as IItem, (int)Config["KangaPanels"], null);
            GIM.GetItem(340).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(340) as IItem, (int)Config["KangaPanels"], null);
            GIM.GetItem(341).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(341) as IItem, (int)Config["KangaPanels"], null);
            GIM.GetItem(342).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(342) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(343).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(343) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(344).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(344) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(345).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(345) as IItem, (int)Config["Designs"], null);
            GIM.GetItem(346).GetType().BaseType.GetProperty("MaxStackSize").SetValue(GIM.GetItem(346) as IItem, (int)Config["Designs"], null);
        }
예제 #9
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)));
            }
        }