Example #1
0
        public bool ReceiveOtherPlayerEntityViewRuneInfo(int nOtherPlayerId)
        {
            OtherActorRuneInfo otherInfo = LogicDataCenter.playerSystemDataManager.GetActorAllRune(nOtherPlayerId);

            if (otherInfo == null)
            {
                return(false);
            }

            // 再压出每个符文页的详细信息
            int nRunePageCount = otherInfo.totalRune.nPageNum;

            if (nRunePageCount <= 0)
            {
                return(false);
            }

            this.nMaxSortIndex = nRunePageCount;
            for (int i = 0; i < nRunePageCount; ++i)
            {
                NewPagePointsItem(i + 1);
                if (uCurRunePageData == null)
                {
                    continue;
                }

                if (i < 0 || i >= otherInfo.totalRunePage.Count)
                {
                    continue;
                }

                cmd_Rune_Single_PageInfo data = otherInfo.totalRunePage[i];
                for (int j = 0; j < data.nRuneGroove.Length; j++)
                {
                    int nRuneId = data.nRuneGroove[j];
                    SetRunePagePointsInfo(j + 1, nRuneId, true);
                }

                if (data.sRunePageName == "")
                {
                    uCurRunePageData.sTempName = "RunePage" + (i + 1);
                }
                else
                {
                    uCurRunePageData.sTempName = data.sRunePageName;
                }

                this.SetRunePageChange(true);
                uCurRunePageData.SetSaveData();
                this.SetRunePageChange(false);
            }

            return(true);
        }
Example #2
0
        public bool SetSaveSingleRunePage()
        {
            cmd_Rune_Single_PageInfo cmdSinglePoint = new cmd_Rune_Single_PageInfo();
            bool bSave = LogicDataCenter.runePageDataManager.SetSaveSingleRunePage(ref cmdSinglePoint);

            if (!bSave)
            {
                return(true);
            }

            EntityEventHelper.Instance.SendCommand <cmd_Rune_Single_PageInfo>(EntityFactory.MainHeroID, EntityLogicDef.ENTITY_CMD_SAVE_RUNE_PAGE, ref cmdSinglePoint);
            return(true);
        }
Example #3
0
        // 保存操作,发送到客户端
        public bool SetSaveSingleRunePage(ref cmd_Rune_Single_PageInfo cmdSinglePoint)
        {
            // 当前页的名字和加点数都没修改直接返回
            if (!uCurRunePageData.bIsChanged)
            {
                return(false);
            }

            if (uCurRunePageData == null)
            {
                return(false);
            }

            if (uCurRunePageData.dRuneTempSlotInfo == null)
            {
                return(false);
            }

            SavePointsData();

            int nDicTempCount = uCurRunePageData.dRuneTempSlotInfo.Count;

            cmdSinglePoint.nRuneGroove = new int[nRuneMaxCount];
            int nRuneNum = 0;

            foreach (int nRuneIdKey in uCurRunePageData.dRuneTempSlotInfo.Keys)
            {
                if (uCurRunePageData.dRuneTempSlotInfo[nRuneIdKey] == 0)
                {
                    continue;
                }
                nRuneNum++;
                int nPoints = uCurRunePageData.dRuneTempSlotInfo[nRuneIdKey];
                cmdSinglePoint.nRuneGroove[nRuneIdKey - 1] = nPoints;
            }

            SetRunePageChange(false);
            int nDataIndex = GetDataIndex(this.nCurPageSortIndex);

            cmdSinglePoint.nPageIndex    = nDataIndex;
            cmdSinglePoint.nRuneNum      = nRuneNum;
            cmdSinglePoint.sRunePageName = this.uCurRunePageData.sTempName;

            return(true);
        }
Example #4
0
        public void UpdateAllRune(IntPtr ptrParam, int nPtrLen)
        {
            IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen);

            cmd_Rune_Info_Total runeInfo = helper.get <cmd_Rune_Info_Total>();
            OtherActorRuneInfo  info     = null;

            if (actorRune.TryGetValue(runeInfo.dwActorID, out info) == false)
            {
                return;
            }
            info.totalRune = runeInfo;

            info.totalRunePage.Clear();
            for (int i = 0; i < info.totalRune.nPageNum; ++i)
            {
                cmd_Rune_Single_PageInfo data = helper.get <cmd_Rune_Single_PageInfo>();
                info.totalRunePage.Add(data);
            }

            UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_RUNEPAGE_INITOTHERRUNEDATA, null);
        }
Example #5
0
        /////////////////////////////////////////////////////数据载入区///////////////////////////////////////////////////////

        public bool ReceiveSelfEntityViewRuneInfo(ref IntPtr ptrParam, int nPtrLen)
        {
            runePageDataManager.Clear();
            // 先压出个人全部符文store
            IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen);
            cmd_count storeCountData      = helper.get <cmd_count>();
            int       nStoreCount         = storeCountData.nCount;

            for (int k = 0; k < nStoreCount; k++)
            {
                cmd_Rune_InStore_Item storeItemdata = helper.get <cmd_Rune_InStore_Item>();
                int nRuneId = storeItemdata.nRuneId;
                SSchemeRuneConfig runeConfig = RunePage.Instance.allRunePageTable[nRuneId] as SSchemeRuneConfig;
                if (runeConfig == null)
                {
                    continue;
                }

                RuneItemInfo runeItemInfo = new RuneItemInfo();
                runeItemInfo.nRuneId  = nRuneId;
                runeItemInfo.nRuneNum = storeItemdata.nRuneNum;

                dicRuneInlayTypeStoreInfo[(int)runeConfig.nRuneInlayType].Add(runeItemInfo);
            }

            // 再压出每个符文页的详细信息
            cmd_count runePagedata   = helper.get <cmd_count>();
            int       nRunePageCount = runePagedata.nCount;

            this.nMaxSortIndex = nRunePageCount;
            for (int i = 0; i < runePagedata.nCount; ++i)
            {
                NewPagePointsItem(i + 1);
                if (uCurRunePageData == null)
                {
                    continue;
                }

                cmd_Rune_Single_PageInfo data = helper.get <cmd_Rune_Single_PageInfo>();
                for (int j = 0; j < data.nRuneGroove.Length; j++)
                {
                    int nRuneId = data.nRuneGroove[j];
                    SetRunePagePointsInfo(j + 1, nRuneId, true);
                }

                if (data.sRunePageName == "")
                {
                    uCurRunePageData.sTempName = "RunePage" + (i + 1);
                }
                else
                {
                    uCurRunePageData.sTempName = data.sRunePageName;
                }

                this.SetRunePageChange(true, true);
                uCurRunePageData.SetSaveData();                                // 必须有数据改变才保存
                this.SetRunePageChange(false, true);
                int nDataBaseIndex = data.nPageIndex;
                lTopButtonDataIndex.Add(nDataBaseIndex);                        // 储存数据库页数 因为数据库创建删除都是根据数据库页数来的,避免重复

                if (nMaxDataIndex < nDataBaseIndex)
                {
                    nMaxDataIndex = nDataBaseIndex;
                }
            }

            uCurRunePageData = runePageDataManager[0];
            CopySelfRunePageDateManagerInfo();
            UpdateRuneInlayTypeLeftStore();
            SetRuneChangeMessage();
            return(true);
        }