要看懂share先看与map的交互以及跨地图的交互 share初始化 void Share::ShareInit(I_DataLayer* data_layer) { // 加载xls表 if(!LoadnBodyId())//两种性别,三种职业 Plug::PlugMessageBox("加载nBodyID表失败啊!"); if(!LoadLevelInfo())//三种职业的等级信息 Plug::PlugMessageBox("加载角色等级信息失败!"); if(!LoadMapData())//地图的即.map的地址 Plug::PlugMessageBox("加载地图数据失败!"); // 加载item xml if (!LoadItemXml())//加载道具相关xml Plug::PlugMessageBox("加载道具Xml失败!"); /*地图数量*/ for(auto itMap : m_mapDataTable) { auto& pMap = m_mapMap[itMap.first] = NEW(Map); pMap->Init(GetMaxGcNumb(), itMap.second.map_path.c_str(), itMap.second.m_MapType);//初始化各种操作,其中包括起线程操作 pMap->m_fnGetLevelInfo = std::bind(&Share::TGetLevelInfo, this, ph::_1, ph::_2, ph::_3);//获取等级信息的function pMap->m_nMapId = itMap.first; std::wstring name = L"地图"; name += boost::lexical_cast<std::wstring>(pMap->m_nMapId); OnThreadId(pMap->GetThreadId(), name); //获取线程ID } m_pDataLayer = data_layer; //初始化 跨地图操作模块 InitAcrossMapOpt();//初始化跨地图操作 InitAcrossManager();//初始化跨地图管理器 }