要看懂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();//初始化跨地图管理器
}