Files
fc/dev/project/library/imports/98/98b7e2b3-35c4-44eb-bff8-629dee2e1510.js
T

507 lines
15 KiB
JavaScript
Raw Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, '98b7eKzNcRE67/4Yp3uLhUQ', 'dtkey');
// Scripts/client/base/dtkey.js
"use strict";
/*-----------------------------------------------------+
* 游戏内提示框
*
+-----------------------------------------------------*/
// 载入
var install = function install() {
// 下载文件名转换
client.dataName = function (data) {
switch (window.DATA_TYPE || 1) {
case 1:
return data + ".json";
case 2:
return "jsc/" + data + ".json";
case 3:
return "jsc/" + data + ".zip";
}
};
// 解析文件处理
client.parseData = function (name, data) {
switch (window.DATA_TYPE || 1) {
case 1:
game.configs[name] = data;
return;
case 2:
game.configs[name] = data;
return;
case 3:
var pako = require("pako");
var Base64 = require("base64").Base64;
game.configs[name] = JSON.parse(pako.inflate(Base64.atob(data), {
to: 'string'
}));
return;
}
};
// 获取数据 转换成key=>val格式 方便使用
client.getDataKeyVal = function (name, key, id, log) {
if (!game.configs[name][key][id]) {
return game.configs[name][key];
}
var cache_key = key + "_cache";
if (!game.configs[name][cache_key]) {
game.configs[name][cache_key] = {};
}
var cache_data = game.configs[name][cache_key][id];
if (!cache_data) {
cache_data = {};
var fields_key = key + "_fields";
var data = game.configs[name][key][id];
var fields = game.configs[name][fields_key];
if (!fields) {
return data;
}
for (var i = 0, n = fields.length; i < n; i++) {
cache_data[fields[i]] = data[i];
}
game.configs[name][cache_key][id] = cache_data;
}
if (!cache_data) {
nx.warn("not get data", name, key, id);
}
return cache_data;
};
//获取技能数据
// 获取数据 转换成key=>val格式 方便使用
client.getSkillDataKeyVal = function (key, id, log) {
var initname = "skill_data";
var name = initname;
for (var i = 0; i < 7; i++) {
if (i == 0) {
name = initname;
} else {
name = initname + "" + i;
}
if (!game.configs[name]) {
continue;
} else if (!game.configs[name][key]) {
continue;
} else if (!game.configs[name][key][id]) {
continue;
}
var cache_key = key + "_cache";
if (!game.configs[name][cache_key]) {
game.configs[name][cache_key] = {};
}
var cache_data = game.configs[name][cache_key][id];
if (!cache_data) {
cache_data = {};
var fields_key = key + "_fields";
var data = game.configs[name][key][id];
var fields = game.configs[name][fields_key];
if (!fields) {
return data;
}
for (var i = 0, n = fields.length; i < n; i++) {
cache_data[fields[i]] = data[i];
}
game.configs[name][cache_key][id] = cache_data;
}
if (!cache_data) {
nx.warn("not skill_data", name, key, id);
}
return cache_data;
}
return;
};
/*
*/
client.getItemData = function (id, log) {
if (!game.configs["item_data"]) {
if (log != false) nx.debug("item_data_not_found");
return null;
}
//由于表太多,只能一一遍历
var itemdata = game.configs["item_data"];
if (!itemdata) {
return null;
}
//数据重组
var data_ojb = {};
for (var num = 1; num <= 10; num++) {
var str = "data_unit" + num;
var unitdata = itemdata[str];
for (var i in unitdata) {
var val = unitdata[i];
if (val) {
//id 正确
if (val[0] == id) {
var filed_str = "data_unit" + num + "_fields";
var unit_filed = itemdata[filed_str];
for (var j = 0; j < unit_filed.length; j++) {
data_ojb[unit_filed[j]] = val[j];
}
return data_ojb;
}
}
}
}
return null;
};
client.getHolyBaseData = function (id, log) {
if (!game.configs["partner_holy_eqm_data"]) {
if (log != false) nx.debug("partner_holy_eqm_data_not_found");
return;
}
var holydata = game.configs["partner_holy_eqm_data"];
var unit_filed = holydata.data_base_info_fields;
//数据重组
var data_ojb = {};
for (var num = 0; num <= 10; num++) {
var str = "data_base_info";
var basedata = holydata[str];
for (var i in basedata) {
var val = basedata[i];
if (val) {
//id 正确
if (val[0] == id) {
for (var j = 0; j < unit_filed.length; j++) {
data_ojb[unit_filed[j]] = val[j];
}
return data_ojb;
}
}
}
}
return null;
};
client.getPartnerDataByItemId = function (itemid, log) {
if (!game.configs["partner_data"]) {
if (log != false) nx.debug("item_data_not_found");
return;
}
var partner_data = game.configs["partner_data"];
for (var i in partner_data.data_partner_base) {
var data_base = partner_data.data_partner_base[i];
if (data_base.item_id == itemid) {
return data_base;
}
}
};
//获取野怪数据
// 获取数据 转换成key=>val格式 方便使用
client.getUnitDataKeyVal = function (key, id, log) {
var initname = "unit_data";
var name = initname;
for (var i = 0; i < 4; i++) {
if (i == 0) {
name = initname;
} else {
name = initname + "" + i;
}
var key1 = key;
var cache_key = key + "_cache";
if (!game.configs[name][cache_key]) {
game.configs[name][cache_key] = {};
}
if (!game.configs[name]) {
// if( !log ) nx.debug( "config_data_not_found", name );
continue;
}
for (var m = 1; m <= 2; m++) {
if (!game.configs[name][key + "" + m]) {
// if( !log ) nx.debug( "config_data_not_found", name, key1 );
continue;
} else {
if (!game.configs[name][key + "" + m][id]) {
// if( !log ) nx.debug( "config_data_not_found", name, key1,id );
continue;
} else {
key1 = key + "" + m;
}
}
}
if (game.configs[name][key1] == null) {
// if( !log ) nx.debug( "config_data_not_found", name, key1 );
continue;
}
if (game.configs[name][key1][id] == null) {
// if( !log ) nx.debug( "config_data_not_found", name, key1, id );
continue;
}
if (game.configs[name][key1] == null) {
game.configs[name][key1] = {};
}
var cache_data = game.configs[name][key1][id];
if (cache_data) {
cache_data = {};
var fields_key = key1 + "_fields";
var data = game.configs[name][key1][id];
var fields = game.configs[name][fields_key];
if (!fields) {
return data;
}
for (var i = 0, n = fields.length; i < n; i++) {
cache_data[fields[i]] = data[i];
}
game.configs[name][cache_key][id] = cache_data;
}
return cache_data;
}
return;
};
client.sortLang = function (value, arr, tag, is_slice) {
if (is_slice === void 0) {
is_slice = false;
}
if (value == "") return value;
for (var i in arr) {
var id = arr[i].id;
if (is_slice) {
if (id.length < value.length) {
id = arr[i].id;
} else {
id = arr[i].id.slice(0, value.length);
}
}
if (id == value) {
game.configs["txt"][String(id)] = arr[i].id;
// return arr[i][tag+"_str"];
return null;
}
}
return null;
};
client.changeStrByLang = function (table, data, table_list_name, index) {
//table 表名 data 数据 index 数据名或者数据序号 table_list_name 数据对象
var target = nx.getLocLanguage(); //语言标识
if (target == "zh") return data;
var real_data = data;
var lang_data = game.configs["lang"][table + "_lang"]; //多语言译文配置表
if (!lang_data) return data;
var sort_index = -1; //lang_data.data_get.val_len.val;
if (sort_index == -1) {
//不需要匹配长度
if (typeof real_data == "string") {
var lang_str = client.sortLang(real_data, lang_data.data_val_arr, target);
if (lang_str != null) {
if (index) {
game.configs[table][table_list_name][index] = lang_str;
} else {
game.configs[table][table_list_name] = lang_str;
}
// data = lang_str;
}
} else {
for (var a in real_data) {
//先判断是否有字符串
var val = real_data[a];
if (typeof val == "string") {
var _lang_str = client.sortLang(val, lang_data.data_val_arr, target);
if (_lang_str != null) {
data[a] = _lang_str;
}
} else if (typeof val == "object") {
for (var b in val) {
if (typeof val[b] == "string") {
var _lang_str2 = client.sortLang(val[b], lang_data.data_val_arr, target);
if (_lang_str2 != null) {
val[b] = _lang_str2;
data[a] = val;
}
} else if (typeof val[b] == "object") {
for (var c in val[b]) {
if (typeof val[b][c] == "string") {
var sli = void 0;
sli = val[b][c];
var langStr = client.sortLang(sli, lang_data.data_val_arr, target);
if (langStr != null) {
val[b][c] = langStr;
data[a][b] = val[b];
}
}
}
}
}
}
}
}
} else {
if (typeof real_data == "string") {
var slice;
var jq;
if (real_data.length < sort_index) {
slice = real_data;
jq = false;
} else {
slice = real_data.slice(0, sort_index);
jq = true;
}
var _lang_str3 = client.sortLang(slice, lang_data.data_val_arr, target, jq);
if (_lang_str3 != null) {
if (index) {
game.configs[table][table_list_name][index] = _lang_str3;
} else {
game.configs[table][table_list_name] = _lang_str3;
}
// data = lang_str;
}
} else {
for (var _a in real_data) {
//先判断是否有字符串
var _val = real_data[_a];
//截取需要的长度
if (typeof _val == "string") {
var _slice = void 0;
var jq2 = void 0;
if (_val.length < sort_index) {
_slice = _val;
jq2 = false;
} else {
_slice = _val.slice(0, sort_index);
jq2 = true;
}
var _lang_str4 = client.sortLang(_slice, lang_data.data_val_arr, target, jq2);
if (_lang_str4 != null) {
data[_a] = _lang_str4;
}
} else if (typeof _val == "object") {
for (var _b in _val) {
if (typeof _val[_b] == "string") {
var _slice2 = void 0;
var jq3 = void 0;
if (_val[_b].length < sort_index) {
_slice2 = _val[_b];
jq3 = false;
} else {
_slice2 = _val[_b].slice(0, sort_index);
jq3 = true;
}
var _lang_str5 = client.sortLang(_slice2, lang_data.data_val_arr, target, jq3);
if (_lang_str5 != null) {
_val[_b] = _lang_str5;
data[_a] = _val;
}
} else if (typeof _val[_b] == "object") {
for (var _c in _val[_b]) {
if (typeof _val[_b][_c] == "string") {
var _sli = void 0;
var jq4 = void 0;
if (_val[_b][_c].length < sort_index) {
_sli = _val[_b][_c];
jq4 = false;
} else {
_sli = _val[_b][_c].slice(0, sort_index);
jq4 = true;
}
var _langStr = client.sortLang(_sli, lang_data.data_val_arr, target, jq4);
if (_langStr != null) {
_val[_b][_c] = _langStr;
data[_a][_b] = _val[_b];
}
}
}
}
}
}
}
}
}
return real_data;
};
client.getConfigData = function (str1, str2, id) {
var table, name, real_id;
if (typeof str1 != "string") {
table = String(str1);
} else {
table = str1;
}
if (!game.configs[table]) {
cc.log("cur table is not exist", table);
return;
}
if (typeof str2 != "string") {
name = String(str2);
} else {
name = str2;
}
if (!game.configs[table][name]) {
cc.log("cur ojb is not exist", table, name);
return;
}
if (typeof id == "string") {
real_id = id;
} else {
real_id = String(id);
}
if (!id) {
//drama 表做特殊处理
var table_list = game.configs[table][name];
if (typeof table_list == "string") {
client.changeStrByLang(table, table_list, name);
} else {
for (var i in table_list) {
if (table == "drama_data" && name == "data_get") {
client.changeStrByLang(table, table_list[i].act, name, i);
} else if (table == "drama_data" && name == "data_guide") {
if (table_list[i].act[0].length <= 2) {
for (var j = 0; j < table_list[i].act.length; j++) {
var val = table_list[i].act[j];
client.changeStrByLang(table, val, name, i);
}
} else {
if (!table_list[i].act[0][3]) {
for (var _j = 0; _j < table_list[i].act[0].length; _j++) {
var _val2 = table_list[i].act[0][_j];
client.changeStrByLang(table, _val2, name, i);
}
} else {
for (var _j2 = 0; _j2 < table_list[i].act[0][3].length; _j2++) {
var _val3 = table_list[i].act[0][3][_j2];
client.changeStrByLang(table, _val3, name, i);
}
}
}
} else {
client.changeStrByLang(table, table_list[i], name, i);
}
}
}
return table_list;
}
var data = game.configs[table][name][real_id];
if (data) {
//开始匹配语言,匹配完成再返回数据
return client.changeStrByLang(table, data);
} else {
cc.log("data is not exist!!", table, name, id);
return;
}
};
// 暂时兼容,后续修改
window.gdata = client.getDataKeyVal;
window.gskilldata = client.getSkillDataKeyVal;
window.gitemdata = client.getItemData;
window.gholybasedata = client.getHolyBaseData;
window.gunitdata = client.getUnitDataKeyVal;
window.gdatabyitemid = client.getPartnerDataByItemId;
window.gstrbylang = client.changeStrByLang; //通过中文str获取译文
window.gconfig = client.getConfigData; //获取Config数据
};
// 卸载
var uninstall = function uninstall() {};
// 导出
module.exports = {
install: install,
uninstall: uninstall
};
cc._RF.pop();