Пример #1
0
            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);
            }
Пример #2
0
 public static void Prefix(PlayerProfile __instance)
 {
     if (CheckPlayerNull())
     {
         return;
     }
     OdinData.saveOdinData(Player.m_localPlayer.GetPlayerName() + "_" + ZNet.instance.GetWorldName());
 }
Пример #3
0
 private static void Postfix()
 {
     if (ZNet.instance.IsDedicated() && ZNet.instance.IsServer())
     {
         OdinData.saveOdinData(ZNet.instance.GetWorldName());
     }
     OdinPlus.UnRegister();
     OdinPlus.Clear();
 }
Пример #4
0
 public static void PostZone()
 {
     LocationManager.Init();
     OdinPlus.InitNPC();
     if (ZNet.instance.IsDedicated() && ZNet.instance.IsServer())
     {
         OdinData.loadOdinData(ZNet.instance.GetWorldName());
     }
 }
Пример #5
0
 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());
     }
 }
Пример #6
0
 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;
     }
 }
Пример #7
0
        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();
        }
Пример #8
0
        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);
        }
Пример #9
0
        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);
        }
Пример #10
0
        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);
            }
        }