golang游戏服务器 - tgf系列课程06

游戏配置

使用框架提供的游戏配置工具,只要两步,开箱即用

需求描述

沿用上一节课的案例, 创建道具表,通过道具id在道具服中获取配置中道具的名称

Excel

创建配置表

在这里插入图片描述

根据项目文档中进阶教程目录下ExcelToJson的教程文档,创建指定格式的Excel文件.

脚本
生成脚本
func main() {
	//关闭框架缓存
	db.WithCacheModule(tgf.CacheModuleClose)
	//设置excel路径
	util.SetExcelPath("./excel")
	//设置excel导出的go文件路径
	util.SetExcelToGoPath("../common/conf")
	//设置excel导出的json文件路径
	util.SetExcelToJsonPath("../common/conf/js")
	//开始导出excel
	util.ExcelExport()
}
生成代码
配置结构文件
type PropConf struct {
	//唯一id
	Id string
	//道具名称
	Name string
}

Prop节点

道具节点相关修改

启动函数

修改节点的启动函数,追加指定json路径
代码
json路径配置
func Startup() {
	r := rpc.NewRPCServer().
		WithRandomServicePort(8021, 8030).
		WithCache(tgf.CacheModuleClose).
		WithService(NewService()).
		WithGameConfig("../Common/conf/js").  //新增的json路径指向
		Run()
	<-r
}

逻辑代码使用

通过框架提供的函数,使用生成后的配置文件
代码
核心使用函数 component.GetGameConf[*conf.PropConf](args.PropId)通过泛型指定和传入的主键id,获取配置相关内容
func (s *service) GetUserPropCount(ctx context.Context, args *model.GetUserPropArgs, reply *model.GetUserPropReply) (err error) {
	userId := rpc.GetUserId(ctx)
	reply.Count = s.propCountCache[args.PropId]
	if propConfig, h := component.GetGameConf[*conf.PropConf](args.PropId); h {
		reply.Name = propConfig.Name
	}
	log.DebugTag("prop", "get %s user %s prop %s count %d ", userId, args.PropId, reply.Name, reply.Count)
	return
}

更多高级用法,可以查看项目文档相关介绍.

交流群

QQ群:7400585

下期预告

使用数据管理工具,对玩家数据进行自动化的缓存管理.

视频教程

golang游戏服务器 - tgf系列课程06
B站教程合集

项目地址

Github项目地址
Gitee项目地址
项目案例
项目文档
知乎博客
CSDN专栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值