游戏配置表的导入使用

游戏配置表是游戏策划的标配,如下图:

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

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

powershell 复制代码
json-excel\json-excel json Tables\ Data\

@copy Data\CharacterDefine.txt ..\Client\Data\
pause

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

生成的Json文件如下

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文件定义内容:

csharp 复制代码
  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文件:

csharp 复制代码
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.使用案例

csharp 复制代码
DataManager.Instance.Items[ItemID].Name
相关推荐
梦想平凡14 小时前
棋牌游戏技术实战(十三):缓存对局历史时控制容量,命中以后仍然检查成员权限
游戏·缓存
阿阳微客15 小时前
steam游戏搬砖用选品软件照搬就可以么?经验帖
学习·游戏
FairGuard手游加固1 天前
手游加固怎么做?SO、IL2CPP、AssetBundle 与运行时保护详解
安全·游戏·unity
Vex2une1 天前
GRLP游戏运行库合集:一站式解决DLL缺失与启动报错实战指南 | Game Runtime Libraries Package
游戏·vc++运行库·0xc000007b·游戏运行库·dll缺失修复·directx修复·游戏报错解决
tommyjiatong2 天前
SDK游戏盾的工作原理
游戏·网络安全·sdk盾
tianyatest2 天前
魔兽争霸 III 接入大语言模型:基于文件通道的混合式游戏 AI 智能体系统设计与实现
人工智能·游戏·语言模型·war3
开开心心_Every3 天前
黄金价格软件国内外价格实时监控超方便
运维·服务器·游戏·智能手机·pdf·lua·perl
hflmwl83 天前
Wise Game Booster 游戏加速软件
游戏·wisegamebooster·游戏加速软件
Solange__3 天前
工业产线怎么用AI生成3D场景?从现场采集、部件重建到数字孪生交付的完整方案
人工智能·游戏·3d·ai·语言模型·自然语言处理·关卡设计
一次旅行4 天前
2026.10.13 AI产业深度解读|硬件互联标准更新;Agent工程启示;开源社区AI政策转向;游戏与科研AI双线突破
人工智能·游戏·开源