Files
chuanqi-client-config/tools/json2lua.js
Kubbo 903ac666f6 feat(config): 更新月卡和商店配置
- 调整月卡消费数量,降低部分等级的消费门槛
- 修改商店商品数量,增加某些商品的可购买量
- 更新 json2lua 工具,添加 MonthCardConfig 的处理
2025-05-18 16:46:11 +08:00

70 lines
2.1 KiB
JavaScript

const { log } = require("console");
const fs = require("fs");
const path = require("path");
const folderPath = "./configs";
const scope = [
"StdItems",
"Monster",
"ItemMergeConfig",
"MergeConfig",
"SpecialRingConfig",
"RecyclingSettingConfig",
"ActivitiesConf",
"UpstarPriceConfig",
"UpstarConfig",
"MonthCardConfig",
// "GuildDonateConfig",
"ShopConfig",
// "NpcTransConf"
// "MergeTotal", "RecyclingSettingConfig", "UpstarConfig",
].filter(Boolean);
const strKey = (key) => (isNaN(key) ? `${key}` : `[${key}]`);
function jsonToLua(jsonObj, indent = "", linefeed = "\n") {
let luaStr = "";
for (key in jsonObj) {
let value = jsonObj[key];
key = strKey(key);
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
// 对象
luaStr += `${indent}${key} = {`;
luaStr += jsonToLua(value, indent + " ");
luaStr += `${indent}},\n`;
} else if (Array.isArray(value)) {
// 数组
luaStr += `${indent}${key} = {`;
value.forEach((item) => {
if (typeof item === "string") {
luaStr += `${indent} '${item}',`;
} else if (typeof item == "object") {
luaStr += `{${jsonToLua(item, "", "")}},`;
} else {
luaStr += `${indent} ${item},`;
}
});
luaStr += `${indent}},\n`;
} else {
// 基础类型
if (typeof value === "string") {
luaStr += `${indent}${key}="${value}",${linefeed}`;
} else {
luaStr += `${indent}${key}=${value},${linefeed}`;
}
}
}
return luaStr;
}
const start = () => {
const files = fs.readdirSync(folderPath);
// 过滤出所有的 JSON 文件
const jsonFiles = files.filter((file) => path.extname(file) === ".json").filter((file) => scope.map((e) => `${e}.json`).includes(file));
jsonFiles.forEach((file) => {
const json = JSON.parse(fs.readFileSync(path.join(folderPath, file), "utf8"));
const filename = path.basename(file, path.extname(file));
const luaConfig = `${filename}={\n${jsonToLua(json)}\n}`;
fs.writeFileSync(`./luaConfigs/${filename}.config`, luaConfig);
});
};
start();