// Token: 0x060006DC RID: 1756 RVA: 0x00038A80 File Offset: 0x00036C80 public static void LoadFromZDO(ItemDrop.ItemData itemData, ZDO zdo) { itemData.m_durability = zdo.GetFloat("durability", itemData.m_durability); itemData.m_stack = zdo.GetInt("stack", itemData.m_stack); itemData.m_quality = zdo.GetInt("quality", itemData.m_quality); itemData.m_variant = zdo.GetInt("variant", itemData.m_variant); itemData.m_crafterID = zdo.GetLong("crafterID", itemData.m_crafterID); itemData.m_crafterName = zdo.GetString("crafterName", itemData.m_crafterName); }
static bool Prefix(ref CookingStation __instance, ref ZNetView ___m_nview, Humanoid user, bool hold) { if (hold) { return(false); } Traverse t_cookingStation = Traverse.Create(__instance); ZDO zdo = ___m_nview.GetZDO(); for (int slot = 0; slot < __instance.m_slots.Length; ++slot) { string itemName = zdo.GetString(nameof(slot) + slot); bool isItemDone = t_cookingStation.Method("IsItemDone", itemName).GetValue <bool>(); if (itemName != "" && itemName != __instance.m_overCookedItem.name && isItemDone) { JustAnotherCookingSkill.raiseCookingSkill(user, JustAnotherCookingSkill.cookingStaticExperienceGain.Value * 0.5f); string qualityPrefix = JustAnotherCookingSkill.getQualityBasedOnSkill(user); // check if such object exist string qualifyMealName = qualityPrefix + itemName; if (Prefab.Cache.GetPrefab <ItemDrop>(qualifyMealName) == null) { Log.LogError($"No object registered for qualify meal: {qualifyMealName}"); return(true); } // instead of processing normal food, we spawn qualified variant MethodInfo method = __instance.GetType().GetMethod("SpawnItem"); if (method == null) { Log.LogError("Method SpawnItem does not exist on type CookingStation"); return(true); } method.Invoke(__instance, new object[] { qualifyMealName }); zdo.Set("slot" + slot, ""); ___m_nview.InvokeRPC(ZNetView.Everybody, "SetSlotVisual", new object[] { slot, "" }); // Unfortunately we replace this hook totally and extra modifications will conflict on those. I gonna find better way return(false); } } return(true); }
// Token: 0x06000AC7 RID: 2759 RVA: 0x0004DA3C File Offset: 0x0004BC3C private IEnumerator ConnectPortals() { for (;;) { this.m_tempPortalList.Clear(); int index = 0; bool done = false; do { done = ZDOMan.instance.GetAllZDOsWithPrefabIterative(this.m_portalPrefab.name, this.m_tempPortalList, ref index); yield return(null); }while (!done); foreach (ZDO zdo in this.m_tempPortalList) { ZDOID zdoid = zdo.GetZDOID("target"); string @string = zdo.GetString("tag", ""); if (!zdoid.IsNone()) { ZDO zdo2 = ZDOMan.instance.GetZDO(zdoid); if (zdo2 == null || zdo2.GetString("tag", "") != @string) { zdo.SetOwner(ZDOMan.instance.GetMyID()); zdo.Set("target", ZDOID.None); ZDOMan.instance.ForceSendZDO(zdo.m_uid); } } } foreach (ZDO zdo3 in this.m_tempPortalList) { string string2 = zdo3.GetString("tag", ""); if (zdo3.GetZDOID("target").IsNone()) { ZDO zdo4 = this.FindRandomUnconnectedPortal(this.m_tempPortalList, zdo3, string2); if (zdo4 != null) { zdo3.SetOwner(ZDOMan.instance.GetMyID()); zdo4.SetOwner(ZDOMan.instance.GetMyID()); zdo3.Set("target", zdo4.m_uid); zdo4.Set("target", zdo3.m_uid); ZDOMan.instance.ForceSendZDO(zdo3.m_uid); ZDOMan.instance.ForceSendZDO(zdo4.m_uid); } } } yield return(new WaitForSeconds(5f)); } yield break; }
public static MagicItem GetMagicItem(string guid) { if (_zdo == null) { return(null); } var magicItemJson = _zdo.GetString(guid); if (string.IsNullOrEmpty(magicItemJson)) { return(null); } var magicItem = JsonMapper.ToObject <MagicItem>(magicItemJson); return(magicItem); }
private static bool DoCheck(Player player, ZDO zdo, string equipKey, string legendaryDataKey, ref ItemDrop.ItemData itemData) { var zdoLegendaryID = zdo.GetString(legendaryDataKey); if (string.IsNullOrEmpty(zdoLegendaryID)) { var hadItem = itemData != null; if (hadItem) { ForceResetVisEquipment(player, itemData); } itemData = null; return(hadItem); } var currentLegendaryID = itemData?.GetMagicItem()?.LegendaryID; if (currentLegendaryID == zdoLegendaryID) { return(false); } var itemHash = zdo.GetInt(equipKey); var itemPrefab = ObjectDB.instance.GetItemPrefab(itemHash); if (itemPrefab?.GetComponent <ItemDrop>()?.m_itemData is ItemDrop.ItemData targetItemData) { itemData = new ExtendedItemData(targetItemData); itemData.m_durability = float.PositiveInfinity; var magicItemComponent = itemData.Extended().AddComponent <MagicItemComponent>(); var stubMagicItem = new MagicItem { Rarity = ItemRarity.Legendary, LegendaryID = zdoLegendaryID }; magicItemComponent.SetMagicItem(stubMagicItem); ForceResetVisEquipment(player, itemData); } return(false); }
static void Prefix(ref CookingStation __instance, ref ZNetView ___m_nview, Humanoid user, bool hold) { if (hold) { return; } Traverse t_cookingStation = Traverse.Create(__instance); ZDO zdo = ___m_nview.GetZDO(); for (int slot = 0; slot < __instance.m_slots.Length; ++slot) { string itemName = zdo.GetString(nameof(slot) + slot); bool isItemDone = t_cookingStation.Method("IsItemDone", itemName).GetValue <bool>(); if (itemName != "" && itemName != __instance.m_overCookedItem.name && isItemDone) { ((Player)user).RaiseSkill((Skills.SkillType)COOKING_SKILL_ID, configCookingStationXPIncrease.Value * 0.75f); //Log($"[Removed Cooked Item from Cook Station] Increase Cooking Skill by {configCookingStationXPIncrease.Value * 0.75f}"); break; } } }
private bool HasBeenSetup() { var bountyID = _zdo.GetString(BountyTarget.BountyIDKey); return(!string.IsNullOrEmpty(bountyID)); }
public bool isFilled() { return(!String.IsNullOrEmpty(zdo.GetString(zdoVar))); }