map初始化定时器

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线程驱动的--------------------------
时间: 2024-11-03 22:19:13

map初始化定时器的相关文章

C++ map初始化

对象初始值设定项语法不能用于初始化"Object"类型的实例 http://msdn.microsoft.com/zh-cn/library/bb384627(v=vs.90).aspx const std::map初始化 http://lgb168.blog.163.com/blog/static/49674438201291213147256/ C++ 标准库 vector list map使用方法 http://my.oschina.net/gddyl/blog/113744 从

Map生成器 map适配器现在可以使用各种不同的Generator,iterator和常量值的组合来填充Map初始化对象

Map生成器 map适配器现在可以使用各种不同的Generator,iterator和常量值的组合来填充Map初始化对象 package org.rui.collection2.map; /** * map生成器 * @author lenovo * */ public class Pair<K,V> { public final K key; public final V value; public Pair(K k,V v) { this.key=k; this.value=v; } }

Map生成器 map适配器如今能够使用各种不同的Generator,iterator和常量值的组合来填充Map初始化对象

Map生成器 map适配器如今能够使用各种不同的Generator,iterator和常量值的组合来填充Map初始化对象 package org.rui.collection2.map; /** * map生成器 * @author lenovo * */ public class Pair<K,V> { public final K key; public final V value; public Pair(K k,V v) { this.key=k; this.value=v; } }

Java List&amp;Map简单初始化方法

Java中List与Map初始化的一些写法 代码如下 复制代码 //初始化List List<Object> list = new ArrayList<Object>() { { add("obj1"); add("obj2"); add("objN"); } }; for (Object item : list) { System.out.println(item); } //初始化Map  Map<String,

第3阶段——内核启动分析之start_kernel初始化函数(5)

内核启动分析之start_kernel初始化函数(init/main.c) stext函数启动内核后,就开始进入start_kernel初始化各个函数, 下面只是浅尝辄止的描述一下函数的功能,很多函数真正理解需要对linux相关体系有很深的了解后才能明白 代码如下: asmlinkage void __init start_kernel(void) { char * command_line; extern struct kernel_param __start___param[], __sto

发送短信验证码按钮 定时器

static int i = 29; @property(nonatomic,strong) NSTimer *timmer;//定时器 - (void)sendNumber{ NSLog(@"发送验证码"); self.getTelephoneCodeBtn.enabled = NO; [self.getTelephoneCodeBtn setTitle:@"已发送" forState:UIControlStateDisabled]; [self.getTelep

STM32学习笔记(五)——通用定时器计数延时

STM32定时器概述 STM32F40x系列总共最多有14个定时器,定时器分为三类:基本定时器.通用定时器和高级定时器.它们的都是通过计数来达到定时的目的,和51的定时器差不多,基本原理都是一样的,就是功能多了一些,这些计数器都是自动重新装载初值的,使用起来非常方便,而且计数时钟频率可以通过分频系数来设置.本文章将介绍使用定时器中断来控制LED间隔1s闪烁. 计数的时钟来源主要有四个: 内部时钟CK_INT 外部时钟模式1:外部输入脚TIx 外部时钟模式2:外部触发输入ETR,仅适用于 TIM2

简单即用的临时Map容器(参考TimeCacheMap和RotatingMap)

因为业务需要,经常会缓存一些临时数据.比如:手机号发送验证码, 60s内同一个手机号不能重复发送验证码.查询航班信息,缓存1分钟热门查询数据.... 之前一直使用redis作为数据缓存,简单方便..但是如果是个小App,数据没有那么大,可能需要缓存的数据只有不到100KB,使用redis就大材小用 最近一个项目上线的时候,老大跟我说:真的有必要用redis么..不行就先删掉吧..自己想了下,因为App入口有两个ip,不同机器,虽然业务量不大,为了session共享,还是上了 如果只有一个入口(不

linux用户态定时器的使用

linux操作系统为每一个进程提供了3个内部计时器. ITIMER_REAL;ITIMER_VIRTUAL;ITIMER_PROF. ITIMER_REAL:给定一个指定的时间间隔,按照实际的时间来减少这个计数,当时间间隔为0的时候发出SIGALRM信号. ITIMER_VIRTUAL:给定一个时间间隔,当进程执行的时候才减少计数,时间间隔为0的时候发出SIGVTALRM信号. ITIMER_PROF:给定一个时间间隔,当进程执行或者是系统为进程调度的时候,减少计数,时间到了,发出SIGPROF