void OnLootItem(C2G.StoreLootItem packet, C2G.StoreLootItemAck ack) { if (packet.is_free == true) { if (m_StoreLootInfo == null) { m_StoreLootInfo = new pd_StoreLootInfo(); m_StoreLootInfo.loot_id = m_ItemLoot.ID; m_StoreLootInfo.available_count = m_ItemLoot.refresh_count; m_StoreLootInfo.daily_index = Network.DailyIndex; m_StoreLootInfo.weekly_index = Network.WeeklyIndex; } m_StoreLootInfo.available_count--; m_StoreLootInfo.available_time = Network.Instance.ServerTime.AddMinutes(m_ItemLoot.refresh_free); m_Free.SetActive(false); m_Normal.SetActive(true); } else { Network.PlayerInfo.UseGoods(m_ItemLoot.Price); } GameMain.Instance.UpdatePlayerInfo(); LootItemInfo loot_item_info = null; if (ack.loot_item != null) { ItemManager.Instance.Add(ack.loot_item); loot_item_info = new LootItemInfo(ack.loot_item.item_idn, ack.loot_item.add_piece_count); } else { RuneManager.Instance.Add(ack.loot_rune); loot_item_info = new LootItemInfo(ack.loot_rune.rune_idn, 0); } Popup.Instance.Show(ePopupMode.LootItem, loot_item_info, this); GameMain.Instance.GetCurrentMenu().GetComponent <Store>().UpdateStoreLootFree(); }
void OnPopupOk(StoreConfirmParam parm) { if (m_ItemLoot != null) { long price = Network.PlayerInfo.GetGoodsValue(m_ItemLoot.Price.goods_type); if (m_Free.activeInHierarchy == false && m_ItemLoot.Price.goods_value > price) { Popup.Instance.Show(ePopupMode.MoveStore, m_ItemLoot.Price.goods_type); return; } switch (m_ItemLoot.LootType) { case "LootHero": { if (Network.Instance.CheckCreatureSlotCount(m_ItemLoot.LootCount, true, true, OnLootMore) == false) { return; } if (m_ItemLoot.LootCount == 1) { C2G.LootCreature packet = new C2G.LootCreature(); packet.loot_id = m_ItemLoot.ID; packet.is_free = m_Free.activeSelf; if (Tutorial.Instance.Completed == false) { C2G.TutorialState tutorial_packet = new C2G.TutorialState(); tutorial_packet.tutorial_state = (short)Tutorial.Instance.CurrentState; tutorial_packet.next_tutorial_state = (short)Tutorial.Instance.NextState; tutorial_packet.loot_creature = packet; Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnTutorialLootCreature); } else { Network.GameServer.JsonAsync <C2G.LootCreature, C2G.LootCreatureAck>(packet, OnLootCreature); } return; } else if (m_ItemLoot.LootCount == 10) { C2G.LootCreature10 packet = new C2G.LootCreature10(); packet.loot_id = m_ItemLoot.ID; Network.GameServer.JsonAsync <C2G.LootCreature10, C2G.LootCreature10Ack>(packet, OnLootCreature10); return; } } break; case "LootRune": case "LootItem": { if (m_ItemLoot.LootType == "LootRune" && Network.Instance.CheckRuneSlotCount(m_ItemLoot.LootCount, true, true, OnLootMore) == false) { return; } if (m_ItemLoot.LootCount == 1) { C2G.StoreLootItem packet = new C2G.StoreLootItem(); packet.loot_id = m_ItemLoot.ID; packet.is_free = m_Free.activeSelf; Network.GameServer.JsonAsync <C2G.StoreLootItem, C2G.StoreLootItemAck>(packet, OnLootItem); return; } else if (m_ItemLoot.LootCount == 10) { C2G.StoreLootItem10 packet = new C2G.StoreLootItem10(); packet.loot_id = m_ItemLoot.ID; Network.GameServer.JsonAsync <C2G.StoreLootItem10, C2G.StoreLootItem10Ack>(packet, OnLootItem10); return; } } break; } } else if (m_ItemGoods != null) { if (m_ItemGoods.StoreID != "Gem") { long price = Network.PlayerInfo.GetGoodsValue(m_ItemGoods.Price.goods_type); if (m_ItemGoods.Price.goods_value > price) { Popup.Instance.Show(ePopupMode.MoveStore, m_ItemGoods.Price.goods_type); return; } } C2G.StoreGoodsBuy packet = new C2G.StoreGoodsBuy(); packet.store_id = m_ItemGoods.StoreID; packet.item_id = m_ItemGoods.ID; Network.GameServer.JsonAsync <C2G.StoreGoodsBuy, C2G.StoreGoodsBuyAck>(packet, OnStoreItemBuy); return; } Tooltip.Instance.ShowMessageKey("NotImplement"); }