예제 #1
0
        public void SendJoinEctypeToSever(int ectypeID)
        {
            EctypeSelectConfigData ectypeSelectConfigData = null;
            int diff = 0;

            foreach (var child in EctypeConfigManager.Instance.EctypeSelectConfigFile._dataTable)
            {
                child.InitectContainer();
                foreach (var m_id in child.VectContainerList)
                {
                    if (m_id.Value == ectypeID)
                    {
                        ectypeSelectConfigData = child;
                        diff = m_id.Key;
                        break;
                    }
                }
                if (ectypeSelectConfigData != null)
                {
                    break;
                }
            }
            SMSGEctypeRequestCreate_CS sMSGEctypeRequestCreate_CS = new SMSGEctypeRequestCreate_CS()
            {
                //TODO:进入技能协议有更改,去掉副本iD和难度,需要从新修改
//                uidEntity = PlayerManager.Instance.FindHeroDataModel().SMsg_Header.uidEntity,
//                dwEctypeId = (int)ectypeSelectConfigData._lEctypeID,
//                byDifficulty = (byte)diff,
            };

            NetServiceManager.Instance.EctypeService.SendEctypeRequest(sMSGEctypeRequestCreate_CS);
//            TraceUtil.Log("发送进入副本请求:" + sMSGEctypeRequestCreate_CS.dwEctypeId + "," + sMSGEctypeRequestCreate_CS.byDifficulty);
        }
예제 #2
0
 public void InitPanel(int index, EctypeSelectConfigData ectypeSelectConfigData, EctypePanel_V4 myParent)
 {
     this.PositionIndex = index;
     this.myParent      = myParent;
     if (transform.childCount > 0)
     {
         transform.ClearChild();
     }
     this.ectypeSelectConfigData = ectypeSelectConfigData;
     this.ectypeSelectConfigData.InitectContainer();
     for (int i = 0; i < this.ectypeSelectConfigData._vectContainer.Length; i++)
     {
         //add by lee 如果是封妖副本 break
         if (ectypeSelectConfigData._vectContainer[i] == ectypeSelectConfigData._sirenEctypeContainerID)
         {
             break;
         }
         GameObject EctypeCard = null;
         EctypeCard = CreatObjectToNGUI.InstantiateObj(LocalEctypeCarPrefab, transform);
         LocalEctypePanel_v3 ectypeCard = EctypeCard.GetComponent <LocalEctypePanel_v3>();
         ectypeCard.ContainerID = ectypeSelectConfigData._lEctypeID;
         ectypeCard.InitPanel(this.ectypeSelectConfigData._vectContainer[i], myParent);
         this.LocalPanelList.Add(ectypeCard);
     }
     SetMyPosition(index);
 }
예제 #3
0
        public void Show(EctypeSelectConfigData selectData, EctypeContainerData[] datas)
        {
            m_EctypeSelectConfigData = selectData;

            for (int i = 0; i < ECTYPE_MAX_NUM; i++)
            {
                if (i >= datas.Length)
                {
                    m_EctypeCardList[i].gameObject.SetActive(false);
                }
                else
                {
                    m_EctypeCardList[i].Init(EctypeCardItem_V2.CardType.Ectype, datas[i], OnSelectCardHandle);
                    m_EctypeContainerID = datas[i].lEctypeContainerID;
                    m_EctypeCardList[i].gameObject.SetActive(true);

                    m_EctypeCardList[i].gameObject.RegisterBtnMappingId(m_EctypeContainerID, UIType.TeamInfo, BtnMapId_Sub.TeamInfo_CreateTeam_EctypeItem);
                }
            }

            Label_AreaName.text = LanguageTextManager.GetString(selectData._szName);

            //默认选择最大
            OnSelectCardHandle(m_EctypeContainerID);
            //默认普通难度
            m_EctypeHard = 0;
            Swith_Hard.ChangeSprite(m_EctypeHard + 1);

            transform.localPosition = Vector3.zero;
        }
예제 #4
0
    CommandCallbackType ECTYPE_CLEARANCEHandle(byte[] dataBuffer, int socketID)
    {
        //TraceUtil.Log("============SendEctypeGoBattle##########2");
        ECTYPE_CLEARANCE ectype_CLEARANCE = PackageHelper.BytesToStuct <ECTYPE_CLEARANCE>(dataBuffer);
        //RaiseEvent(EventTypeEnum.RequestEctypeUnlock.ToString(), ectype_CLEARANCE);

        uint   _ectypeid = ectype_CLEARANCE.dwEctypeId;
        string ectypeid  = ectype_CLEARANCE.dwEctypeId.ToString();

        //TraceUtil.Log("$$$$$$$$$$$$$$$$$$$$$$$+?????????±±?????ectype_CLEARANCE.dwEctypeID" + ectype_CLEARANCE.dwEctypeId);
        if (ectypeid.Length > 5)
        {
            int _ectypeID = int.Parse(ectypeid.Substring(0, 5));
            int _diff     = int.Parse(ectypeid.Substring(4, 3));

            EctypeSelectConfigData item = EctypeConfigManager.Instance.EctypeSelectConfigList[_ectypeID];
            _ectypeid = (uint)item._vectContainer[_diff - 1];
            //TraceUtil.Log("#################_ectypeid" + _ectypeid);
        }

        //NewbieGuideManager.Instance.SetPassEctypeID(_ectypeid);
        StroyLineDataManager.Instance.SetPassEctypeID(_ectypeid);

        return(CommandCallbackType.Continue);
    }
예제 #5
0
 public void Init(EctypeSelectConfigData configData, EctypeDiffListPanel myParent)
 {
     MyParent     = myParent;
     MyConfigData = configData;
     LockIcon.gameObject.SetActive(IsLock);
     NameLabel.gameObject.SetActive(!IsLock);
     if (!IsLock)
     {
         m_IconSprite = CreatObjectToNGUI.InstantiateObj(configData._EctypeIconPrefab, EctypeIconPos).GetComponent <UISprite>();
         NameLabel.SetButtonText(LanguageTextManager.GetString(configData._szName));
     }
 }
예제 #6
0
        public void CreatNewRoom()
        {
            TraceUtil.Log("新建房间");
            EctypeSelectConfigData     ectypeSelectConfigData     = EctypeConfigManager.Instance.EctypeSelectConfigList[10001];
            SMSGEctypeRequestCreate_CS sMSGEctypeRequestCreate_CS = new SMSGEctypeRequestCreate_CS()
            {
                //TODO:进入技能协议有更改,去掉副本iD和难度,需要从新修改
//                uidEntity = PlayerManager.Instance.FindHeroDataModel().SMsg_Header.uidEntity,
//                dwEctypeId = ectypeSelectConfigData._lEctypeID,
//                byDifficulty = (byte)ectypeSelectConfigData._vectDifficulty[0],
            };

            NetServiceManager.Instance.EctypeService.SendEctypeRequest(sMSGEctypeRequestCreate_CS);
        }
예제 #7
0
    /// <summary>
    /// 进否进入剧情[貌似没有使用]
    /// </summary>
    /// <param name="onSelectEctypeData">当前所选择的副本</param>
    public void CurSelectEctype(SMSGEctypeData_SC onSelectEctypeData)
    {
        m_curSelectEctypeData = onSelectEctypeData;

        int vocation = PlayerManager.Instance.FindHeroDataModel().PlayerValues.PlayerCommonValue.PLAYER_FIELD_VISIBLE_VOCATION;

        EctypeSelectConfigData item = null;

        //todo:onSelectEctypeData协议已经取消难度dwEctypeID和byDiff难度,如果使用需要从新更改
        //EctypeConfigManager.Instance.EctypeSelectConfigList.TryGetValue((int)onSelectEctypeData.dwEctypeID, out item);
        if (item == null)
        {
            return;
        }

        int          _ectypeid = 0;// = item._vectContainer[(int)onSelectEctypeData.byDiff - 1];
        StroyLineKey key       = new StroyLineKey {
            VocationID = vocation, ConditionID = 0, EctypeID = _ectypeid
        };


        if (StroyLineConfigManager.Instance.GetStroyLineConfig.ContainsKey(key) && _ectypeid > m_passEctypeId)
        {
            StroyLineConfigData stroyLineConfig = StroyLineConfigManager.Instance.GetStroyLineConfig[key];

            m_curStroyMapID    = stroyLineConfig._SceneMapID;
            m_curMapBgMusic    = stroyLineConfig._BgMusic;
            m_curCameraGroupID = stroyLineConfig._CameraGroup;

            //1=进入触发;2=完成触发
            if (StroyLineConfigManager.Instance.GetStroyLineConfig[key]._TriggerCondition == 1)
            {
                m_stroyLineType = StroyLineType.EctypeStart;
            }
            else if (StroyLineConfigManager.Instance.GetStroyLineConfig[key]._TriggerCondition == 2)
            {
                m_stroyLineType = StroyLineType.EctypeEnd;
            }
            //else
            //    m_stroyLineType = StroyLineType.None;
        }
        //else
        //{
        //    m_stroyLineType = StroyLineType.None;
        //}
    }
예제 #8
0
        void OnTeamWorkJoin(object obj)
        {
            var playerData = PlayerManager.Instance.FindHeroDataModel();
            int areaID     = EctypeConfigManager.Instance.GetSelectContainerID((int)sMSGEctypeLevelData_SC.dwEctypeId);
            EctypeSelectConfigData escData = EctypeConfigManager.Instance.EctypeSelectConfigList[areaID];

            TeamManager.Instance.SetCurSelectEctypeContainerData(escData);

            NetServiceManager.Instance.TeamService.SendGetTeamListMsg(new SMSGGetTeamList_CS()
            {
                uidEntity    = playerData.UID,
                dwEctypeID   = (uint)escData._lEctypeID,
                byDifficulty = 0
            });


            //if (PlayerManager.Instance.FindHeroDataModel().PlayerValues.PLAYER_FIELD_CURRENCY_ACTIVELIFE <= 0)
            //{
            //    UIEventManager.Instance.TriggerUIEvent(UIEventType.NoEnoughActiveLife, null);
            //    return;
            //}
            MainUIController.Instance.OpenMainUI(UIType.TeamInfo);
        }
예제 #9
0
    //public LocalTeamPropMember FindMember(int dwActorID)
    //{
    //    var targetPropMember = m_MemberList.SingleOrDefault(p => p.dwActorID == dwActorID);
    //    if (targetPropMember != null)
    //        return targetPropMember;
    //    return null;
    //}

    /// <summary>
    /// 当前选择区域
    /// </summary>
    /// <param name="data">Data.</param>
    public void SetCurSelectEctypeContainerData(EctypeSelectConfigData data)
    {
        this.m_curSelectEctypeAreaData = data;
    }
예제 #10
0
    private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets,
                                               string[] movedAssets, string[] movedFromPath)
    {
        if (CheckResModified(importedAssets) || CheckResModified(deletedAssets) || CheckResModified(movedAssets))
        {
            string     path = System.IO.Path.Combine(RESOURCE_UI_CONFIG_FOLDER, "EctypeDifficulty.xml");
            TextReader tr   = new StreamReader(path);
            string     text = tr.ReadToEnd();

            if (text == null)
            {
                Debug.LogError("Player level config file not exist");
                return;
            }
            else
            {
                XmlSpreadSheetReader.ReadSheet(text);
                XmlSpreadSheet sheet = XmlSpreadSheetReader.Output;
                string[]       keys  = XmlSpreadSheetReader.Keys;

                object[] levelIds = sheet[keys[0]];

                List <EctypeSelectConfigData> tempList = new List <EctypeSelectConfigData>();

                for (int i = 3; i < levelIds.Length; i++)
                {
                    EctypeSelectConfigData data = new EctypeSelectConfigData();
                    data._lEctypeID = Convert.ToInt32(sheet["lEctypeID"][i]);
                    data._szName    = Convert.ToString(sheet["szName"][i]);
//					string[] vectDifficultyValue = Convert.ToString(sheet["byContainerNum"][i]).Split('+');
//                    data._vectDifficulty = new int[vectDifficultyValue.Length];
//                    for (int j = 0; j < vectDifficultyValue.Length; ++j )
//                    {
//                        data._vectDifficulty[j] = int.Parse(vectDifficultyValue[j]);
//                    }
                    string[]   difficult2Container     = Convert.ToString(sheet["Difficult2Container"][i]).Split('+');
                    List <int> difficult2ContainerData = new List <int>();
                    difficult2Container.ApplyAllItem(P => difficult2ContainerData.Add(int.Parse(P)));
                    data.Difficult2Container = new List <int>();
                    if (difficult2ContainerData[0] != 0)
                    {
                        data.Difficult2Container.AddRange(difficult2ContainerData);
                    }
                    //data.Difficult2Container = difficult2ContainerData.ToArray();
                    //data._vectDifficulty = vectDifficultyValue.Split('+');
                    string[] vectContainerValue = Convert.ToString(sheet["vectContainer"][i]).Split('+');
                    data._vectContainer = new int[vectContainerValue.Length];
                    for (int k = 0; k < vectContainerValue.Length; ++k)
                    {
                        data._vectContainer[k] = int.Parse(vectContainerValue[k]);
                    }

                    data._EctypeIcon      = Convert.ToString(sheet["lEctypeIcon"][i]);
                    data.EctypeRewardIcon = Convert.ToString(sheet["EctypeRewardIcon"][i]);
                    List <EctypeRewardItem> rewardItem = new List <EctypeRewardItem>();
                    string[] rewardItemStr             = Convert.ToString(sheet["AwardItem"][i]).Split('|');
                    rewardItemStr.ApplyAllItem(P => rewardItem.Add(new EctypeRewardItem()
                    {
                        ItemID = int.Parse(P.Split('+')[0]), ItemNum = int.Parse(P.Split('+')[1])
                    }));
                    data.AwardItem               = rewardItem.ToArray();
                    data._lEctypeYaoqiMax        = Convert.ToInt32(sheet["lEctypeYaoqiMax"][i]);
                    data._sirenEctypeContainerID = Convert.ToInt32(sheet["SirenEctypeContainerID"][i]);
                    data.lEctypeType             = Convert.ToInt32(sheet["lEctypeType"][i]);

                    string pathRes = System.IO.Path.Combine(ASSET_ECTYPE_RES_CONFIG_FOLDER, data._EctypeIcon + ".prefab");
                    data._EctypeIconPrefab = (GameObject)AssetDatabase.LoadAssetAtPath(pathRes, typeof(GameObject));

                    tempList.Add(data);
                }

                CreateSceneConfigDataBase(tempList);
            }
        }
    }
예제 #11
0
        public void Show(EctypeSelectConfigData selectData, EctypePanel_V5 myParent)
        {
            Init();
            m_TreasureChestsPanel.Init(this);
            EctypeSelectData = selectData;
            MyParent         = myParent;
            //查找当前页面最大解锁副本id
            MaxEctypeContaienrID = 0;
            myEctypeContainerIDList.Clear();
            selectData._vectContainer.ApplyAllItem(c => myEctypeContainerIDList.Add(c));
            selectData.Difficult2Container.ApplyAllItem(c => myEctypeContainerIDList.Add(c));
            foreach (var child in EctypeModel.Instance.sMSGEctypeSelect_SC.sMSGEctypeData_SCs)           //myParent.UnlockEctypeData.sMSGEctypeData_SCs)
            {
                if (myEctypeContainerIDList.Contains((int)child.dwEctypeContaienrID) && (int)child.dwEctypeContaienrID > MaxEctypeContaienrID)
                {
                    MaxEctypeContaienrID = (int)child.dwEctypeContaienrID;
                }
            }
            bool islock = false;

            MyContainerItemSlotList.ApplyAllItem(c => c.SetMyselfActive(false));
            int i = 0;

            for (; i < MyContainerItemSlotList.Count; i++)
            {
                if (selectData._vectContainer.Length > i)
                {
                    MyContainerItemSlotList[i].SetMyselfActive(true);
                    islock = EctypeIDIsLock(GetContainerID(i, true));
                    MyContainerItemSlotList[i].Init(GetContainerID(i, true), GetContainerID(i, false), this, MyParent.jumpPointEctypeID);
                    if (islock)
                    {
                        if (i < MyContainerItemSlotList.Count - 1)
                        {
                            m_SingleTreasureChestsItem.transform.localPosition = MyContainerItemSlotList[i + 1].transform.localPosition;
                        }
                        else
                        {
                            m_SingleTreasureChestsItem.transform.localPosition = originalPos;
                        }
                        break;
                    }
                }
                else
                {
                    break;
                }
            }
            if (!islock)
            {
                if (i >= MyContainerItemSlotList.Count)
                {
                    i = MyContainerItemSlotList.Count;
                    m_SingleTreasureChestsItem.transform.localPosition = originalPos;
                }
                else
                {
                    m_SingleTreasureChestsItem.transform.localPosition = MyContainerItemSlotList[i].transform.localPosition;
                }
            }
            m_SingleTreasureChestsItem.UpdateStatus(this);
        }
예제 #12
0
        public void UpdateTeammateInfo(SMsgTeamNum_SC sMsgTeamNum)
        {
            var teamProp = sMsgTeamNum.SMsgTeamProps[0];

            TeamManager.Instance.RegisteTeam(teamProp);

            int teammateNo = 0;
            var playerData = PlayerManager.Instance.FindHeroDataModel();
            //var propMembers = teamProp.TeamMemberNum_SC.SMsgTeamPropMembers.Where(p => p.TeamMemberContext.dwActorID != playerData.ActorID).ToArray();
            var propMembers = teamProp.TeamMemberNum_SC.SMsgTeamPropMembers;
            int teammateNum = propMembers.Length;

            //队长风格
            bool isCaptain = false;

            if (teamProp.TeamContext.dwCaptainId == playerData.ActorID)
            {
                ShowCaptainInterface();
                isCaptain = true;
            }
            else
            {
                ShowMemberInterface();
            }

            //初始化 hero model views
            if (m_MemberHeroViews == null)
            {
                m_TeamMemberViewCamera = (GameObject)Instantiate(TeamCamaraRoot);
                //m_TeamMemberViewCamera.transform.parent = transform;
                //m_TeamMemberViewCamera.transform.localScale = Vector3.one;
                //m_TeamMemberViewCamera.transform.localPosition = new Vector3(-2000, 0, 0);
                m_TeamMemberViewCamera.transform.localPosition = new Vector3(0, 0, 10);//z为10避免看到town的label
                m_MemberHeroViews = m_TeamMemberViewCamera.GetComponentsInChildren <ContainerHeroView>();
            }
            m_TeamMemberViewCamera.SetActive(true);
            var camera = m_TeamMemberViewCamera.GetComponentInChildren <Camera>();

            camera.enabled = true;

            EctypeSelectConfigData ectypeData = null;

            ectypeData = EctypeConfigManager.Instance.EctypeSelectConfigList[teamProp.TeamContext.dwEctypeId];
            var ectypeID   = ectypeData._vectContainer[teamProp.TeamContext.byEctypeDifficulty - 1];
            var ectypeInfo = EctypeConfigManager.Instance.EctypeContainerConfigList[ectypeID];

            AreaTitleLabel.text = LanguageTextManager.GetString(ectypeInfo.lEctypeName);//更新标题

            mTeamMemberList.ApplyAllItem(p =>
            {
                if (teammateNo < teammateNum)
                {
                    p.SetInfo(propMembers[teammateNo].TeamMemberContext, ectypeInfo);
                    //显示hero model view
                    m_MemberHeroViews[teammateNo].ShowHeroModelView((int)propMembers[teammateNo].TeamMemberContext.dwActorID, propMembers[teammateNo].TeamMemberContext.byKind, propMembers[teammateNo].TeamMemberContext.nFashionID
                                                                    , propMembers[teammateNo].TeamMemberContext.nCurWeaponID);
                }
                else
                {
                    p.Close();
                }

                teammateNo++;
            });

            //如果是队长,更新邀请请离按钮
            if (isCaptain)
            {
                ResetButtons();

                //
                if (teamProp.TeamContext.byCurNum <= 1)
                {
                    ExplanationLabel.text = LanguageTextManager.GetString("IDS_H1_171");
                }
                else
                {
                    ExplanationLabel.text = LanguageTextManager.GetString("IDS_H1_170");
                }
            }
            else
            {
                ExplanationLabel.text = "";

                //自身是队员 判断准备按钮是否置灰
                var myTeamData = teamProp.TeamMemberNum_SC.SMsgTeamPropMembers.SingleOrDefault(p => p.TeamMemberContext.dwActorID == playerData.ActorID);
                if (myTeamData.TeamMemberContext.byFightReady == 1)
                {
                    MemberReadyButton.SetButtonStatus(true);
                    MemberReadyButton.SetButtonTextColor(m_greyColor);
                    MemberReadyButton.SetButtonActive(false);
                    MemberReadyButton.animation.Stop();
                }
            }

            //判断是否全员准备
            bool isAllReady = true;

            teamProp.TeamMemberNum_SC.SMsgTeamPropMembers.ApplyAllItem(p =>
            {
                //TraceUtil.Log("[Weapean ID]"+p.TeamMemberContext.nCurWeaponID);
                if (p.TeamMemberContext.byFightReady == 0)
                {
                    isAllReady = false;
                }
            });
            if (isAllReady)
            {
                CaptainStartButton.animation.Play();
            }
            else
            {
                CaptainStartButton.animation.Stop();
            }

            /*
             *
             * //挑战界面信息
             * var challengeData = TeamManager.Instance.CurrentEctypeLevelData;
             * ComboLabel.text = ComboFTx + (challengeData.wHighestCombo == 0 ? "" : challengeData.wHighestCombo.ToString());
             *
             * //通关时间
             * int Passtime = (int)challengeData.dwBestClearTime;
             * int Minutes = Passtime / 60000;
             * int Second = Passtime % 60000 / 1000;
             * int MS = Passtime % 60000 % 1000 / 10;
             * string PassTime = string.Format("{0}:{1}:{2}", Minutes, Second, MS);
             *
             * TimeLabel.text = TimeFTx + (PassTime == "0:0:0" ? "" : PassTime);
             *
             * //TimeLabel.text = TimeFTx + challengeData.dwBestClearTime.ToString();
             *
             */


            //\如果一开始就有队伍,这里索取的值为空
            if (ectypeData != null)
            {
                ectypeData.InitectContainer();
                int containerID = ectypeData.GetVectContainer(teamProp.TeamContext.byEctypeDifficulty);
                var localEctypeContainerData = EctypeConfigManager.Instance.EctypeContainerConfigList[containerID];

                if (localEctypeContainerData != null)
                {
                    ExpLabel.text    = ExpFTx + localEctypeContainerData.lExperience.ToString();
                    CopperLabel.text = CopperFTx + localEctypeContainerData.lMoney.ToString();

                    TitleLabel.text = LanguageTextManager.GetString(localEctypeContainerData.lEctypeName);

                    //储存副本信息
                    TeamManager.Instance.SetEctypeData(new SMSGEctypeData_SC()
                    {
                        //Todo:onSelectEctypeData协议已经取消dwEctypeID和byDiff难度,如果使用需要从新更改
//                        dwEctypeID = (uint)ectypeData._lEctypeID,
//                        byDiff = (byte)localEctypeContainerData.lDifficulty
                    });
                }

                CostTypeSpriteSwith.ChangeSprite(localEctypeContainerData.lCostType);//消耗类型
                ActiveCostLabel.text = ActiveCostFTx + localEctypeContainerData.lCostEnergy.ToString();
            }


            //队长如果是邀请界面
            if (TeamInvitePanel.gameObject.activeInHierarchy)
            {
                TeamInvitePanel.ShowFriendList();
            }
        }