- 修改了 batchSetting.js 脚本,更新了配置参数和生成逻辑 - 调整了 StdItems.json 中多件装备的属性,包括法师、道士和战士的传说级武器 - 优化了装备描述和效果,提高了部分装备的攻击力和防御力
53 lines
2.0 KiB
JavaScript
53 lines
2.0 KiB
JavaScript
const { log } = require('console');
|
|
const fs = require('fs')
|
|
const path = require('path');
|
|
const folderPath = "./configs"
|
|
function jsonToLua(jsonObj, indent = '', linefeed = '\n') {
|
|
let luaStr = '';
|
|
const strKey = key => isNaN(key) ? `${key}` : `[${key}]`;
|
|
for (let 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 => ["StdItems","ItemMergeConfig","MergeConfig","MergeTotal","RecyclingSettingConfig","UpstarConfig"].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() |