private static bool Prefix(StoreGui __instance) { string name = Traverse.Create(__instance).Field <Trader>("m_trader").Value.m_name; if (OdinPlus.traderNameList.Contains(name)) { var m_selectedItem = Traverse.Create(__instance).Field <Trader.TradeItem>("m_selectedItem").Value; int stack = Mathf.Min(m_selectedItem.m_stack, m_selectedItem.m_prefab.m_itemData.m_shared.m_maxStackSize); if (m_selectedItem == null || (m_selectedItem.m_price * stack - OdinData.Credits > 0)) { return(false); } int quality = m_selectedItem.m_prefab.m_itemData.m_quality; int variant = m_selectedItem.m_prefab.m_itemData.m_variant; if (Player.m_localPlayer.GetInventory().AddItem(m_selectedItem.m_prefab.name, stack, quality, variant, 0L, "") != null) { OdinData.RemoveCredits(m_selectedItem.m_price * stack); //? __instance.m_buyEffects.Create(__instance.gameObject.transform.position, Quaternion.identity, null, 1f); Player.m_localPlayer.ShowPickupMessage(m_selectedItem.m_prefab.m_itemData, m_selectedItem.m_prefab.m_itemData.m_stack); Traverse.Create(__instance).Method("FillList").GetValue(); Gogan.LogEvent("Game", "BoughtItem", m_selectedItem.m_prefab.name, 0L); } return(false); } return(true); }
public static void Prefix(PlayerProfile __instance) { if (CheckPlayerNull()) { return; } OdinData.saveOdinData(Player.m_localPlayer.GetPlayerName() + "_" + ZNet.instance.GetWorldName()); }
private static void Postfix() { if (ZNet.instance.IsDedicated() && ZNet.instance.IsServer()) { OdinData.saveOdinData(ZNet.instance.GetWorldName()); } OdinPlus.UnRegister(); OdinPlus.Clear(); }
public static void PostZone() { LocationManager.Init(); OdinPlus.InitNPC(); if (ZNet.instance.IsDedicated() && ZNet.instance.IsServer()) { OdinData.loadOdinData(ZNet.instance.GetWorldName()); } }
private static void Postfix() { if (ZNet.instance == null) { return; } { if (CheckPlayerNull() || OdinPlus.m_instance.isLoaded) { return; } OdinData.loadOdinData(Player.m_localPlayer.GetPlayerName() + "_" + ZNet.instance.GetWorldName()); } }
public void Choice1() { if (OdinData.GetKey(m_nview.GetZDO().GetString("npcname"))) { Say("Thx!"); OdinData.AddCredits(10, true); return; } else { Say("you got something for me?"); return; } }
public void Choice1() { if (!IsQuestReady()) { return; } var key = HumanVis.NPCnames.GetRandomElement(); OdinData.AddKey(key); PlaceRandom(key); string n = String.Format("Thx, you can find <color=yellow><b>{0}</b></color> near our village", key); Say(n); ResetQuestCD(); }
public override bool UseItem(Humanoid user, ItemDrop.ItemData item) //trans { var name = item.m_dropPrefab.name; int value = 1; if (!OdinData.ItemSellValue.ContainsKey(name)) { Say("$op_god_randomitem " + randomName()); return(false); } value = OdinData.ItemSellValue[name]; OdinData.AddCredits(value * item.m_stack * item.m_quality, m_head); user.GetInventory().RemoveItem(item.m_shared.m_name, item.m_stack); Say("$op_god_takeoffer"); return(true); }
public override bool Interact(Humanoid user, bool hold) { if (hold) { return(false); } if (!OdinData.RemoveCredits(Plugin.RaiseCost)) { Say("$op_god_nocrd"); return(false); } user.GetSkills().RaiseSkill(stlist[cskillIndex], Plugin.RaiseFactor); Say("$op_raise"); return(true); }
public override bool UseItem(Humanoid user, ItemDrop.ItemData item) { if (!IsQuestReady()) { return(false); } var inv = Player.m_localPlayer.GetInventory(); string iname = Tweakers.GetItemData(m_item).m_shared.m_name; int count = Tweakers.GetItemData(m_item).m_shared.m_maxStackSize; if (inv.CountItems(iname) >= count) { inv.RemoveItem(iname, count); OdinData.AddCredits(30, true); Say("$op_human_thx"); ResetQuestCD(); return(true); } else { Say("$op_human_noteought"); return(true); } }