game_client.game_buffs
简介
基于client engine实现的buff功能模块,和服务器的pkg.game_server.game_buffs相对应
组件接口
FBuffBase.gs
buff的基础组件
函数原型 | 函数作用 |
---|---|
map get_buffs() | buffs数据保存的地方,使用该组件的对象需覆盖该函数 |
map query_buff(string buff_cookie) | 通过cookie查询对应的buff |
array query_cookies(string buff_id, function filter_func = nil) | 通过buff类型,查询该类的所有buff的cookie |
array query_buffs_by_id(string buff_id, function filter_func = nil) | 通过buff类型,查询该类型的所有buff |
bool contains_buff(string buff_id, function filter_func = nil) | 判断某个类型的buff是否存在 |
game_buffs.gs
基于client engine的buff系统,和服务器的pkg.game_server.game_buffs对应buff系统
文件组织:
game_buffs: pkg.game_buffs的入口文件,提供了加载/获取buff特效功能模块、buff配置模板等接口
FBuffBase: buff功能基础组件,提供增加/移除buff等功能
FEntityBuffBase: 基于engine和FBuffBase实现的实体对象buff功能的组件
几点说明:
1.模块通过setup方法初始化;初始化参数可以通过指定game_cmd_path和effect_path提供消息处理对象和buff特效处理模块(可选);
-
使用game_buffs.set_buff_template新增buff的模板设置
-
buff的模板不是必须的,buff缺少模板配置时将使用默认实现
函数原型 | 函数作 用 |
---|---|
bool setup(map para = ) | 模块功能初始化 |
void set_buff_template(string buff_id, map buff_template) | 登记buff的一些配置信息 |
map get_buff_template(string buff_id) | 根据buff id获取预先登记的buff配置信息 |
object get_effect_ob(string buff_id) | 根据buff id获取buff的特效功能模块对象 |
样例
public void pkg_sample()
{
import engine.mods.conf;
import pkg.game_client.game_buffs;
if (! game_buffs.setup())
error("pkg.game_client.game_buffs初始化失败");
// 读取status.xlsxs配置,登记buffm模板
map status_dict = conf.get_table("status");
for (string status_id, map status_template : status_dict)
game_buffs.set_buff_template(status_id, status_template);
}