跳到主要内容

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特效处理模块(可选);

  1. 使用game_buffs.set_buff_template新增buff的模板设置

  2. 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);

}