示例#1
0
        public void SetData(ConfSkyEye conSky, bool isUnLock, bool hasReward)
        {
            skyEyeId = conSky.id;
            ConfNpc npc = ConfNpc.Get(conSky.npcId);

            this.m_presuadeId         = conSky.refuteId;
            this.m_personNameLab.Text = isUnLock?LocalizeModule.Instance.GetString(npc.name):"?";
            this.m_detailLab.Text     = LocalizeModule.Instance.GetString(conSky.descs);
            this.m_personTex.Visible  = isUnLock;

            this.m_maskCom.Visible = !isUnLock;

            if (isUnLock)
            {
                this.m_personTex.TextureName = npc.icon;
            }
            int hasUnLockNumber = 0;

            this.m_resGrid.EnsureSize <SkyEyeProp>(conSky.collectorIds.Length);
            for (int i = 0; i < conSky.collectorIds.Length; i++)
            {
                SkyEyeProp    icon         = this.m_resGrid.GetChild <SkyEyeProp>(i);
                PlayerPropMsg playerProp   = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(conSky.collectorIds[i]);
                bool          isPropUnLock = false;
                if (playerProp != null && playerProp.Count > 0)
                {
                    isPropUnLock = true;
                    hasUnLockNumber++;
                }
                icon.SetData(conSky.collectorIds[i], isPropUnLock);
                icon.Visible = true;
            }
            this.m_chatBtn.Visible = !hasReward && (hasUnLockNumber == conSky.collectorIds.Length);
        }
        public override void OnShow(object param)
        {
            base.OnShow(param);
            this.m_buy.AddClickCallBack(OnUseBtn);
            this.m_quit.AddClickCallBack(OnQuit);
            this.m_buyOnly.AddClickCallBack(OnUseBtn);
            PlayerPropMsg m_Prop = GetCurrentProp();

            if (m_Prop == null)
            {
                this.m_buyLable.Text     = LocalizeModule.Instance.GetString("goods_buy");
                this.m_contentLable.Text = LocalizeModule.Instance.GetString("balance_no_time");
                this.m_numImg.Visible    = false;
            }
            else
            {
                this.m_buyLable.Text       = LocalizeModule.Instance.GetString("goods_use");
                this.m_contentLable.Text   = LocalizeModule.Instance.GetString("balance_have_time");
                this.m_propCountLable.Text = m_Prop.Count.ToString();
                this.m_numImg.Visible      = true;
            }
            bool twoContinue = GlobalInfo.GAME_NETMODE == GameNetworkMode.Network;//NewGuid.GuidNewManager.Instance.GetProgressByIndex(5);

            this.m_buy.Visible     = twoContinue;
            this.m_quit.Visible    = twoContinue;
            this.m_buyOnly.Visible = !twoContinue;
            if (GlobalInfo.GAME_NETMODE == GameNetworkMode.Network)
            {
                TimeModule.Instance.SetTimeout(TimeOut, 60f);
            }
        }
示例#3
0
        public PlayerPropMsg GetBagInfosByID(long id)
        {
            PlayerPropMsg prop = null;

            m_bag_infos.TryGetValue(id, out prop);
            return(prop);
        }
示例#4
0
 private void OnPropUseTips(long propID, int type, int continueTime)
 {
     if (0 == type)
     {
         if (propID <= 0)
         {
             return;
         }
         if (propID == m_propId)
         {
             this.m_propUseEffect.Visible = true;
             this.m_propUseEffect.ReplayEffect();
             this.m_propUseEffect.SetEffectHideTime(4f);
         }
     }
     else if (1 == type && m_isArrowTips && !this.m_arrowImg.Visible)
     {
         this.m_arrowImg.Visible = true;
         if (continueTime > 0)
         {
             TimeModule.Instance.SetTimeout(OnHideArrow, continueTime);
         }
     }
     else if (2 == type && needForceTips)
     {
         PlayerPropMsg propMsg = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(this.m_propId);
         if (propMsg != null && propMsg.Count > 0)
         {
             this.m_tishi_02Effect.EffectPrefabName = "UI_daoju_tishi02.prefab";
             this.m_tishi_02Effect.Visible          = true;
             this.m_wordHintCom.SetContent(LocalizeModule.Instance.GetString(ConfProp.Get(m_propId).description));
             this.m_wordHintCom.Visible = true;
         }
     }
 }
示例#5
0
        public bool SetData(ConfSkyEye skyeye, int index, SkyeyePersonDetailComponent detailUI)
        {
            this.m_detailUI = detailUI;
            m_confSkyeye    = skyeye;
            this.SkyEyeID   = skyeye.id;
            int num = 0;

            this.m_hasReward = GlobalInfo.MY_PLAYER_INFO.IsSkyEyeRewardContainId(skyeye.id);
            //this.m_alphaTweener.Delay = Mathf.Sqrt(index * 0.9f);// index * SkyeyeUILogic.PERSONTIME;
            this.m_scaleTweener.Delay = Mathf.Sqrt(index * 0.9f);; // index * SkyeyeUILogic.PERSONTIME;

            this.m_alphaText.Delay = this.m_scaleTweener.Delay + this.m_scaleTweener.Duration;
            this.m_posText.Delay   = this.m_scaleTweener.Delay + this.m_scaleTweener.Duration;
            isLock = true;
            for (int i = 0; i < m_confSkyeye.collectorIds.Length; i++)
            {
                PlayerPropMsg playerProp = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(m_confSkyeye.collectorIds[i]);
                if (playerProp != null && playerProp.Count > 0)
                {
                    num++;
                    if (m_confSkyeye.collectorIds[i] == m_confSkyeye.keyCollectorId)
                    {
                        isLock = false;
                    }
                }
            }

            this.m_personName.Visible = !isLock;
            this.m_lockCom.Visible    = isLock;
            this.m_personCom.Visible  = !isLock;
            m_progress             = num / (float)m_confSkyeye.collectorIds.Length;
            this.m_tipsLab.Visible = false;
            if (m_progress == 1 && !m_hasReward)
            {
                this.m_tipsLab.Text    = "(" + LocalizeModule.Instance.GetString("theeye_tips") + ")";
                this.m_tipsLab.Visible = true;
            }

            if (m_hasReward)
            {
                this.m_progressFillImg.Color = m_targetColor;
                this.m_personName.color      = m_targetColor;
            }
            else
            {
                this.m_progressFillImg.Color = m_srcColor;
                this.m_personName.color      = m_srcColor;
            }
            //this.m_progressBar.Value = m_progress;
            if (!isLock)
            {
                ConfNpc npc = ConfNpc.Get(m_confSkyeye.npcId);
                this.m_personName.Text       = LocalizeModule.Instance.GetString(npc.name);
                this.m_personImg.TextureName = npc.icon;
            }
            return(m_hasReward);
        }
示例#6
0
        private void OnSkillFinish(long carryId)
        {
            ConfProp confprop = ConfProp.Get(carryId);

            if (confprop == null)
            {
                return;
            }
            ConfSkill releaseSkill = ConfSkill.Get(confprop.skillId);

            if (releaseSkill == null)
            {
                return;
            }
            if (carryId == this.m_propId)
            {
                m_fillImage.FillTime = this.m_confSKill.cd;
                if (GuidNewNodeManager.Instance.GetCommonParams(GuidNewNodeManager.PropFree) == this.m_propId.ToString())
                {
                    ResetSkill();
                    return;
                }
                GlobalInfo.MY_PLAYER_INFO.ReducePropForBag(this.m_propId);
                PlayerPropMsg propMsg = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(this.m_propId);
                if (propMsg == null)
                {
                    this.m_lbRemain.Text = "0";
                }
                else
                {
                    this.m_lbRemain.Text = propMsg.Count.ToString();
                }
                ResetSkill();


                Dictionary <UBSParamKeyName, object> internalBuyItemKeypoint = new Dictionary <UBSParamKeyName, object>();
                internalBuyItemKeypoint.Add(UBSParamKeyName.Description, UBSDescription.PROPUSE);
                internalBuyItemKeypoint.Add(UBSParamKeyName.PropItem_ID, carryId);
                internalBuyItemKeypoint.Add(UBSParamKeyName.PropItem_Num, 1);
                UserBehaviorStatisticsModules.Instance.LogEvent(UBSEventKeyName.game_propuse, 1, internalBuyItemKeypoint);

                //this.CanClick = false;
                //this.m_btnItem.Enable = false;
            }
            else if (IsFunctionProp(releaseSkill))
            {
                if (IsFunctionProp(this.m_confSKill) || this.m_lbRemain.Text.Equals("+"))
                {
                    m_fillImage.FillTime = releaseSkill.cd;
                    this.m_isCD          = true;
                }
            }
        }
示例#7
0
        public static List <PropData> getPropData(Dictionary <long, PlayerPropMsg> propMsg)
        {
            if (propMsg == null || 0 == propMsg.Count)
            {
                return(new List <PropData>());
            }

            List <PlayerPropMsg> datas = new List <PlayerPropMsg>(propMsg.Values);

            List <PropData> propList = new List <PropData>();

            for (int i = 0; i < datas.Count; i++)
            {
                PlayerPropMsg pd   = datas[i];
                ConfProp      prop = ConfProp.Get(pd.PropId);
                if (prop == null)
                {
                    continue;
                }

                if ((int)PROP_TYPE.E_EXHABIT == prop.type) //陈列物件除外
                {
                    continue;
                }

                if (prop.heapSize > 0 && prop.heapSize < pd.Count)
                {
                    int cellNum      = pd.Count / prop.heapSize;
                    int finalPropNum = pd.Count % prop.heapSize;
                    for (int j = 0; j < cellNum; j++)
                    {
                        PropData realPropData = new PropData(prop, prop.heapSize);
                        propList.Add(realPropData);
                    }
                    if (finalPropNum != 0)
                    {
                        PropData realPropData = new PropData(prop, finalPropNum);
                        propList.Add(realPropData);
                    }
                }
                else
                {
                    PropData realPropData = new PropData(prop, pd.Count);
                    propList.Add(realPropData);
                }
            }
            return(propList);
        }
示例#8
0
        private void OnSkillReset(long carryId)
        {
            ConfProp confprop = ConfProp.Get(carryId);

            if (confprop == null)
            {
                return;
            }
            ConfSkill releaseSkill = ConfSkill.Get(confprop.skillId);

            if (releaseSkill == null)
            {
                return;
            }
            if (carryId == this.m_propId)
            {
                if (GuidNewNodeManager.Instance.GetCommonParams(GuidNewNodeManager.PropFree) == this.m_propId.ToString())
                {
                    this.m_isCD = false;
                    return;
                }
                PlayerPropMsg propMsg = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(this.m_propId);
                if (propMsg != null)
                {
                    //this.m_canClick = true;
                    //this.m_btnItem.Enable = true;
                    this.m_imgItem.SetGray(false);
                }
                else
                {
                    //this.CanClick = false;
                    this.m_lbRemain.Text = "+";
                    this.m_imgItem.SetGray(true);
                    //this.m_btnItem.Enable = false;
                }
                this.m_isCD = false;
            }
            else if (IsFunctionProp(releaseSkill))
            {
                if (IsFunctionProp(this.m_confSKill) || this.m_lbRemain.Text.Equals("+"))
                {
                    this.m_isCD = false;
                }
            }
        }
示例#9
0
        private void OnSure(GameObject obj)
        {
            ConfProp confProp = m_bagData.prop.prop;

            if (m_bagData.infoType == PropInfoTypeEnum.Use)
            {
                if (confProp.type == 3)
                {
                    EngineCoreEvents.AudioEvents.PlayAudio.SafeInvoke(Audio.AudioType.UISound, GameCustomAudioKey.gift_open.ToString());
                    CSDropReq req = new CSDropReq();
                    req.PropId = confProp.id;
                    req.Count  = m_curNum;
                    GameEvents.NetWorkEvents.SendMsg.SafeInvoke(req);
                }
                else
                {
                    EngineCoreEvents.AudioEvents.PlayAudio.SafeInvoke(Audio.AudioType.UISound, GameCustomAudioKey.item_use.ToString());
                    if (confProp.skillId <= 0)
                    {
                        PopUpManager.OpenNormalOnePop("skill not exits");
                    }
                    GameSkillManager.Instance.OnStartSkill(confProp.id, m_curNum);
                }
            }
            else if (m_bagData.infoType == PropInfoTypeEnum.Sale)
            {
                EngineCoreEvents.AudioEvents.PlayAudio.SafeInvoke(Audio.AudioType.UISound, GameCustomAudioKey.item_sold.ToString());
                PlayerPropSellRequest req        = new PlayerPropSellRequest();
                PlayerPropMsg         playerProp = new PlayerPropMsg();
                playerProp.PropId = confProp.id;
                playerProp.Count  = m_curNum;
                req.PlayerProps.Add(playerProp);
                GameEvents.NetWorkEvents.SendMsg.SafeInvoke(req);
                System.Collections.Generic.Dictionary <UBSParamKeyName, object> _params = new System.Collections.Generic.Dictionary <UBSParamKeyName, object>()
                {
                    { UBSParamKeyName.ContentID, confProp.id },
                    { UBSParamKeyName.ContentType, 1 },
                    { UBSParamKeyName.Description, UBSDescription.PROPSELL }
                };
                UserBehaviorStatisticsModules.Instance.LogEvent(UBSEventKeyName.Pror_use, 1.0f, _params);
            }
            //GameEvents.UIEvents.UI_Bag_Event.OnPropCost.SafeInvoke(confProp.id);
            //EngineCoreEvents.UIEvent.HideUIEvent.SafeInvoke(UIDefine.UI_BAGUSE);
        }
示例#10
0
        public void SetData(long id, GameMainArrowTipData arrowData)
        {
            if (arrowData != null)
            {
                this.m_isArrowTips = (arrowData.propId == id);
            }
            this.m_propId = id;
            ConfProp confProp = ConfProp.Get(id);

            if (confProp == null)
            {
                Visible = false;
            }
            this.m_skillId        = confProp.skillId;
            this.m_confSKill      = ConfSkill.Get(this.m_skillId);
            this.m_imgItem.Sprite = confProp.icon;
            PlayerPropMsg propMsg = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(id);

            this.m_keepPropNum = propMsg == null ? 0 : propMsg.Count;

            if (GuidNewNodeManager.Instance.GetCommonParams(GuidNewNodeManager.PropFree).Equals(this.m_propId.ToString()))
            {
                this.m_lbRemain.Text = "free";
                return;
            }

            if (propMsg == null || propMsg.Count <= 0)
            {
                this.m_lbRemain.Text = "+";
                this.m_imgItem.SetGray(true);
                //this.CanClick = false;
                //this.m_btnItem.Enable = false;
            }
            else
            {
                this.m_lbRemain.Text = propMsg.Count.ToString();
                this.m_propId        = id;

                //this.CanClick = true;
                //this.m_btnItem.Enable = true;
                this.m_imgItem.SetGray(false);
            }
            //ReflashBtnEnable();
        }
示例#11
0
        public void BtnPropItem(GameObject obj)
        {
            this.m_arrowImg.Visible = false;
            if (m_isArrowTips)
            {
                OnHideArrow();
            }
            if (m_isCD || m_isforbid)
            {
                return;
            }
            //新手引导无限使用
            if (GuidNewNodeManager.Instance.GetCommonParams(GuidNewNodeManager.PropFree).Equals(this.m_propId.ToString()))
            {
                StartReleaseSkill();
                return;
            }

            PlayerPropMsg propMsg = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(this.m_propId);

            //直接购买
            if (propMsg == null || propMsg.Count <= 0)
            {
                if (GlobalInfo.GAME_NETMODE == GameNetworkMode.Standalone)
                {
                    return;
                }
                EngineCoreEvents.AudioEvents.PlayAudio.SafeInvoke(Audio.AudioType.UISound, EngineCommonAudioKey.Button_Click_Common.ToString());
                (LogicHandler as GameMainUILogic).OnRequestBuyPropInfoEvent(this.m_propId);
            }
            else
            {
                if (NewGuid.GuidNewNodeManager.Instance.GetNodeStatus(NewGuid.GuidNewNodeManager.ForbidPropUse) == NodeStatus.None)
                {
                    return;
                }
                StartReleaseSkill();
                this.m_tishi_02Effect.Visible = false;
                this.m_wordHintCom.Visible    = false;
            }
        }
示例#12
0
        public static List <PropData> getPropData(RepeatedField <PlayerPropMsg> propMsg)
        {
            if (propMsg == null)
            {
                return(new List <PropData>());
            }
            List <PropData> propList = new List <PropData>();

            for (int i = 0; i < propMsg.Count; i++)
            {
                PlayerPropMsg pd   = propMsg[i];
                ConfProp      prop = ConfProp.Get(pd.PropId);
                if (prop == null)
                {
                    continue;
                }
                if (prop.heapSize > 0 && prop.heapSize < pd.Count)
                {
                    int cellNum      = pd.Count / prop.heapSize;
                    int finalPropNum = pd.Count % prop.heapSize;
                    for (int j = 0; j < cellNum; j++)
                    {
                        PropData realPropData = new PropData(prop, prop.heapSize);
                        propList.Add(realPropData);
                    }
                    if (finalPropNum != 0)
                    {
                        PropData realPropData = new PropData(prop, finalPropNum);
                        propList.Add(realPropData);
                    }
                }
                else
                {
                    PropData realPropData = new PropData(prop, pd.Count);
                    propList.Add(realPropData);
                }
            }
            return(propList);
        }
示例#13
0
        public static long GetCurrentPropTips()
        {
            List <SceneItemEntity> notFoundEntityList = GameEvents.MainGameEvents.GetSceneItemEntityList(3);
            PlayerPropMsg          objectLens         = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(1); //寻物镜
            PlayerPropMsg          detector           = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(2); //探测仪
            PlayerPropMsg          bomb = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(3);               //炸弹

            if (notFoundEntityList.Count <= 2)
            {
                if (objectLens != null && objectLens.Count > 0)
                {
                    return(1);
                }
                else if (bomb != null && bomb.Count > 0)
                {
                    return(3);
                }
                else if (detector != null && detector.Count > 0)
                {
                    return(2);
                }
            }
            else
            {
                if (bomb != null && bomb.Count > 0)
                {
                    return(3);
                }
                else if (detector != null && detector.Count > 0)
                {
                    return(2);
                }
                else if (objectLens != null && objectLens.Count > 0)
                {
                    return(1);
                }
            }
            return(-1);
        }
示例#14
0
        private void AddBagInfo(long id, int count)
        {
            GameEvents.UIEvents.UI_Bag_Event.Tell_OnPropIn.SafeInvoke(id);

            ConfProp conf_prop = ConfProp.Get(id);

            if ((int)PROP_TYPE.E_FUNC == conf_prop.type || (int)PROP_TYPE.E_CHIP == conf_prop.type ||
                (int)PROP_TYPE.E_NROMAL == conf_prop.type || (int)PROP_TYPE.E_ENERGE == conf_prop.type ||
                (int)PROP_TYPE.E_OFFICER == conf_prop.type || (int)PROP_TYPE.E_EXHABIT == conf_prop.type ||
                (int)PROP_TYPE.E_GIFT == conf_prop.type)
            {
                if (m_bag_infos.ContainsKey(id))
                {
                    m_bag_infos[id].Count += count;
                }
                else
                {
                    PlayerPropMsg prop = new PlayerPropMsg();
                    prop.PropId = id;
                    prop.Count  = count;
                    m_bag_infos.Add(id, prop);
                }

                if (m_recent_prop_infos.ContainsKey(id))
                {
                    m_recent_prop_infos[id].Count += count;
                }
                else
                {
                    PlayerPropMsg prop = new PlayerPropMsg();
                    prop.PropId = id;
                    prop.Count  = count;
                    m_recent_prop_infos.Add(id, prop);
                }
            }
        }
        private void OnUseBtn(GameObject obj)
        {
            PlayerPropMsg m_Prop = GetCurrentProp();

            if (m_Prop != null)
            {
                //使用
                OnUseProp();
            }
            else //购买
            {
                MessageHandler.RegisterMessageHandler(MessageDefine.SCMarketItemResponse, OnRes);
                CSMarketItemRequest req = new CSMarketItemRequest();
                req.PropId = 4;

#if !NETWORK_SYNC || UNITY_EDITOR
                GameEvents.NetWorkEvents.SendAsyncMsg.SafeInvoke(req);
#else
                GameEvents.NetWorkEvents.SendMsg.SafeInvoke(req);
#endif

                //BuyManager.Instance.ShopBuy(4, CurrentBuyNum, CurrentPropNum, ShopType.Prop, this.m_itemInfo.MarketItems.Cost, this.m_itemInfo.MarketItems.CostType);
            }
        }
示例#16
0
        private void SwitchButton()
        {
            if (null == m_itemdata)
            {
                return;
            }
            m_count_BG.Visible = true;
            if (m_is_fast_buy)
            {
                //因不足的原因,弹出快速购买
                PlayerPropMsg item = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(m_itemdata.m_prop.id);

                if (null != item && item.Count > 0)
                {
                    m_disCount_root.Visible   = false;
                    m_oriPrice_root.Visible   = false;
                    m_buy_btn.Visible         = false;
                    m_limited_buy_btn.Visible = false;
                    m_use_btn.Visible         = true;
                    m_count_lab.Text          = string.Format("x{0}", item.Count);

                    return;
                }
            }

            if (ShopType.Vit == m_curShopType && 0 == m_itemdata.m_limitNumber && !m_itemdata.m_hasDis)
            {
                //道具购买次数限制触发
                PlayerPropMsg item = GlobalInfo.MY_PLAYER_INFO.GetBagInfosByID(m_itemdata.m_prop.id);

                if (null != item && item.Count > 0)
                {
                    m_disCount_root.Visible   = false;
                    m_oriPrice_root.Visible   = false;
                    m_buy_btn.Visible         = false;
                    m_limited_buy_btn.Visible = false;
                    m_use_btn.Visible         = true;
                    m_count_lab.Text          = string.Format("x{0}", item.Count);

                    return;
                }
            }

            m_use_btn.Visible = false;
            m_buy_btn.Visible = true;
            m_count_lab.Text  = string.Format("x{0}", m_itemdata.m_number);

            if (m_itemdata.m_hasDis)
            {
                m_cost = m_itemdata.m_disPrice;
                m_disCount_root.Visible = true;
                m_oriPrice_root.Visible = true;
                m_disCount_lab.Text     = string.Format("-{0}%", m_itemdata.m_disCount);
                m_oriPrice_lab.Text     = m_itemdata.m_oriPrice.ToString();
                m_limited_cost_lab.Text = m_cost_lab.Text = m_itemdata.m_disPrice.ToString();
            }
            else
            {
                m_cost = m_itemdata.m_oriPrice;
                m_disCount_root.Visible = false;
                m_oriPrice_root.Visible = false;
                m_limited_cost_lab.Text = m_cost_lab.Text = m_itemdata.m_oriPrice.ToString();
                if (ShopType.Vit == m_curShopType)
                {
                    m_count_BG.Visible = false;
                    m_count_lab.Text   = "";
                }
            }

            if (ShopType.Coin == m_curShopType && null == m_icon_effect)
            {
                m_icon_effect = Make <GameUIEffect>("UI_jinbi_goumai01");
            }

            if (null != m_icon_effect)
            {
                m_icon_effect.EffectPrefabName = string.Format("UI_jinbi_goumai0{0}.prefab", m_idx + 1);
            }

            if (m_itemdata.m_maxNumber > 0)
            {
                m_limited_max_num = m_itemdata.m_maxNumber;
            }

            if (m_itemdata.m_limitNumber > 0)
            {
                m_limited_buy_btn.Visible = true;
                m_limited_buy_btn.SetGray(false);
                m_limited_buy_btn.Enable = true;


                m_buy_btn.Visible = false;

                m_limited_buy_num_txt.Text = string.Format("({0}/{1})", m_itemdata.m_limitNumber, m_limited_max_num);
            }
            else if (m_itemdata.m_limitNumber == 0)
            {
                m_limited_buy_btn.Visible = true;
                m_limited_buy_btn.SetGray(true);
                m_limited_buy_btn.Enable = false;


                m_buy_btn.Visible = false;

                m_limited_buy_num_txt.Text = string.Format("({0}/{1})", m_itemdata.m_limitNumber, m_limited_max_num);
            }
            else
            {
                m_limited_buy_btn.Visible = false;
                m_buy_btn.Visible         = true;
            }
        }
        public static void Call(IMessage message)
        {
            //IMessage response = null;
            int messageId = message.GetMessageId();

            UnityEngine.Debug.Log("send standalon message " + messageId);
            switch (messageId)
            {
            case MessageDefine.CSSceneSuspendRequest:     //场景暂停
                SCSceneSuspendResponse suspendRes = new SCSceneSuspendResponse();
                suspendRes.Result = 0;
                MessageHandler.Call(MessageDefine.SCSceneSuspendResponse, suspendRes);
                break;

            case MessageDefine.SCSuspendResponse:     //拼图场景暂停
            {
                SCSuspendResponse suspendResponse = new SCSuspendResponse();
                suspendResponse.Result = 0;
                MessageHandler.Call(MessageDefine.SCSuspendResponse, suspendResponse);
            }
            break;

            case MessageDefine.CSSceneResumeRequest:     //场景恢复
                SCSceneResumeResponse resumeRes = new SCSceneResumeResponse();
                resumeRes.Result = 0;
                MessageHandler.Call(MessageDefine.SCSceneResumeResponse, resumeRes);
                break;

            case MessageDefine.CSResumeRequest:    //拼图场景恢复
            {
                SCResumeResponse resumeResponse = new SCResumeResponse();
                resumeResponse.Result = 0;
                MessageHandler.Call(MessageDefine.SCResumeResponse, resumeResponse);
            }
            break;

            case MessageDefine.CSSkillEmitRequest:     //技能释放
                CSSkillEmitRequest  emitReq = (CSSkillEmitRequest)message;
                SCSkillEmitResponse emitRes = new SCSkillEmitResponse();
                long propID = emitReq.PropId;
                emitRes.PropId = emitReq.PropId;
                ConfProp confProp = ConfProp.Get(propID);
                if (confProp == null)
                {
                    emitRes.SkillId = 0;
                    emitRes.Result  = 0;
                    MessageHandler.Call(MessageDefine.SCSkillEmitResponse, emitRes);
                    return;
                }
                emitRes.SkillId = confProp.skillId;
                emitRes.Result  = 1;
                MessageHandler.Call(MessageDefine.SCSkillEmitResponse, emitRes);
                break;

            case MessageDefine.CSSceneRewardRequest:      //局内结算
                #region
                CSSceneRewardRequest  rewardRequest = (CSSceneRewardRequest)message;
                ConfScene             confScene     = ConfScene.Get(rewardRequest.SceneId);
                SCSceneRewardResponse rewardRes     = new SCSceneRewardResponse();
                rewardRes.SceneId    = rewardRequest.SceneId;
                rewardRes.OutputCoin = confScene.outputMoney;
                rewardRes.OutputCash = confScene.outputCash;
                rewardRes.OutputVit  = confScene.outputVit;
                rewardRes.OutputExp  = confScene.outputExp;
                if (confScene.dropId > 0)
                {
                    ConfDropOut2 dropOut = ConfDropOut2.Get(confScene.dropId);
                    if (!string.IsNullOrEmpty(dropOut.fixed2))
                    {
                        List <DropOutJsonData> rdm_datas = CommonHelper.ParseDropOut(dropOut.fixed2);
                        for (int i = 0; i < rdm_datas.Count; i++)
                        {
                            GiftItem giftItem = new GiftItem();
                            giftItem.ItemId = rdm_datas[i].value;
                            giftItem.Num    = rdm_datas[i].count;
                            rewardRes.GiftItems.Add(giftItem);
                        }
                    }
                }
                MessageHandler.Call(MessageDefine.SCSceneRewardResponse, rewardRes);
                #endregion
                break;

            case MessageDefine.CSBuildingListReq:     //建筑物数据
                #region
                SCBuildingListResp buildRes  = new SCBuildingListResp();
                BuildingInfo       buildInfo = new BuildingInfo();
                buildInfo.BuildingId = 1;
                buildInfo.Status     = 1;
                buildRes.Infos.Add(buildInfo);
                MessageHandler.Call(MessageDefine.SCBuildingListResp, buildRes);
                #endregion
                break;

            case MessageDefine.CSTaskIdListRequest:     //获取任务列表
                #region
                //SCTaskIdListResponse taskIdListRes = new SCTaskIdListResponse();
                //TaskIdInfo taskIdInfo = new TaskIdInfo();
                //taskIdInfo.TaskId = 6001;
                //taskIdInfo.PlayerTaskId = taskIdInfo.TaskId * 10;
                //taskIdListRes.TaskIdInfos.Add(taskIdInfo);
                //MessageHandler.Call(MessageDefine.SCTaskIdListResponse, taskIdListRes);
                #endregion
                break;

            case MessageDefine.CSTaskListRequest:
                #region 任务
                CSTaskListRequest taskListRequest = (CSTaskListRequest)message;

                if (taskListRequest.TaskIds.Count > 1)
                {
                    //SCAcceptTaskNotice taskNotice = new SCAcceptTaskNotice();
                    if (taskListRequest.TaskIds[0] > 0)
                    {
                        SCTaskStatusChangeNotice taskStatusChange = new SCTaskStatusChangeNotice();
                        taskStatusChange.PlayerTaskId = taskListRequest.TaskIds[0] * 10;
                        taskStatusChange.TaskId       = taskListRequest.TaskIds[0];
                        taskStatusChange.Status       = 3;
                        MessageHandler.Call(MessageDefine.SCTaskStatusChangeNotice, taskStatusChange);
                    }

                    SCAcceptTaskNotice taskNotice = new SCAcceptTaskNotice();

                    AcceptTaskInfo acceptNewTaskInfo = new AcceptTaskInfo();
                    acceptNewTaskInfo.TaskId       = taskListRequest.TaskIds[1];
                    acceptNewTaskInfo.PlayerTaskId = acceptNewTaskInfo.TaskId * 10;
                    acceptNewTaskInfo.Status       = 1;
                    taskNotice.AcceptTasks.Add(acceptNewTaskInfo);


                    MessageHandler.Call(MessageDefine.SCAcceptTaskNotice, taskNotice);
                }
                #endregion
                //SCTaskListResponse taskListRes = new SCTaskListResponse();
                //TaskInfo taskInfo = new TaskInfo();
                //taskInfo.TaskId = 6001;
                //taskInfo.Status = 1;
                //taskInfo.PlayerTaskId = taskInfo.TaskId * 10;
                //taskListRes.TaskInfos.Add(taskInfo);
                //MessageHandler.Call(MessageDefine.SCTaskListResponse, taskListRes);
                break;

            case MessageDefine.CSChapterListRequest:     //章节
                #region
                SCChapterListResponse chapterListRes = new SCChapterListResponse();
                PlayerChapterInfo     chapterInfo    = new PlayerChapterInfo();
                chapterInfo.PlayerChapterId = 1000;
                chapterInfo.ChapterId       = 1;
                chapterInfo.Status          = 1;
                chapterListRes.Chapters.Add(chapterInfo);
                MessageHandler.Call(MessageDefine.SCChapterListResponse, chapterListRes);
                #endregion
                break;

            case MessageDefine.CSEnterRequest:
                #region 拼图
                SCEnterResponse enterRes = new SCEnterResponse();
                enterRes.Result = 0;
                CSEnterRequest enterRequest = (CSEnterRequest)message;
                long           sceneId      = enterRequest.SceneId;
                int            sceneType    = (int)(sceneId / CommonData.C_SCENE_TYPE_ID);

                int vitConsume = 0;
                int seconds    = 0;
                for (int i = 0; i < enterRequest.OfficerIds.Count; i++)
                {
                    long        officerId = enterRequest.OfficerIds[i];
                    ConfOfficer officer   = ConfOfficer.Get(officerId);
                    vitConsume += officer.vitConsume;
                    seconds    += officer.secondGain;
                    enterRes.OfficerIds.Add(officerId);
                }
                //if (sceneType == CommonData.C_SEEK_SCENE_START_ID) //寻物
                //{

                //}
                enterRes.Seconds    = seconds;
                enterRes.VitConsume = vitConsume;
                if (sceneType == CommonData.C_JIGSAW_SCENE_START_ID)     //拼图
                {
                    enterRes.Seconds = 3600;
                }
                //else if (sceneType == CommonData.C_CARTOON_SCENE_START_ID) // 事件
                //{

                //}
                MessageHandler.Call(MessageDefine.SCEnterResponse, enterRes);
                #endregion
                break;

            case MessageDefine.CSFinishRequest:
                #region 拼图结束
                CSFinishRequest finishRequest = (CSFinishRequest)message;

                SCFinishResponse finishRes = new SCFinishResponse();
                finishRes.Result  = 0;
                finishRes.SceneId = finishRequest.SceneId;
                Reward reward = new Reward();
                reward.Percent = 100;
                reward.Type    = 3;
                reward.Num     = 15;
                finishRes.Rewards.Add(reward);
                MessageHandler.Call(MessageDefine.SCFinishResponse, finishRes);
                #endregion
                break;

            case MessageDefine.CSSearchSceneSelectOfficerReq:
                #region   警员
                CSSearchSceneSelectOfficerReq selectOfficerReq = (CSSearchSceneSelectOfficerReq)message;
                int officerVitConsume  = 0;
                int officerCostSeconds = 300;
                for (int i = 0; i < selectOfficerReq.OfficerIds.Count; i++)
                {
                    long        officerId   = selectOfficerReq.OfficerIds[i];
                    ConfOfficer confOfficer = ConfOfficer.Get(officerId / 100);
                    officerVitConsume += confOfficer.vitConsume;
                    //officerCostSeconds += confOfficer.secondGain;
                }

                SCSearchSceneSelectOfficerResp selectOfficerReponse = new SCSearchSceneSelectOfficerResp();
                selectOfficerReponse.VitConsume  = officerVitConsume;
                selectOfficerReponse.CostSeconds = officerCostSeconds;
                MessageHandler.Call(MessageDefine.SCSearchSceneSelectOfficerResp, selectOfficerReponse);
                #endregion
                break;

            case MessageDefine.CSSceneEnterRequest:
            {
                #region 进入场景
                CSSceneEnterRequest  enterReq      = (CSSceneEnterRequest)message;
                SCSceneEnterResponse enterResponse = new SCSceneEnterResponse();
                int enterVitConsume  = 0;
                int enterCostSeconds = 300;
                for (int i = 0; i < enterReq.OfficerIds.Count; i++)
                {
                    long        officerId   = enterReq.OfficerIds[i];
                    ConfOfficer confOfficer = ConfOfficer.Get(officerId / 100);
                    enterVitConsume += confOfficer.vitConsume;
                    //enterCostSeconds += confOfficer.secondGain;
                    enterResponse.OfficerIds.Add(officerId);
                }
                enterResponse.IsDropScene = false;

                string   exhibit      = GuidNewNodeManager.Instance.GetCommonParams(GuidNewNodeManager.sceneExhibit);
                string[] exhibitIdStr = exhibit.Split('|');
                if (exhibitIdStr.Length > 0)
                {
                    for (int i = 0; i < exhibitIdStr.Length; i++)
                    {
                        long exhibitId = long.Parse(exhibitIdStr[i]);
                        //enterResponse.SceneExhibits.Add(exhibitId);
                        enterResponse.TaskExhibits.Add(exhibitId);
                        enterResponse.VitConsume = enterVitConsume;
                        enterResponse.Seconds    = enterCostSeconds;
                    }
                    MessageHandler.Call(MessageDefine.SCSceneEnterResponse, enterResponse);
                }
                #endregion
            }
            break;

            case MessageDefine.CSMarketItemRequest:
            {
                #region 请求时钟商店数据
                CSMarketItemRequest  marketItemReq = (CSMarketItemRequest)message;
                SCMarketItemResponse marketItemRes = new SCMarketItemResponse();
                MarketItemMsg        marketmsg     = new MarketItemMsg();
                if (marketItemReq.PropId == 4)
                {
                    marketmsg.Id       = 304;
                    marketmsg.Cost     = 0;
                    marketmsg.CostType = CostType.CostCash;
                }
                marketItemRes.MarketItems = marketmsg;
                MessageHandler.Call(MessageDefine.SCMarketItemResponse, marketItemRes);
                #endregion
            }
            break;

            case MessageDefine.MarkeBuyRequest:
            {
                #region 购买
                MarkeBuyRequest buyReq = (MarkeBuyRequest)message;

                MarkeBuyResponse buyRes  = new MarkeBuyResponse();
                PlayerPropMsg    propmsg = new PlayerPropMsg();
                if (buyReq.MarketItemId == 304)
                {
                    //购买时钟
                    propmsg.PropId = 4;
                    propmsg.Count  = 1;
                }
                buyRes.Props = propmsg;
                MessageHandler.Call(MessageDefine.MarkeBuyResponse, buyRes);
                #endregion
            }
            break;

            case MessageDefine.CSSkillTimerEmitReq:
            {
                #region 警员技能释放
                SCSkillTimerEmitResp res = new SCSkillTimerEmitResp();
                res.Result = 0;
                MessageHandler.Call(MessageDefine.SCSkillTimerEmitResp, res);
                #endregion
            }
            break;

            case MessageDefine.CSEventEnterRequest:
            {
                #region 进入事件
                SCEventEnterResponse res = new SCEventEnterResponse();
                res.Result = 0;
                MessageHandler.Call(MessageDefine.SCEventEnterResponse, res);
                #endregion
            }
            break;

            case MessageDefine.CSEventPhaseFeedbackRequest:
            {
                #region 请求事件
                CSEventPhaseFeedbackRequest request = (CSEventPhaseFeedbackRequest)message;


                SCEventPhaseFeedbackResponse res = new SCEventPhaseFeedbackResponse();
                res.Valuation  = true;
                res.TotalScore = 200;
                PhaseInfo phaseInfo = new PhaseInfo();
                phaseInfo.PhaseId           = (int)ConfEvent.Get(request.EventId).phases[0];
                phaseInfo.PhaseTemplateId   = (int)ConfEvent.Get(request.EventId).phases[0];
                phaseInfo.OfficerTemplateId = 121;
                phaseInfo.PhaseScore        = 200;
                res.PhaseInfos.Add(phaseInfo);
                MessageHandler.Call(MessageDefine.SCEventPhaseFeedbackResponse, res);
                #endregion
            }
            break;

            case MessageDefine.CSEventRewardRequest:
            {
                CSEventRewardRequest request = (CSEventRewardRequest)message;

                SCEventRewardResponse res = new SCEventRewardResponse();
                res.Score     = 200;
                res.Valuation = 2;
                SceneRewardComprise sceneReward = new SceneRewardComprise();
                ConfEvent           confEvent   = ConfEvent.Get(request.EventId);
                sceneReward.OutputCash = confEvent.cashGain;
                //sceneReward.OutputCoin = confEvent.coinGain;
                //sceneReward.OutputVit = confEvent.vitGain;
                //sceneReward.OutputExp = confEvent.expGain;
                sceneReward.Type = 1;
                res.SceneRewardComprise.Add(sceneReward);
                MessageHandler.Call(MessageDefine.SCEventRewardResponse, res);
            }
            break;
            }
        }