void OnClickBroadCast(UILabel label) { string url = null; bool isMiniChat = false; if (label != null)// && BigChatPopup.localPosition == Vector3.zero //큰 팝업 켜져있는지 { url = label.GetUrlAtPosition(UICamera.lastHit.point); //url = BigTextList[(uint)CurChatType].textLabel.GetUrlAtPosition(UICamera.lastHit.point); } else//작은 팝업이 켜져있음 { url = MiniTextList.textLabel.GetUrlAtPosition(UICamera.lastHit.point); isMiniChat = true; } if (!TownState.TownActive || string.IsNullOrEmpty(url)) { if (isMiniChat)//유알엘이 아니였음 큰 팝업으로 간주함 { OnClickBigChatPopup(); } return; } //Debug.Log("chat click url " + url); if (url.Contains("colosseum")) { string[] split = url.Split(','); long roomId = 0; if (split.Length < 1 || !long.TryParse(split[1], out roomId)) { Debug.LogError("Colosseum URL Parse error! " + url); return; } NetworkClient.instance.SendPMsgColosseumEnterRoomC(roomId); } else if (url.Contains("multyRaid")) { string[] split = url.Split(','); long roomId = 0; if (split.Length < 1 || !long.TryParse(split[1], out roomId)) { Debug.LogError("Colosseum URL Parse error! " + url); return; } NetworkClient.instance.SendPMsgMultiBossEnterRoomC(roomId); } else if (url.Contains("item")) { string[] split = url.Split('/'); if (split.Length < 1) { Debug.LogError("Item URL pase error! " + url); return; } Debug.Log(url); string[] equipInfo = split[1].Split(','); int unId = int.Parse(equipInfo[0]); //int unBasicValue = int.Parse(equipInfo[1]); int unAttack = int.Parse(equipInfo[1]); int unEnchantTime = int.Parse(equipInfo[2]); string[] optionInfo = split[2].Split('|'); List <NetData.ItemAbilityData> abilityList = new List <NetData.ItemAbilityData>(); NetData._ItemData itemData = new NetData._ItemData((ulong)unId, (uint)unId, (ushort)unEnchantTime, 0, 0, (uint)unAttack); //Item.ItemValueInfo basicInfo = _LowDataMgr.instance.GetLowDataItemValueInfo(itemData.GetEquipLowData().BasicOptionIndex); //if (basicInfo != null) //{ // NetData.ItemAbilityData abilityData = new NetData.ItemAbilityData(); // abilityData.Ability = (AbilityType)basicInfo.OptionId; // abilityData.Value = unBasicValue; // abilityList.Add(abilityData); //} for (int i = 0; i < optionInfo.Length; i++) { string[] ability = optionInfo[i].Split(','); uint id = uint.Parse(ability[0]); float value = float.Parse(ability[1]); Item.ItemValueInfo itemValue = _LowDataMgr.instance.GetLowDataItemValueInfo(id); abilityList.Add(new NetData.ItemAbilityData(itemValue.OptionId, value)); } itemData.StatList = abilityList; UIMgr.OpenDetailPopup(this, itemData, GetComponent <UIPanel>().depth + 3); } }
/// <summary> 아이템 기본 정보를 보여준다. </summary> public override void LateInit() { base.LateInit(); if (parameters.Length <= 0) { return; } uint lowDataId = (uint)parameters[0]; Vector3 newPos = (Vector3)parameters[1]; newPos.z = 0; newPos.y += 0.15f; //newPos.x += 0.35f; Debug.Log(string.Format("click item lowDataID {0}", lowDataId)); EquipItemTf.position = newPos; UseItemTf.position = newPos; InvenSlot.SetLowDataItemSlot(lowDataId, 0); Item.EquipmentInfo equipLowData = _LowDataMgr.instance.GetLowDataEquipItemInfo(lowDataId); if (equipLowData != null)//장비 아이템이다. { EquipItemTf.gameObject.SetActive(true); UseItemTf.gameObject.SetActive(false); InvenSlot.transform.parent = EquipItemTf.FindChild("ItemRoot"); Item.ItemValueInfo valueLowData = _LowDataMgr.instance.GetLowDataItemValueInfo(equipLowData.BasicOptionIndex); UILabel nameLbl = EquipItemTf.FindChild("name").GetComponent <UILabel>(); UILabel descLbl = EquipItemTf.FindChild("desc").GetComponent <UILabel>(); UILabel abilityLbl = EquipItemTf.FindChild("ability_value").GetComponent <UILabel>(); UILabel rndLbl = EquipItemTf.FindChild("rnd_ability").GetComponent <UILabel>(); nameLbl.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor(equipLowData.Grade), _LowDataMgr.instance.GetStringItem(equipLowData.NameId)); descLbl.text = _LowDataMgr.instance.GetStringItem(equipLowData.DescriptionId); abilityLbl.text = string.Format("{0} : {1}", uiMgr.GetAbilityLocName((AbilityType)valueLowData.OptionId) , uiMgr.GetAbilityStrValue((AbilityType)valueLowData.OptionId, valueLowData.BasicValue * 0.1f)); rndLbl.text = string.Format(_LowDataMgr.instance.GetStringCommon(179) , 0, 3); //생성되고 잘리는경우 위치값조정필요 if (EquipItemTf.localPosition.x > 454) { EquipItemTf.SetLocalX(454f); } else if (EquipItemTf.localPosition.x < -447) { EquipItemTf.SetLocalX(-447f); } } else//소비 아이템이다. { EquipItemTf.gameObject.SetActive(false); UseItemTf.gameObject.SetActive(true); InvenSlot.transform.parent = UseItemTf.FindChild("ItemRoot"); UILabel nameLbl = UseItemTf.FindChild("name").GetComponent <UILabel>(); UILabel descLbl = UseItemTf.FindChild("desc").GetComponent <UILabel>(); Item.ItemInfo useLowData = _LowDataMgr.instance.GetUseItem(lowDataId); nameLbl.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor(useLowData.Grade), _LowDataMgr.instance.GetStringItem(useLowData.NameId)); descLbl.text = _LowDataMgr.instance.GetStringItem(useLowData.DescriptionId); //생성되고 잘리는경우 위치값조정필요 if (UseItemTf.localPosition.x > 385) { UseItemTf.SetLocalX(385); } else if (UseItemTf.localPosition.x < -507) { UseItemTf.SetLocalX(-507); } } InvenSlot.transform.localPosition = Vector3.zero; InvenSlot.transform.localScale = Vector3.one; }
/// <summary> 아이템클릭시 </summary> void OnclicItemPopup(NetData.ShopItemInfo info, int price, Color nameColor) { //아이템세부정보 //구매팝업에서는 무조건 1개로시작함 string dec = ""; string itemName = ""; if (_LowDataMgr.instance.GetLowDataEquipItemInfo(info.GoodsId) != null)//장비아이템 { Item.EquipmentInfo equipLowData = _LowDataMgr.instance.GetLowDataEquipItemInfo(info.GoodsId); Item.ItemValueInfo valueLowData = _LowDataMgr.instance.GetLowDataItemValueInfo(equipLowData.BasicOptionIndex); //dec += _LowDataMgr.instance.GetStringItem(equipLowData.NameId); itemName = _LowDataMgr.instance.GetStringItem(equipLowData.NameId); //dec += "\n\n"; dec += _LowDataMgr.instance.GetStringItem(equipLowData.DescriptionId); dec += "\n\n"; dec += string.Format("{0} : {1}", uiMgr.GetAbilityLocName((AbilityType)valueLowData.OptionId) , uiMgr.GetAbilityStrValue((AbilityType)valueLowData.OptionId, valueLowData.BasicValue));; dec += "\n\n"; dec += string.Format(_LowDataMgr.instance.GetStringCommon(179) , 0, 3); } else { Item.ItemInfo useLowData = _LowDataMgr.instance.GetUseItem(info.GoodsId); itemName = _LowDataMgr.instance.GetStringItem(useLowData.NameId); //dec += _LowDataMgr.instance.GetStringItem(useLowData.NameId); //dec += "\n\n"; dec += _LowDataMgr.instance.GetStringItem(useLowData.DescriptionId); } GoodsName.text = itemName; GoodsName.color = nameColor; GoodsInfo.text = dec; // 시간 / 한정판매아이템일경우 초기화시간자리에 정보를 표시해줘야함 if (CurShopType == 102 || CurShopType == 202) { //TimeItemInfo.gameObject.SetActive(true); ulong start = _LowDataMgr.instance.GetLowDataShopById(info.DbIndex).shopopentime; ulong end = _LowDataMgr.instance.GetLowDataShopById(info.DbIndex).shopclosetime; //577 {0}년{0}월{1}일 // 260 {0}분 string Start = string.Format(_LowDataMgr.instance.GetStringCommon(577), start.ToString().Substring(0, 4), start.ToString().Substring(4, 2), start.ToString().Substring(6, 2)); Start += string.Format(_LowDataMgr.instance.GetStringCommon(260), start.ToString().Substring(8, 2)); //Start += ":"; //Start += start.ToString().Substring(2, 2); //Start += ":"; //Start += start.ToString().Substring(4, 2); string End = string.Format(_LowDataMgr.instance.GetStringCommon(577), end.ToString().Substring(0, 4), end.ToString().Substring(4, 2), end.ToString().Substring(6, 2)); End += string.Format(_LowDataMgr.instance.GetStringCommon(260), end.ToString().Substring(8, 2)); //string End = end.ToString().Substring(0, 2); //End += ":"; //End += end.ToString().Substring(2, 2); //End += ":"; //End += end.ToString().Substring(4, 2); TimeItemInfo.text = string.Format("{0} ~ {1}", Start, End); } UseSellAmount = 1; UseSellTotalAmount = (int)info.Account; TotalNum.text = UseSellAmount.ToString(); TotalPrice.text = (UseSellAmount * price).ToString(); TotalPrice.color = ulong.Parse(TotalPrice.text) <= money ? Color.white : Color.red; //돈이 모자르면 빨간색 EventDelegate.Set(BtnPlus.onClick, delegate() { OnclickUseCount(1, price); }); EventDelegate.Set(BtnMinus.onClick, delegate() { OnclickUseCount(-1, price); }); EventDelegate.Set(BtnMax.onClick, delegate() { OnclickUseCount((int)info.Account, price); }); EventDelegate.Set(BuyBtn.onClick, delegate() { if (UseSellAmount != 0) { string msg = string.Format(_LowDataMgr.instance.GetStringCommon(472), itemName); uiMgr.AddPopup(_LowDataMgr.instance.GetStringCommon(141), msg, _LowDataMgr.instance.GetStringCommon(467), _LowDataMgr.instance.GetStringCommon(76), null, () => { SceneManager.instance.ShowNetProcess("PurchaseShopItme"); NetworkClient.instance.SendPMsgShopByItemC(info.Idx, CurShopType, info.GoodsId, (uint)UseSellAmount, info.DbIndex); }); } }); // TotalPrice.text = ((ulong)UseSellTotalAmount * price) * ToString();//총 판매 금액 }