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