Example #1
0
        object GiveKit(NetUser netuser, string kitname)
        {
            if (KitsConfig[kitname] == null)
            {
                SendReply(netuser, unknownKit);
                return(false);
            }

            if (netuser.playerClient == null || netuser.playerClient.rootControllable == null)
            {
                return(false);
            }

            var           inv       = netuser.playerClient.rootControllable.idMain.GetComponent <Inventory>();
            var           kitdata   = (KitsConfig[kitname]) as Dictionary <string, object>;
            var           kitsitems = kitdata["items"] as Dictionary <string, object>;
            List <object> wearList  = kitsitems["wear"] as List <object>;
            List <object> mainList  = kitsitems["main"] as List <object>;
            List <object> beltList  = kitsitems["belt"] as List <object>;

            Inventory.Slot.Preference pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Armor, false, Inventory.Slot.KindFlags.Belt);

            if (wearList.Count > 0)
            {
                pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Armor, false, Inventory.Slot.KindFlags.Belt);
                foreach (object items in wearList)
                {
                    foreach (KeyValuePair <string, object> pair in items as Dictionary <string, object> )
                    {
                        GiveItem(inv, (string)pair.Key, (int)pair.Value, pref);
                    }
                }
            }

            if (mainList.Count > 0)
            {
                pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Default, false, Inventory.Slot.KindFlags.Belt);
                foreach (object items in mainList)
                {
                    foreach (KeyValuePair <string, object> pair in items as Dictionary <string, object> )
                    {
                        GiveItem(inv, (string)pair.Key, (int)pair.Value, pref);
                    }
                }
            }
            if (beltList.Count > 0)
            {
                pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Belt, false, Inventory.Slot.KindFlags.Belt);
                foreach (object items in beltList)
                {
                    foreach (KeyValuePair <string, object> pair in items as Dictionary <string, object> )
                    {
                        GiveItem(inv, (string)pair.Key, (int)pair.Value, pref);
                    }
                }
            }
            SendReply(netuser, kitredeemed);
            return(true);
        }
        object GiveKit(NetUser netuser, string kit, string args)
        {
            var kitConfig = GetDictionaryKit(netuser, kit, args);

            if (kitConfig.Count == 0)
            {
                return(false);
            }
            var kitList = kitConfig["items"] as Dictionary <string, object>;

            if (kitList == null)
            {
                return(false);
            }
            var inv = netuser.playerClient.rootControllable.idMain.GetComponent <Inventory>();

            inv.Clear();
            var wearList = kitList["wear"] as List <object>;
            var mainList = kitList["main"] as List <object>;
            var beltList = kitList["belt"] as List <object>;

            Inventory.Slot.Preference pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Armor, false, Inventory.Slot.KindFlags.Belt);
            if (wearList.Count > 0)
            {
                pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Armor, false, Inventory.Slot.KindFlags.Belt);
                foreach (object items in wearList)
                {
                    object kk = true;
                    foreach (KeyValuePair <string, object> pair in items as Dictionary <string, object> )
                    {
                        GiveItem(inv, (string)pair.Key, (int)pair.Value, pref);
                    }
                }
            }
            if (mainList.Count > 0)
            {
                pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Default, false, Inventory.Slot.KindFlags.Belt);
                foreach (object items in mainList)
                {
                    foreach (KeyValuePair <string, object> pair in items as Dictionary <string, object> )
                    {
                        GiveItem(inv, (string)pair.Key, (int)pair.Value, pref);
                    }
                }
            }
            if (beltList.Count > 0)
            {
                pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Belt, false, Inventory.Slot.KindFlags.Belt);
                foreach (object items in beltList)
                {
                    foreach (KeyValuePair <string, object> pair in items as Dictionary <string, object> )
                    {
                        GiveItem(inv, (string)pair.Key, (int)pair.Value, pref);
                    }
                }
            }
            return(true);
        }
Example #3
0
        public object GiveItem(Inventory inventory, string itemname, int amount, Inventory.Slot.Preference pref)
        {
            if (!dataBock.ContainsKey(itemname))
            {
                return(false);
            }
            ItemDataBlock datablock = dataBock[itemname];

            inventory.AddItemAmount(dataBock[itemname], amount, pref);
            return(true);
        }
Example #4
0
        public object GiveKit(NetUser netuser, string args)
        {
            var kit = GetDictionaryKit(netuser, args);

            if (kit.Count == 0)
            {
                return(false);
            }
            var kitsitems = kit["items"] as Dictionary <string, object>;

            if (kitsitems == null)
            {
                return(false);
            }
            var inv      = netuser.playerClient.rootControllable.idMain.GetComponent <Inventory>();
            var wearList = kitsitems["wear"] as List <object>;
            var mainList = kitsitems["main"] as List <object>;
            var beltList = kitsitems["belt"] as List <object>;

            Inventory.Slot.Preference pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Armor, false, Inventory.Slot.KindFlags.Belt);
            if (wearList.Count > 0)
            {
                pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Armor, false, Inventory.Slot.KindFlags.Belt);
                foreach (object items in wearList)
                {
                    foreach (KeyValuePair <string, object> pair in items as Dictionary <string, object> )
                    {
                        GiveItem(inv, (string)pair.Key, (int)pair.Value, pref);
                    }
                }
            }
            if (mainList.Count > 0)
            {
                pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Default, false, Inventory.Slot.KindFlags.Belt);
                foreach (object items in mainList)
                {
                    foreach (KeyValuePair <string, object> pair in items as Dictionary <string, object> )
                    {
                        GiveItem(inv, (string)pair.Key, (int)pair.Value, pref);
                    }
                }
            }
            if (beltList.Count > 0)
            {
                pref = Inventory.Slot.Preference.Define(Inventory.Slot.Kind.Belt, false, Inventory.Slot.KindFlags.Belt);
                foreach (object items in beltList)
                {
                    foreach (KeyValuePair <string, object> pair in items as Dictionary <string, object> )
                    {
                        if (listWeaponsMods.Contains((string)pair.Key) && args != "Inventory")
                        {
                            InventoryBelt(netuser, (string)pair.Key, (int)pair.Value, new[] { modeWeapon, modeWeapon1 });
                        }
                        else
                        {
                            GiveItem(inv, (string)pair.Key, (int)pair.Value, pref);
                        }
                    }
                }
            }
            return(true);
        }