Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    /// <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;
    }
Exemplo n.º 3
0
    /// <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();//총 판매 금액
    }