Example #1
0
        public bool InitMap(PlanesInstance planes, ushort index, ulong mapInstanceId, TableWrap.MapInfoData info, PlayerInstance creater)
        {
            mPlanes        = planes;
            mOwner         = creater;
            mIndexInServer = index;
            mMapInfo       = info;
            //             mMapInfo = MapInstanceManager.GetMapInitBySourceId(mapSourceId);
            //             if (mMapInfo == null)
            //                 return false;
            //mUUID = mapInstanceId;

            mMapInstanceId = mapInstanceId;
            mMapSourceId   = (ushort)info.MapData.id;// mapSourceId;
            InitPlayerPool((ushort)mMapInfo.MapData.maxPlayerCount);
            mNavigator = NavigatorMgr.Instance.InitNavigator(mMapSourceId, GetNavFilePath(mMapInfo.MapData.name));

            // 从地图数据中创建实例数据
            m_cellXCount = (int)(mMapInfo.MapData.sizeX / mServerMapCellWidth) + ((mMapInfo.MapData.sizeX % mServerMapCellWidth) > 0 ? 1 : 0);
            m_cellZCount = (int)(mMapInfo.MapData.sizeZ / mServerMapCellHeight) + ((mMapInfo.MapData.sizeZ % mServerMapCellHeight) > 0 ? 1 : 0);

            m_mapCells = new MapCellInstance[m_cellZCount, m_cellXCount];
            for (int i = 0; i < m_cellZCount; i++)
            {
                for (int j = 0; j < m_cellXCount; j++)
                {
                    MapCellInstance mapCell = new MapCellInstance(j, i);
                    m_mapCells[i, j] = mapCell;
                }
            }

            //LoadMapData();
            OnInit();
            return(true);
        }
Example #2
0
        public static TableWrap.MapInfoData GetMapInitBySourceId(int mapSourceId)
        {
            lock (mMapInitDictionary)
            {
                TableWrap.MapInfoData outInit;
                if (mMapInitDictionary.TryGetValue(mapSourceId, out outInit))
                {
                    return(outInit);
                }

                outInit = new TableWrap.MapInfoData();
                outInit.Init(mapSourceId);
                mMapInitDictionary[mapSourceId] = outInit;
                return(outInit);
            }
        }