当前位置: 首页 > news >正文

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")//开始导出excelutil.ExcelExport()
}
生成代码
配置结构文件
type PropConf struct {//唯一idId 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专栏

http://www.lryc.cn/news/258344.html

相关文章:

  • 【Canvas】记录一次从0到1绘制风场空间分布图的过程
  • 如何用gpt改写文章 (1) 神码ai
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring依赖注入数值问题
  • egen3 rowwise().maxCoeff()的使用
  • 关于Pytorch和Numpy中的稀疏矩阵sparse的知识点
  • 2024年AI云计算专题研究报告:智算带来的变化
  • 孩子还是有一颗网安梦——Bandit通关教程:Level 5 → Level 6
  • vue2-elementUI部分组件样式修改
  • fijkplayer flutter 直播流播放
  • Javascript的基本语法(规范)
  • vue chrome debugger 无效
  • JRT实现Cache的驱动
  • ESP32网络开发实例-Web串口(WebSerial)
  • P2 Qt Creator创建第一个Qt程序
  • 加班、效率和价值
  • 【QT 5 调试软件+(Linux下验证>>>>串口相关初试串口)+Windows下qt代码在Linux下运行+参考win下历程+基础样例】
  • 地址栏不安全提示
  • glib编译与实战
  • PHP基础(4)
  • 软件安全设计
  • Mysql、Oracle安全项检查表及操作脚本
  • 单片双向马达驱动芯片D6208的芯片描述
  • 使用ansible命令部署k8s集群
  • 【上海大学数字逻辑实验报告】四、组合电路(三)
  • centos安装node 、npm 、nvm
  • 年终福利|鹅厂重磅AI绘画训练营带你玩转SD
  • arXiv学术速递笔记12.8
  • 大模型元年压轴盛会定档12月28日,第十届WAVE SUMMIT即将启航
  • 基于conda环境使用mamba/conda安装配置QIIME 2 2023.9 Amplicon扩增子分析环境,q2cli主要功能模块介绍及使用
  • 腾讯-轻量应用服务器centos7中宝塔安装MySQL8.0出现内存不足