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

游戏配置表的导入使用

游戏配置表是游戏策划的标配,如下图:
在这里插入图片描述

那么程序怎么把这张配置表导入使用?

1.首先,利用命令行把Excel格式的文件转化成Json格式:

json-excel\json-excel json Tables\ Data\@copy Data\CharacterDefine.txt ..\Client\Data\
pause

其中把第一行的Tables\改成自己存放Excel文件的文件夹,Data\改成存放Json文件的文件夹即可,第二行是复制Json文件的命令。上面的代码存成.cmd文件双击使用即可
生成的Json文件如下

{"1": {"ID": 1,"Name": "小型治疗药水","Description": "使用立即回复500生命值(战斗回复)","Type": "NORMAL","Category": "药水","Level": 1,"CanUse": true,"UseCD": 1.0,"Price": 200,"SellPrice": 100,"StackLimit": 99,"Icon": "UI/Items/hongp","Function": "RecoverHP","Param": 500},"2": {"ID": 2,"Name": "小型法力药水","Description": "使用立即回复500法力值(战斗回复)","Type": "NORMAL","Category": "药水","Level": 1,"CanUse": true,"UseCD": 1.0,"Price": 200,"SellPrice": 100,"StackLimit": 99,"Icon": "UI/Items/lanp","Function": "RecoverMP","Param": 500},

2.用Define文件定义内容:

  public class ItemDefine{public int ID { get; set; }public string Name { get; set; }public string Description { get; set; }public ItemType Type { get; set; }public string Category { get; set; }public int Level { get; set; }public CharacterClass LimitClass { get; set; }public bool CanUse { get; set; }public int Price { get; set; }public int SellPrice { get; set; }public int StackLimit { get; set; }   // 堆叠限制public string Icon { get; set; }public ItemFunction Function { get; set; }public int Param { get; set; }public List<int> Params { get; set; }}

3.C#代码读取Json文件:

using System.Collections.Generic;
using System.IO;
using Common;
using Common.Data;
using Newtonsoft.Json;namespace GameServer.Managers
{public class DataManager : Singleton<DataManager>{internal string DataPath;public Dictionary<int, ItemDefine> Items = null;public DataManager(){this.DataPath = "Data/";Log.Info("DataManager > DataManager()");}internal void Load(){json = File.ReadAllText(this.DataPath + "ItemDefine.txt");this.Items = JsonConvert.DeserializeObject<Dictionary<int, ItemDefine>>(json);}}
}

在DataManager单例初始化后,调用Load函数读取json文件,就能使用配置表了
4.使用案例

DataManager.Instance.Items[ItemID].Name
http://www.lryc.cn/news/252766.html

相关文章:

  • ❀dialog命令运用于linux❀
  • 【算法】蓝桥杯2013国C 横向打印二叉树 题解
  • XunSearch 讯搜 error: storage size of ‘methods_bufferevent’ isn’t known
  • 基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(三)——serverless数据分析
  • 08、分析测试执行时间及获取pytest帮助
  • 视频集中存储/智能分析融合云平台EasyCVR平台接入rtsp,突然断流是什么原因?
  • JavaScript 复杂的<三元运算符和比较操作>的组合--案例(一)
  • uniapp搭建内网映射测试https域名
  • 国防科技大博士招生入学考试【50+论文主观题】
  • CUDA简介——编程模式
  • Linux 软件安装
  • flask之邮件发送
  • 【Filament】Filament环境搭建
  • 外包干了2个月,技术倒退2年。。。。。
  • 使用 python ffmpeg 批量检查 音频文件 是否损坏或不完整
  • Django:通过user-agent判断请求是来自移动端还是PC端(电脑端)
  • Linux中ssh远程登录系统和远程拷贝
  • git常用命令小记
  • 深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动
  • SoC with CPLD and MCU ?
  • 基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(二)——数据清洗、转换
  • vuepress-----6、时间更新
  • C++ ini配置文件的简单读取使用
  • 【稳定检索|投稿优惠】2024年经济管理与安全科学国际学术会议(EMSSIC 2024)
  • 什么是网站?
  • pg_stat_replication.state 含义
  • JavaWeb(六)
  • GPIO的使用--时钟使能含义--代码封装
  • 最小化安装 Neokylin7.0 用于搭建 Hadoop 集群
  • 苍穹外卖面试题-中