game_server.activity
简介
基于engine层实现的活动模块
几点说明:
- 支持解释自定义的活动时间格式
- 支持扩展自定义的活动周期
- 支持扩展自定义的活动功能模块
- 支持扩展自定义的活动对象
- 支持扩展自定义的活动相关的mongo脚本
活动初始化设置时处理:
- 先加载所有自定义活动周期、功能模块、对象、mongo脚本
- 创建所有在/etc/activity.xlsx中配置的活动对象(启动计划事件、心跳)
活动配置表(activity.xlsx)的一些说明
activity.xlsx必有字段:
- name - 活动名称
- ob - 活动开始后创建的活动对象实例的名称(可以通过activity_factory.query_entry查询到非nil值)
- mod - 活动对象实例关联的活动功能模块的名称(可以通过activity_mod.query_entry查询到非nil值)
- date_type -活动周期类型(可以通过activity_cycle.query_entry查询到非nil值),当前支持周期为:
day - 每天(可循环)
week - 每周(可循环)
period - 时间段(不可循环)
- date - 活动日期列表(默认仅在date_type为'week'时起效-表示每周哪几天有活动)
- time - 活动时间列表
- switch_stage_time - 活动阶段转换时间列表(相对于开始时间)
- stage_name - 活动阶段名称(需和switch_stage_time一一对应)
- pre_start_time - 活动开始预告时间(相对于开始时间)
- pre_stop_time - 活动结束预告时间(相对于结束时间)
- after_stop_time - 活动结束后处理时间((相对于结束时间))
activity.xlsx可选字段:
- only_show - true值时表示仅用于显示,不会创建活动对象实例
基础组件的一些说明:
- FActivityCycleBase - 自定义的活动周期需要包含这个组件
- FActivityModBase - 自定义的活动功能模块需要包含这个组件
- FActivityObBase - 自定义的活动对象需要包含这个组件
组件接口
activity.gs
| 函数原型 | 函数作用 |
|---|---|
| bool setup(map para = ) | 初始化活动模块设置 |
| void shutdown() | 关闭活动模块 |
| void load_activity_mods(string path) | 载入指定路径的活动功能模块 |
| void load_activity_obs(string path) | 载入指定路径的活动对象 |
| void load_activity_cycles(string path) | 载入指定路径的活动周期对象 |
| void load_activity_mongo_scripts(string path) | 载入指定路径的活动相关的mongo脚本 |
| void start() | 开始服务 |
| void stop() | 停止服务 |
| void debug_start(string name, int batch = 0, map args = ) |