init_timer();
//各种定时器的初始化
void Map::init_timer()
{
//auto tf = GetPlug(TimerFactory);
auto tf = m_spTimerFactory;
m_updateMovePosTimer.reset(tf->createTimer());
m_updateMovePosTimer->setInterval(50);
m_updateMovePosTimer->regTimer(std::bind(&Map::updateMovePosTimer, this));//这个是最重要的定时跟新所有NCP的位置信息,50ms是相当快的
m_updateMovePosTimer->start();
//单人组队定时
m_updateTeamTimer.reset(tf->createTimer());
m_updateTeamTimer->setInterval(15 * 1000);
m_updateTeamTimer->regTimer(std::bind(&Map::updateTeamTimer, this));
m_updateTeamTimer->start();
//宝物限时消失
//m_checkPropExistTimer.reset(tf->createTimer());
//m_checkPropExistTimer->setInterval(10 * 6000);
//m_checkPropExistTimer->regTimer(std::bind(&Map::checkPropExistTimer, this));
////m_checkPropExistTimer->start();
//定时器监视buff
m_updateStatTimer.reset(tf->createTimer());
m_updateStatTimer->setInterval(1000);
m_updateStatTimer->regTimer(std::bind(&Map::updateStatTimer, this));
m_updateStatTimer->start();
//压测复活
m_checkRebornTimer.reset(tf->createTimer());
m_checkRebornTimer->setInterval(2000);
m_checkRebornTimer->regTimer(std::bind(&Map::checkRebornTimer, this));
m_checkRebornTimer->start();
//Item 消失
m_updateItemDisappearTimer.reset(tf->createTimer());
m_updateItemDisappearTimer->setInterval(2000);
m_updateItemDisappearTimer->regTimer(std::bind(&Map::updateItemDisappearTimer, this));
m_updateItemDisappearTimer->start();
//Spell消失(因玩家而定) + 施法
m_updateSpellWorkTimer.reset(tf->createTimer());
m_updateSpellWorkTimer->setInterval(500);
m_updateSpellWorkTimer->regTimer(std::bind(&Map::updateSpellWorkTimer, this));
m_updateSpellWorkTimer->start();
}
//-------------------这所有的定时器都是map线程驱动的--------------------------