game_server.buffs2
简介
- 这是一个通用的buff实现,可以用于战斗中或者战斗外
- 该实现需要受到以下限制:
- 以map提供的类型配置,且包含"big_type", "effect_mod", "reject", "replace", "overlay"字段,字段含义见代码
- 以map提供的等级配置,且包含"overlay_layer"字段,字段含义见代码
接入流程
- 配置处理对象继承BuffConfigBase并实现其中的接口
- 需要持有buff的对象继承BuffContainerBase并实现其中的接口,具有默认实现的接口可以选择覆盖
组件接口
BuffContainerBase.gs
buff容器基类
| 函数原型 | 函数作用 |
|---|---|
| mixed gain_buff(mixed conf_id, int duration, map data, map args) | 获得一个buff |
| void buff_heartbeat(int now_ms) | 心跳轮训 |
| void buff_trigger_event(string event_name, map para) | 触发一类事件 |
BuffHandlerBase.gs
buff处理模块基类
| 函数原型 | 函数作用 |
|---|---|
| bool handle_event(object container_ob, Buff buff_data, string event_name, map para) | 处理事件 |
buffs2.gs
buff公共模块
| 函数原型 | 函数作用 |
|---|---|
| void set_buff_config_ob(object config_ob) | 设置buff配置管理模块 |
| object get_buff_config_ob() | 获取buff配置管理模块 |
| void load_extra_handlers(string path) | 载入buff事件处理对象 |
| void add_overlay_process_func(string overlay, function func) | 添加叠加处理函数 |
| function get_overlay_process_func(string overlay) | 通过名字获取叠加处理函数 |
样例
备注
TODO