public bool GetWearPos(CSymbolItem item, int page, out int pos, out enFindSymbolWearPosCode findCode) { pos = 0; findCode = enFindSymbolWearPosCode.FindNone; if ((item == null) || (item.m_SymbolData.wLevel > this.m_pageMaxLvlLimit)) { findCode = enFindSymbolWearPosCode.FindSymbolLevelLimit; return(false); } ulong[] numArray = this.m_symbolPageArr[page]; CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo(); int length = numArray.Length; bool flag = true; for (int i = 0; i < length; i++) { ResSymbolPos symbolPos = GetSymbolPos(i); if ((symbolPos.dwSymbolColor & (((int)1) << item.m_SymbolData.bColor)) != 0) { flag = flag && (numArray[i] != 0L); } if (((numArray[i] == 0) && ((masterRoleInfo.PvpLevel >= symbolPos.wOpenLevel) || (this.GridBuyInfo[i].bBuyFlag == 1))) && ((symbolPos.dwSymbolColor & (((int)1) << item.m_SymbolData.bColor)) != 0)) { pos = i; findCode = enFindSymbolWearPosCode.FindSuccess; return(true); } } findCode = !flag ? enFindSymbolWearPosCode.FindSymbolNotOpen : enFindSymbolWearPosCode.FindSymbolPosFull; return(false); }