using UnityEngine; using UnityEngine.UI; using System.Collections; using GCGame.Table; using Games.Item; using GCGame; using System.Collections.Generic; using Games.GlobeDefine; using Games.LogicObj; using Module.Log; using Games.UserCommonData; using System; public class EquipTooltipsLogic : MonoBehaviour { public RectTransform _RootTransform; public EquipTooltipsInfo _ShowingEquipInfo; public EquipTooltipsInfo _CompareEquipInfo; public RectTransform _ShowingEquipRect; public RectTransform _CompareEquipRect; public UISubScollMenu _PopMenu; public GameObject _EquipInfoOffset; public float _PosLeft; public float _PosRight; public GameObject _MenuContainer; public GameObject _BtnSell; private GameItem m_Equip; private GameItemContainer.Type _ContainerPack; private ItemTooltipsLogic.ShowType m_Type; private static EquipTooltipsLogic m_Instance = null; public static EquipTooltipsLogic Instance() { return m_Instance; } private static GameItem m_curItem; private static ItemTooltipsLogic.ShowType m_curType; private static Vector3 _ClickPos; public static void ShowEquipTooltip(int dataId, ItemTooltipsLogic.ShowType type, Vector3 clickPos) { GameItem item = new GameItem(); item.DataID = dataId; if (item.IsValid() && item.IsEquipMent()) { ShowEquipTooltip(item, type, clickPos); } } public static void ShowEquipTooltip(GameItem equip, ItemTooltipsLogic.ShowType type, Vector3 clickPos) { m_curItem = equip; m_curType = type; _ClickPos = clickPos; UIManager.ShowUI(UIInfo.EquipTooltipsRoot, EquipTooltipsLogic.OnShowEquipTip); } private static void OnShowEquipTip(bool bSuccess, object param) { if (!bSuccess) { LogModule.ErrorLog("load equiptooltip error"); return; } EquipTooltipsLogic.Instance().ShowTooltips(m_curItem, m_curType); } void Awake() { m_Instance = this; } void Start() { } public IEnumerator ShowEquip() { _EquipInfoOffset.transform.localPosition = new Vector3(0, 2000, 0); yield return null; _EquipInfoOffset.transform.localPosition = Vector3.zero; } void OnDestroy() { m_Instance = null; } /// /// 显示装备Tooltips /// /// 装备 private void ShowTooltips(GameItem equip, ItemTooltipsLogic.ShowType type) { if (equip == null) { CloseWindow(); return; } if (equip.IsValid() == false) { CloseWindow(); return; } m_Equip = equip; m_Type = type; //if (_ClickPos.x < 0) //{ // _RootTransform.anchoredPosition = new Vector2(_PosRight, _RootTransform.anchoredPosition.y); //} //else //{ // _RootTransform.anchoredPosition = new Vector2(_PosLeft, _RootTransform.anchoredPosition.y); //} _ShowingEquipRect.anchoredPosition = new Vector2(0, 0); HideAllButtons(); //如果本装备位已经装备物品 弹出对比tips int slotindex = equip.GetEquipSlotIndex(); GameItem CompareEquip = GameManager.gameManager.PlayerDataPool.EquipPack.GetItem(slotindex); _ShowingEquipInfo.SetEquipInfo(equip, CompareEquip); _CompareEquipInfo.gameObject.SetActive(false); _PopMenu.Clear(); _PopMenu.gameObject.SetActive(true); //_BtnSell.SetActive(false); if (type == ItemTooltipsLogic.ShowType.Equiped) //点击装备槽位弹出的tips { _ContainerPack = GameItemContainer.Type.TYPE_EQUIPPACK; //脱下按钮 显示 _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3876}")); //装备强化按钮 显示 _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5422}")); if (m_Equip.IsCanXilian()) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5423}")); } _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5424}")); if (m_Equip.IsCanFrenzy()) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5425}")); } //修理 if (equip.Durable != equip.GetEquipMaxDurable()) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5317}")); } //失魂 if (equip.IsShihun()) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5318}")); } ////隐藏战斗力箭头 //m_EquipPowerArrowUpSprite.gameObject.SetActive(false); //m_EquipPowerArrowDownSprite.gameObject.SetActive(false); } else if (type == ItemTooltipsLogic.ShowType.UnEquiped) //点击物品背包弹出的tips { _ContainerPack = GameItemContainer.Type.TYPE_BACKPACK; //装备按钮 显示 _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3874}")); //售出按钮 显示 int cansell = TableManager.GetCommonItemByID(equip.DataID, 0).CanSell; if (equip.CanSell()) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3877}")); } if (!equip.BindFlag) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3580}")); //绑定 } var sellTab = TableManager.GetUserShopItemByID(equip.DataID); if (sellTab != null && !equip.BindFlag) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{4578}")); //出售 } //失魂 if (equip.IsShihun()) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5318}")); } //修理 if (equip.Durable != equip.GetEquipMaxDurable()) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5317}")); } if (CompareEquip != null && CompareEquip.IsValid()) { OpenCompare(slotindex, null); _ShowingEquipRect.anchoredPosition = new Vector2(_PosRight, 0); _CompareEquipRect.anchoredPosition = new Vector2(_PosLeft, 0); } else { _ShowingEquipRect.anchoredPosition = new Vector2(0, 0); _ShowingEquipInfo.SetEquipBaseCombat(0); } } else if (type == ItemTooltipsLogic.ShowType.ShopBuy) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3857}")); ////隐藏战斗力箭头 //m_EquipPowerArrowUpSprite.gameObject.SetActive(false); //m_EquipPowerArrowDownSprite.gameObject.SetActive(false); } else if (type == ItemTooltipsLogic.ShowType.ShopBuyBatch) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3857}")); _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3858}")); ////隐藏战斗力箭头 //m_EquipPowerArrowUpSprite.gameObject.SetActive(false); //m_EquipPowerArrowDownSprite.gameObject.SetActive(false); } else if (type == ItemTooltipsLogic.ShowType.BuyBack) { _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{1086}")); } else if (type == ItemTooltipsLogic.ShowType.Info) //仅显示信息 没有操作按钮的tips { _PopMenu.gameObject.SetActive(false); ////隐藏战斗力箭头 //m_EquipPowerArrowUpSprite.gameObject.SetActive(false); //m_EquipPowerArrowDownSprite.gameObject.SetActive(false); } else if (type == ItemTooltipsLogic.ShowType.Compare) //仅显示信息 没有操作按钮的tips 同时做对比 { if (CompareEquip != null && CompareEquip.IsValid()) { OpenCompare(slotindex, null); _ShowingEquipRect.anchoredPosition = new Vector2(_PosRight, 0); _CompareEquipRect.anchoredPosition = new Vector2(_PosLeft, 0); } else { _ShowingEquipRect.anchoredPosition = new Vector2(0, 0); _ShowingEquipInfo.SetEquipBaseCombat(0); } } else if (type == ItemTooltipsLogic.ShowType.ChatLink) //仅显示信息 没有操作按钮的tips { ////隐藏战斗力箭头 //m_EquipPowerArrowUpSprite.gameObject.SetActive(false); //m_EquipPowerArrowDownSprite.gameObject.SetActive(false); //根据是否可以上架 决定是否显示求购按钮 //if (ConsignSaleBag.isCanConsignSale(m_Equip, true)) //{ // _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3882}")); //} } else if (type == ItemTooltipsLogic.ShowType.CangKu) //仓库界面 仓库物品tips { ////隐藏战斗力箭头 //m_EquipPowerArrowUpSprite.gameObject.SetActive(false); //m_EquipPowerArrowDownSprite.gameObject.SetActive(false); //显示取回按钮 _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3883}")); } else if (type == ItemTooltipsLogic.ShowType.CangKuBackPack) //仓库界面 背包物品tips { ////隐藏战斗力箭头 //m_EquipPowerArrowUpSprite.gameObject.SetActive(false); //m_EquipPowerArrowDownSprite.gameObject.SetActive(false); //显示放入仓库按钮 _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3875}")); } if (_PopMenu.SubBtns.Count > 0) { _MenuContainer.SetActive(true); } else { _MenuContainer.SetActive(false); } StartCoroutine(ShowEquip()); } void HideAllButtons() { _PopMenu.Clear(); } public void CloseWindow() { UIManager.CloseUI(UIInfo.EquipTooltipsRoot); } void OpenCompare(int nEquipSlot,GameItem gameItem) { GameItem equip = GameManager.gameManager.PlayerDataPool.EquipPack.GetItem(nEquipSlot); if (equip != null && equip.IsValid()) { _CompareEquipInfo.gameObject.SetActive(true); _CompareEquipInfo.SetEquipInfo(equip, null); if (equip.BaseCombat > m_curItem.BaseCombat) { _ShowingEquipInfo.SetEquipBaseCombat(-1); } else if (equip.BaseCombat < m_curItem.BaseCombat) { _ShowingEquipInfo.SetEquipBaseCombat(1); } else { _ShowingEquipInfo.SetEquipBaseCombat(0); } _CompareEquipInfo.SetEquipBaseCombat(0); _RootTransform.anchoredPosition = Vector3.zero; } else { _ShowingEquipInfo.SetEquipBaseCombat(0); } //m_TooltipsGrid.gameObject.transform.localPosition = new Vector3(-175, 0, 0); //m_TooltipsGrid.repositionNow = true; } void CloseCompare() { _CompareEquipInfo.gameObject.SetActive(false); //m_TooltipsGrid.repositionNow = true; //m_EquipTooltips.transform.localPosition = new Vector3(0, 0, 0); //m_TooltipsGrid.gameObject.transform.localPosition = new Vector3(0, 0, 0); } public void OnBtnPopMenu(object menuObj) { string menuStr = menuObj as string; if (menuStr == StrDictionary.GetClientDictionaryString("#{3857}")) { // 购买 OnBuyClick(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{3858}")) { // 批量购买 OnBuyBatchClick(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{3882}")) { // 求购 ConsignSaleBuyBt(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{3875}")) { // 放入 CangKuIn(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{3883}")) { // 取出 CangKuOut(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{3874}")) { // 装备 EquipUse(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{3877}")) { // 回收 EquipSell(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{3876}")) { // 卸下 EquipTakeOff(); } //else if (menuStr == StrDictionary.GetClientDictionaryString("#{3885}")) //{ // ItemThrow(); //} else if (menuStr == StrDictionary.GetClientDictionaryString("#{5422}")) { // 强化 EnhanceOnClick(1); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{5423}")) { // 洗炼 EnhanceOnClick(0); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{5424}")) { // 镶嵌 EnhanceOnClick(2); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{5425}")) { // 狂化 EnhanceOnClick(3); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{3880}")) { // 分享 EquipShareLink(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{1086}")) { // 回购 ItemBuyBack(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{5317}")) { // 修理 OnEquipRefit(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{5318}")) { // 失魂 OnEquipShihun(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{3580}")) { // 绑定 BindItem(); } else if (menuStr == StrDictionary.GetClientDictionaryString("#{4578}")) { // 出售 ItemMarket(); } } void BindItem() { LogModule.DebugLog("BindItem"); MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{5396}"), "", BindItemOK, null); } void BindItemOK() { CG_REQ_BIND_ITEM buyPacket = (CG_REQ_BIND_ITEM)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_BIND_ITEM); buyPacket.Itemguid = (long)m_Equip.Guid; buyPacket.SendPacket(); } void BindItemCancel() { } void ItemMarket() { UIManager.ShowUI(UIInfo.MarketRoot, (sucess, param) => { MarketLogic.Instance()._TagPanel.ShowPage(1); MarketLogic.Instance()._MarketPlayerLogic._TagPanel.ShowPage(1); }); CloseWindow(); } public void EquipSell() { if (m_Equip != null && m_Equip.IsValid()) { SysShopController.m_TipSelDataID = m_Equip.DataID; if (m_Equip.IsEquipMent() && m_Equip.StrengthLevel > 0 || m_Equip.IsEquipGem()) { if(m_Equip.IsEquipGem()) { MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{5400}", m_Equip.GetEquipName(false, StrDictionary.GetClientDictionaryString("#{6755}"))), "", EquipSellOK, null, GlobeVar.INVALID_ID, MessageBoxLogic.PASSWORD.INVALID); } else { MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{5400}", m_Equip.GetEquipName()), "", EquipSellOK, null, GlobeVar.INVALID_ID, MessageBoxLogic.PASSWORD.INVALID); } } else if (m_Equip.GetQuality() > ItemQuality.QUALITY_BLUE) { MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{4668}"), "", EquipSellOK, null, GlobeVar.INVALID_ID, MessageBoxLogic.PASSWORD.INVALID); } else { EquipSellOK(); } } CloseWindow(); } void EquipSellOK() { if (m_Equip != null && m_Equip.IsValid()) { List selllist = new List(); selllist.Add(m_Equip); SysShopController.SellItem((int)GameItemContainer.Type.TYPE_BACKPACK, selllist); CloseWindow(); } } void EquipUse() { if (m_Equip != null && m_Equip.IsValid()) { int nPlayerLevel = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level; if (nPlayerLevel < m_Equip.EquipUseLevel) { GUIData.AddNotifyData("#{1255}"); //Singleton.GetInstance().MainPlayer.SendNoticMsg(false, "#{1255}"); return; } int equipProfession = m_Equip.GetProfessionRequire(); if (equipProfession > 0) { int nPlayerProfession = Singleton.Instance.MainPlayer.Profession; if (((equipProfession >> nPlayerProfession) & 1) == 0) { Singleton.GetInstance().MainPlayer.SendNoticMsg(false, "#{1256}"); return; } } if (m_Equip.BindFlag == false && m_Equip.GetBindType() != 0) { MessageBoxLogic.OpenOKCancelBox(3028, 1000, EquipUseOK, null); } else { EquipUseOK(); } } } void EquipUseOK() { if (Singleton.Instance.MainPlayer.CheckEquipItem(m_Equip)) { GameManager.gameManager.SoundManager.PlaySoundEffect(144); Singleton.Instance.MainPlayer.EquipItem(m_Equip); } CloseWindow(); } void EquipTakeOff() { if (m_Equip != null && m_Equip.IsValid()) { if (Singleton.Instance.MainPlayer.CheckUnEquipItem(m_Equip)) { Singleton.Instance.MainPlayer.UnEquipItem(m_Equip); } CloseWindow(); } } void EquipShareLink() { //if (m_Equip != null && m_Equip.IsValid()) //{ // ShareTargetChooseLogic.InitEquipShare(m_Equip); //} //ShareLinkDirectChatInfo(); } void PutInQianKunDai() { //if (m_Equip != null && m_Equip.IsValid()) //{ // if (QianKunDaiLogic.Instance() != null && QianKunDaiLogic.Instance().gameObject.activeSelf) // { // //QianKunDaiLogic.Instance().ChooseStuff(m_Equip, m_curItemSlot); // } // CloseWindow(); //} } void EquipEnchance() { if (m_Equip != null && m_Equip.IsValid()) { bool bRet = GameManager.gameManager.PlayerDataPool.CommonData.GetCommondFlag((int)USER_COMMONFLAG.CF_STRENGTHENFUNCTION_OPENFLAG); if (bRet == false) { Singleton.Instance.MainPlayer.SendNoticMsg(false, "#{2182}"); return; } if (_CompareEquipInfo.gameObject.activeSelf == true) { CloseCompare(); } UIManager.CloseUI(UIInfo.EquipTooltipsRoot); //UIManager.ShowUI(UIInfo.EquipStren, OnShowEquipEnchance); } } void OnShowEquipEnchance(bool bSuccess, object param) { if (m_Equip != null && m_Equip.IsValid()) { //if (EquipStrengthenLogic.Instance() != null) //{ // //设置勾选当前装备 // EquipStrengthenLogic.Instance().SetCurSelectEquip(m_Equip); // EquipStrengthenLogic.Instance().UpdateTab(); //} } } void OnBuyClick() { if (SysShopController.Instance() != null) { //SysShopController.Instance().BuyCurItem(); } } void OnBuyBatchClick() { if (SysShopController.Instance() != null) { //SysShopController.Instance().BuyBatchCurItem(); } } void ShareLinkDirectChatInfo() { UIManager.ShowUI(UIInfo.ChatInfoRoot, ShowChatInfoRootOver); } //寄售行求购 void ConsignSaleBuyBt() { //UIManager.ShowUI(UIInfo.ConsignSaleRoot, BuyItemOpenConsignSale); } void BuyItemOpenConsignSale(bool bSuccess, object param) { if (bSuccess) { //if (ConsignSaleLogic.Instance() != null && m_Equip != null && m_Equip.IsValid() != false) //{ // ConsignSaleLogic.Instance().SearchForAskBuy(m_Equip.GetName()); //} CloseWindow(); } } void ShowChatInfoRootOver(bool bSuccess, object param) { if (bSuccess) { //ChatInfoLogic.Instance().InsertEquipLinkText(m_Equip); EquipTooltipsLogic.Instance().CloseWindow(); } } void CangKuIn() { if (m_Equip != null && m_Equip.IsValid()) { Singleton.Instance.MainPlayer.CangKuPutIn(m_Equip); CloseWindow(); } } void CangKuOut() { if (m_Equip != null && m_Equip.IsValid()) { Singleton.Instance.MainPlayer.CangKuTakeOut(m_Equip); CloseWindow(); } } void EnhanceOnClick(int page = 1) { //bool bRet = GameManager.gameManager.PlayerDataPool.CommonData.GetCommondFlag((int)USER_COMMONFLAG.CF_STRENGTHENFUNCTION_OPENFLAG); //if (bRet == false) //{ // Singleton.Instance.MainPlayer.SendNoticMsg(false, "#{2182}"); // return; //} //没有统一接口,现在只在单独打开功能UI的地方判断当前功能是否开启 if(!IsMakeFuncOpen()) { GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{62935}")); //功能未开启 CloseWindow(); return; } EquipEnhanceRoot.ShowEnhanceRoot(m_Equip, page); //UIManager.ShowUI(UIInfo.EquipEnhance); CloseWindow(); } private const int _MakeFuncTabId = 1; private bool IsMakeFuncOpen() { var functionOpenTab = TableManager.GetFunctionOpenByID(_MakeFuncTabId, 0); if (functionOpenTab == null) { return false; } var _OpenGuide = functionOpenTab.ShowGUIDId; var _OpenLevel = functionOpenTab.OpenLevel; if (_OpenGuide > 0) { if (_OpenGuide > Guide.Instance._FinishGuideID) { return false; } } else if (_OpenLevel > 0) { if (GameManager.gameManager.PlayerDataPool.FunctionOpenState.ContainsKey(_MakeFuncTabId) && GameManager.gameManager.PlayerDataPool.FunctionOpenState[_MakeFuncTabId]) { return true; } else { return false; } } return true; } void ItemBuyBack() { CG_SYSTEMSHOP_BUYBACK buyBackPacket = (CG_SYSTEMSHOP_BUYBACK)PacketDistributed.CreatePacket(MessageID.PACKET_CG_SYSTEMSHOP_BUYBACK); buyBackPacket.SetShopId((int)GameItemContainer.Type.TYPE_BUYBACKPACK); buyBackPacket.SetItemGuid(m_Equip.Guid); buyBackPacket.SendPacket(); CloseWindow(); } private int _DecomConsume = 0; void OnDisassembly() { _DecomConsume = 0; if (m_Equip.StrengthLevel > 0) { GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5336}")); return; } if(m_Equip.IsEquipGem()) { GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5420}")); return; } // 返还物品先进行统计,避免一个物品显示两次 Dic Dictionary returnItems = new Dictionary(); // 基础分解的返还 var equipDecomposizions = TableManager.GetEquipDecomposition().Values; Tab_EquipDecomposition equipDecomTab = null; foreach(var equipDecomposition in equipDecomposizions) { if (equipDecomposition.EquipType == 1&& equipDecomposition.EquipLevel >= m_Equip.GetEquipLevel() && equipDecomposition.Quality == (int)m_Equip.GetQuality()) { equipDecomTab = equipDecomposition; break; } } if (equipDecomTab != null) { _DecomConsume = equipDecomTab.ConsumeNum; } if (equipDecomTab != null && equipDecomTab.ItemNum > 0) { if(returnItems.ContainsKey(equipDecomTab.ItemID)) { returnItems[equipDecomTab.ItemID] += equipDecomTab.ItemNum; } else { returnItems[equipDecomTab.ItemID] = equipDecomTab.ItemNum; } } // 洗练返还 if (m_Equip.XilianPoint > 0) { string getBackItemStr2 = ""; var equipXilianTabs = TableManager.GetEquipPropBarBaptizeConsume().Values; foreach (var consumeTab in equipXilianTabs) { if (consumeTab.MaxLevel >= m_Equip.GetEquipLevel() && consumeTab.Quality == (int)m_Equip.GetQuality()) { if(returnItems.ContainsKey(consumeTab.ConsumeSubType)) { returnItems[consumeTab.ConsumeSubType] += (int)(m_Equip.XilianPoint * consumeTab.ConsumeNum * 0.8f); } else { returnItems[consumeTab.ConsumeSubType] = (int)(m_Equip.XilianPoint * consumeTab.ConsumeNum * 0.8f); } break; } } } // 打孔返还 //var equipQuality = m_Equip.GetQuality(); //int gemPos = m_Equip.GetOpenedGemPos(); //if (gemPos > 0) //{ // var punchTabs = TableManager.GetEquipPunchConsume().Values; // Tab_EquipPunchConsume equipPunchConsume = null; // foreach (var punchTab in punchTabs) // { // if (punchTab.MaxLevel >= m_Equip.GetEquipLevel()) // { // equipPunchConsume = punchTab; // break; // } // } // int getBackCnt = 0; // if (equipPunchConsume != null) // { // for (int i = 0; i < gemPos; ++i) // { // getBackCnt += (int)equipPunchConsume.GetReturnNumbyIndex(i); // } // if (getBackCnt > 0) // { // if(returnItems.ContainsKey(equipPunchConsume.ConsumeSubType)) // { // returnItems[equipPunchConsume.ConsumeSubType] += getBackCnt; // } // else // { // returnItems[equipPunchConsume.ConsumeSubType] = getBackCnt; // } // } // } //} // 狂化返还 if(m_Equip.IsFrenzy) { Tab_CommonItem itemTab = TableManager.GetCommonItemByID(m_Equip.DataID, 0); var fenzyTabs = TableManager.GetEquipFrenzy().Values; foreach (var kv in fenzyTabs) { if ((int)m_Equip.GetQuality() == kv.Quality && itemTab.MinLevelRequire >= kv.EquipLevelMin && itemTab.MinLevelRequire <= kv.EquipLevelMax) { if (returnItems.ContainsKey(kv.ReturnSubType)) { returnItems[kv.ReturnSubType] += kv.ReturnNum; } else { returnItems[kv.ReturnSubType] = kv.ReturnNum; } break; } } } string resultStr = ""; foreach(var kv in returnItems) { Tab_CommonItem tab = TableManager.GetCommonItemByID(kv.Key, 0); if(tab != null) { if (string.IsNullOrEmpty(resultStr)) { resultStr = Utils.GetItemQualityColor(tab.Quality) + tab.Name + "×" + kv.Value + ""; } else { resultStr += "," + Utils.GetItemQualityColor(tab.Quality) + tab.Name + "×" + kv.Value + ""; } } } string tips = StrDictionary.GetClientDictionaryString("#{5337}", m_Equip.GetEquipName(), _DecomConsume, resultStr); MessageBoxLogic.OpenOKCancelBox(tips, null, OnDisassemblyOK); } void OnDisassemblyOK() { long money = GameManager.gameManager.PlayerDataPool.Money.GetMoney_Coin() + GameManager.gameManager.PlayerDataPool.Money.GetMoney_CoinBind(); if (money < _DecomConsume) { GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{6004}") + StrDictionary.GetClientDictionaryString("#{6000}")); return; } CG_DECOMPOSITION_EQUIP packet = (CG_DECOMPOSITION_EQUIP)PacketDistributed.CreatePacket(MessageID.PACKET_CG_DECOMPOSITION_EQUIP); packet.AddEquipguid(m_Equip.Guid); packet.SendPacket(); CloseWindow(); } void OnEquipRefit() { if (m_Equip != null) { foreach (var attr in m_Equip.ExAttrs) { if (attr.XilianTab.PropID == (int)PropID.PropertyID.EQUIP_XILIAN_NOREFIT) { GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5375}")); return; } } } m_Equip.EquipRefit((int)_ContainerPack); CloseWindow(); } private int _ShihunCost = 0; void OnEquipShihun() { var timeSpan = TimeSpan.FromTicks((long)(m_Equip.ShihunTime - GlobalData.ServerAnsiTime) * 10000000L); _ShihunCost = (m_Equip.GetEquipMaxDurable() * (int)m_Equip.GetQuality() * (int)(timeSpan.TotalHours + 1)); string tips = StrDictionary.GetClientDictionaryString("#{5369}", m_Equip.GetEquipName(), _ShihunCost); MessageBoxLogic.OpenOKCancelBox(tips, null, OnEquipShihunOK); //CloseWindow(); } void OnEquipShihunOK() { if (JudgeMoneyLogic.IsMoneyEnough(MONEYTYPE.MONEYTYPE_COIN, _ShihunCost)) { CG_REQ_EQUIP_FIX_INVALID_STATE packet = (CG_REQ_EQUIP_FIX_INVALID_STATE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_EQUIP_FIX_INVALID_STATE); packet.Packettype = (int)_ContainerPack; packet.Equipguid = m_Equip.Guid; packet.SendPacket(); CloseWindow(); } } }