当前位置: 首页 > 工具软件 > ncp_map > 使用案例 >

map初始化定时器

融泓
2023-12-01
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线程驱动的--------------------------

 

转载于:https://www.cnblogs.com/zzyoucan/p/3945837.html

 类似资料: