public void UpdateRuneStoreData(cmd_Rune_InStore_Item storeItemdata) { int nRuneId = storeItemdata.nRuneId; SSchemeRuneConfig runeConfig = RunePage.Instance.allRunePageTable[nRuneId] as SSchemeRuneConfig; if (runeConfig == null) { return; } if (!dicRuneInlayTypeStoreInfo.ContainsKey((int)runeConfig.nRuneInlayType)) { return; } int nRuneInlayType = (int)runeConfig.nRuneInlayType; bool bHasRune = false; foreach (RuneItemInfo runeItemInfo in dicRuneInlayTypeStoreInfo[nRuneInlayType]) { if (runeItemInfo.nRuneId == nRuneId) { runeItemInfo.nRuneNum += storeItemdata.nRuneNum; bHasRune = true; break; } } if (!bHasRune) { RuneItemInfo runeItemInfo = new RuneItemInfo(); runeItemInfo.nRuneId = nRuneId; runeItemInfo.nRuneNum = storeItemdata.nRuneNum; dicRuneInlayTypeStoreInfo[nRuneInlayType].Add(runeItemInfo); } UpdateRuneInlayTypeLeftStore(); SetRuneChangeMessage(); }
/////////////////////////////////////////////////////数据载入区/////////////////////////////////////////////////////// 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); }