计数器管理

计数相关的功能在游戏中随处可见,计数管理也就变得十分重要了。计数主要分为分为按天,周,月,不切换这几种类型,实现计数器的关键在于判断当前时间与上次修改时间是否在同一天,同一周或者同一月等。这样在获取某种类型的计数器时,假如不在同一天,同一周或者同一月,那么就需要给计数器清零(不切换类型不需要在这里清零,可以手动设置)。实现如下:

class CounterMgr

{

int get_counter(int id);//获取一种计数器的值

void add_counter_day(int id, int num);//给天计数器的值增加num,如果不存在则新建这种id的计数器

void add_counter_week(int id, int num);//给周计数器的值增加num

void add_counter_month(int id, int num);//给月计数器的值增加num

void set_counter(int id, int num);//设置一种计数器的值

void load(...);

void save(...);

map<int, CounterData> _counter_map; //id, 数据

};

存档相关:

message CounterData

{

uint32 counter_id = 1;//计数器id

uint32 counter_type = 2;//计数器类型日,周,月等

uint32 update_time = 3;//最后一次更新计数的时间戳

uint32 counter_value = 4;//计数器的值

}

proto数据通过SerializeToArray后就可以转换为char*类型的数据了,然后再存档。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值