コード例 #1
0
ファイル: GFxTalentMenu.cs プロジェクト: zwong91/Titan
    public void OnTalentPagePointsInfo(int nPageIndex, string szPointsData, string szTalentId, string szTalentPageName, int nAttackPoints, int nTrickPoints, int nHelpPoints)
    {
        // 请求保存当前页数据
        TalentPageInfo talentPageInfo = new TalentPageInfo();

        talentPageInfo.szTalentPageName  = szTalentPageName;
        talentPageInfo.nAttackPointAll   = nAttackPoints;
        talentPageInfo.nTrickPointAll    = nTrickPoints;
        talentPageInfo.nHelpPointAll     = nHelpPoints;
        this.dTalentPageInfo[nPageIndex] = talentPageInfo;

        cmd_TalentPage_Points_Single cmdSinglePoint = new cmd_TalentPage_Points_Single();

        cmdSinglePoint.nCurPageIndex = nPageIndex;
        string[] sTalentIdArray = ((string)(szTalentId)).Split(';');
        int      nArrayLen      = sTalentIdArray.Length - 1;

        cmdSinglePoint.nTalentId     = new int[nArrayLen];
        cmdSinglePoint.nTalentPoints = new int[nArrayLen];
        for (int i = 0; i < nArrayLen; i++)
        {
            cmdSinglePoint.nTalentId[i]     = int.Parse(sTalentIdArray[i]);
            cmdSinglePoint.nTalentPoints[i] = int.Parse(szPointsData[i].ToString());;
        }
        cmdSinglePoint.nTalentNum       = (byte)nArrayLen;
        cmdSinglePoint.szTalentPageName = szTalentPageName;
        IntPtrHelper helper = new IntPtrHelper();
        IntPtr       ptr    = helper.toPtr <cmd_TalentPage_Points_Single>(ref cmdSinglePoint);
        int          len    = Marshal.SizeOf(cmdSinglePoint);

        GameLogicAPI.onEntityEvent(EntityFactory.MainHeroID, (int)EntityLogicDef.ENTITY_CMD_SAVE_TALENT_PAGE_SINGLE, len, "", ptr, len);
    }
コード例 #2
0
        // 保存操作,发送到客户端
        public bool SetSaveSingleTalentPage(ref cmd_TalentPage_Points_Single cmdSinglePoint)
        {
            // 当前页的名字和加点数都没修改直接返回
            if (!uCurTalentPageData.bIsChanged)
            {
                return(false);
            }

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

            if (uCurTalentPageData.dTalentTempPoints == null)
            {
                return(false);
            }

            SavePointsData();
            int nTalentCount  = 0;
            int nDicTempCount = uCurTalentPageData.dTalentTempPoints.Count;

            cmdSinglePoint.nTalentId     = new int[nDicTempCount];
            cmdSinglePoint.nTalentPoints = new int[nDicTempCount];

            foreach (int nTalentIdKey in uCurTalentPageData.dTalentTempPoints.Keys)
            {
                if (uCurTalentPageData.dTalentTempPoints[nTalentIdKey] == 0)
                {
                    continue;
                }

                int nPoints = uCurTalentPageData.dTalentTempPoints[nTalentIdKey];
                cmdSinglePoint.nTalentId[nTalentCount]     = nTalentIdKey;
                cmdSinglePoint.nTalentPoints[nTalentCount] = nPoints;
                nTalentCount++;
            }

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

            cmdSinglePoint.nCurPageIndex    = nDataIndex;
            cmdSinglePoint.nTalentNum       = nTalentCount;
            cmdSinglePoint.szTalentPageName = this.uCurTalentPageData.sTempName;

            return(true);
        }
コード例 #3
0
ファイル: TalentPageWnd.cs プロジェクト: zwong91/Titan
        public bool SetSaveSingleTalentPage()
        {
            if (m_wndView == null)
            {
                return(true);
            }

            cmd_TalentPage_Points_Single cmdSinglePoint = new cmd_TalentPage_Points_Single();
            bool bSave = LogicDataCenter.talentPageDataManager.SetSaveSingleTalentPage(ref cmdSinglePoint);

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

            EntityEventHelper.Instance.SendCommand <cmd_TalentPage_Points_Single>(EntityFactory.MainHeroID, EntityLogicDef.ENTITY_CMD_SAVE_TALENT_PAGE_SINGLE, ref cmdSinglePoint);
            return(true);
        }
コード例 #4
0
        /////////////////////////////////////////////////////数据载入区///////////////////////////////////////////////////////

        public void ReceiveEntityViewTalentInfo(IntPtr ptrParam, int nPtrLen, ref int nPageNum)
        {
            IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen);
            cmd_count nCountdata          = helper.get <cmd_count>();

            nPageNum           = nCountdata.nCount;
            this.nMaxSortIndex = nCountdata.nCount;

            for (int i = 0; i < nCountdata.nCount; ++i)
            {
                NewPagePointsItem(i + 1);
                cmd_TalentPage_Points_Single data = helper.get <cmd_TalentPage_Points_Single>();

                if (uCurTalentPageData == null)
                {
                    continue;
                }

                for (int j = 0; j < data.nTalentNum; j++)
                {
                    int nPoint    = data.nTalentPoints[j];
                    int nTalentId = data.nTalentId[j];
                    uCurTalentPageData.dTalentTempPoints[nTalentId] = nPoint;

                    int nTalentType = TalentPage.Instance.GetSingleTalentType(nTalentId);
                    if (nTalentType == (int)TalentType.ENUM_TALENTTYPE_ATTACK)
                    {
                        uCurTalentPageData.nAttackPoints += nPoint;
                    }
                    else if (nTalentType == (int)TalentType.ENUM_TALENTTYPE_TRICK)
                    {
                        uCurTalentPageData.nTrickPoints += nPoint;
                    }
                    else if (nTalentType == (int)TalentType.ENUM_TALENTTYPE_HELP)
                    {
                        uCurTalentPageData.nHelperPoints += nPoint;
                    }
                }

                if (data.szTalentPageName == "" || data.szTalentPageName == null)
                {
                    uCurTalentPageData.sTempName = "TalentPage" + (i + 1);
                }
                else
                {
                    uCurTalentPageData.sTempName = data.szTalentPageName;
                }

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

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

            UpdatePersentLevel();
        }
コード例 #5
0
    // 所有页的加点数据下发
    public void SetSingleTalentPagePointsInfo(IntPtr ptrParam, int nPtrLen)
    {
        if (!Value.IsValueValid(TalentMenuFrame))
        {
            return;
        }

        Hashtable allTalentPageTable  = (TalentPage.Instance.GetAllTalentPageTable());
        IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen);

        dTalentPageInfo.Clear();

        cmd_count nCountdata = helper.get <cmd_count>();

        for (int i = 0; i < nCountdata.nCount; ++i)
        {
            TalentPageInfo talentPageInfo     = new TalentPageInfo();
            cmd_TalentPage_Points_Single data = helper.get <cmd_TalentPage_Points_Single>();
            string sPoints   = "";
            string sTalentId = "";
            for (int j = 0; j < data.nTalentNum; j++)
            {
                int nPoint    = data.nTalentPoints[j];
                int nTalentId = data.nTalentId[j];
                sPoints   += nPoint.ToString();
                sTalentId += nTalentId.ToString();
                if (j != data.nTalentNum - 1)
                {
                    sTalentId += ";";
                }
                int nTalentType = TalentPage.Instance.GetSingleTalentType(nTalentId);
                if (nTalentType == (int)TalentType.ENUM_TALENTTYPE_ATTACK)
                {
                    talentPageInfo.nAttackPointAll += nPoint;
                }
                else if (nTalentType == (int)TalentType.ENUM_TALENTTYPE_TRICK)
                {
                    talentPageInfo.nTrickPointAll += nPoint;
                }
                else if (nTalentType == (int)TalentType.ENUM_TALENTTYPE_HELP)
                {
                    talentPageInfo.nHelpPointAll += nPoint;
                }
            }

            if (data.szTalentPageName == "")
            {
                data.szTalentPageName = "TalentPage" + (i + 1);
            }

            int nPageIndex = data.nCurPageIndex;
            talentPageInfo.szTalentPageName = data.szTalentPageName;
            dTalentPageInfo[nPageIndex]     = talentPageInfo;
            // 将所有天赋页的加点数据和名字数据名字下发下去,暂定30个可配置点数后期会改
            if (TalentMenuFrame.Invoke("SetSingleTalentPagePointsInfo", nPageIndex, data.szTalentPageName, sTalentId, sPoints, 30, talentPageInfo.nAttackPointAll, talentPageInfo.nTrickPointAll, talentPageInfo.nHelpPointAll) == null)
            {
                Trace.LogError("call SetSingleTalentPagePointsInfo failed");
                continue;
            }
        }

        if (nCountdata.nCount != 0)
        {
            if (TalentMenuFrame.Invoke("SetOnePagePointView", 1) == null)
            {
                Trace.LogError("call SetOnePagePointView failed");
                return;
            }
        }
    }