"use strict"; cc._RF.push(module, 'fe5684HAfBGhI1nlMa905OF', 'bridge.utils.item'); // Scripts/zbridge/utils/bridge.utils.item.js "use strict"; /******************************************************************************* * * 老版本桥接过渡 --- 封装一些道具相关的整合方法 * * ******************************************************************************/ // 转换图标必要数据 // 1: 伙伴对象 // 2: 伙伴bid/配置 // 3: 背包物品对象 // 4: 物品id/配置 var data2Icon = function data2Icon(_data) { // 判空 if (!_data) { return null; } // 无需转换 if (nx.dt.strGood(_data._flag)) { return _data; } // 必要数据 var info = { _flag: "", // 数据来源 id: 0, // 伙伴序列 bid: 0, // 伙伴编号 item_id: 0, // 物品编号 quality: 0, // 品质 icon: 0, // 图标 count: 0, // 数量 level: 0, // 等级 name: "", // 名字 desc: "", // 描述 stars: 0, // 星级 camp_type: 0, // 阵营 type: 0, // 物品类型 sub_type: 0, // 物品子类型 eqm_set: 0, // 神装等级 eqm_jie: 0, // 神装评价 wing_lv: 0, // 僚机等级 in_team: 0 // 是否出战 }; // 参数为ID先进行配置查询 var params = _data; if (nx.dt.numGood(_data)) { // 作为伙伴bid/物品id来进行配置查找 params = game.configs.partner_data.data_partner_base[_data]; if (!params) { params = Utils.getItemConfig(_data); } // 未找到 if (!params) { nx.error("[ItemInfo]无效物品编号:", _data); return null; } } // [id,num]结构 if (nx.dt.arrGood(_data) && _data.length == 2) { var id = _data[0]; // 作为伙伴bid/物品id来进行配置查找 params = game.configs.partner_data.data_partner_base[id]; if (!params) { params = Utils.getItemConfig(id); } // 未找到 if (!params) { nx.error("[ItemInfo]无效物品编号:", id); return null; } info.count = _data[1] || 0; } // { bid, num }结构 if (nx.dt.objLen(_data) <= 4 && nx.dt.numPositive(_data.bid, false) && nx.dt.numPositive(_data.num, true)) { var _id = _data.bid; // 作为伙伴bid/物品id来进行配置查找 params = game.configs.partner_data.data_partner_base[_id]; if (!params) { params = Utils.getItemConfig(_id); } // 未找到 if (!params) { nx.error("[ItemInfo]无效物品编号:", _id); return null; } info.count = _data.num || 0; } // 非对象错误 if (nx.dt.objEmpty(params)) { // nx.error( "[ItemInfo]无效配置" ); return null; } var item_cfg = null; // 伙伴对象 if (nx.dt.fnGood(params.updateHeroVo)) { info._flag = 'hero'; info.id = params.id; info.bid = params.bid; info.item_id = params.item_id || game.configs.partner_data.data_partner_base[params.bid].item_id; info.level = params.lev; info.camp_type = params.camp_type; info.stars = params.star; info.name = params.name; // 使用皮肤 if (nx.dt.numPositive(params.use_skin, false)) { var SKIN = game.configs.partner_skin_data.data_skin_info[params.use_skin]; if (SKIN) { info.icon = SKIN.head_id; } } //key:5代表拥有皮肤数据,value:0代表原始皮肤 var ext_data = params.ext_data; if (!nx.dt.arrEmpty(ext_data) && (ext_data[0].key == 5 || ext_data[0].id == 5) && (ext_data[0].value > 0 || ext_data[0].val > 0)) { var skin_id = ext_data[0].value || ext_data[0].val; var _SKIN = game.configs.partner_skin_data.data_skin_info[skin_id]; if (_SKIN) { info.icon = _SKIN.head_id; } } else { params.ext_data = []; } } //位面战争特殊伙伴对象,具有血量特殊属性 else if (nx.dt.numGood(params.hp_per)) { info._flag = 'hero'; var partner_cfg = game.configs.partner_data.data_partner_base[params.bid]; info.id = params.partner_id; info.bid = params.bid; info.item_id = params.item_id || partner_cfg.item_id; info.level = params.lev; info.camp_type = partner_cfg.camp_type; info.stars = params.star; info.name = partner_cfg.name; info.flag = params.flag; info.hp_per = params.hp_per; info.power = params.power; info.ext_data = params.ext_data; } // 背包道具 else if (nx.dt.fnGood(params.setBaseId)) { info._flag = 'bag'; info.id = params.id; info.item_id = params.base_id; info.level = params.lev; info.quality = params.quality; info.count = params.quantity; info.type = params.type; info.sub_type = params.sub_type; item_cfg = params.config; } // 伙伴配置 else if (nx.dt.numGood(params.bid)) { info._flag = 'partner'; info.bid = params.bid; info.item_id = params.item_id; info.name = params.name; info.stars = params.init_star; info.camp_type = params.camp_type; info.quality = params.quality; } // 物品配置 else if (nx.dt.numGood(params.id)) { info._flag = 'item'; info.item_id = params.id; info.count = info.count || params.num || params.count || 0; item_cfg = params; } // 物品配置补全 if (!item_cfg || nx.dt.strEmpty(item_cfg.name)) { item_cfg = Utils.getItemConfig(info.item_id); if (!item_cfg) { nx.error("[ItemInfo]无效物品编号:", info.item_id); return null; } } // 补全 info.quality = info.quality || item_cfg.quality; info.icon = info.icon || item_cfg.icon; info.level = info.level || item_cfg.lev; info.name = info.name || item_cfg.name; info.desc = info.desc || item_cfg.desc; info.camp_type = info.camp_type || item_cfg.camp_type; info.eqm_set = info.eqm_set || item_cfg.eqm_set; info.eqm_jie = info.eqm_jie || item_cfg.eqm_jie || 0; info.stars = info.stars || item_cfg.eqm_star || 0; info.wing_lv = info.wing_lv || item_cfg.lev; info.type = info.type || item_cfg.type; info.sub_type = info.sub_type || item_cfg.sub_type; info.mark = item_cfg.mark || 0; //稀有特效,部分道具拥有该参数 info.desc_client = nx.dt.arrNEmpty(item_cfg.client_effect) ? item_cfg.client_effect[0] : ""; //稀有特效,部分道具拥有该参数 // 追加头像 if (nx.dt.numGood(_data.face) || nx.dt.numGood(_data.face_id) || nx.dt.numGood(_data.tar_face) || nx.dt.numGood(_data.a_face) || nx.dt.numGood(_data.b_face) || nx.dt.numGood(_data.head_icon) || nx.dt.numGood(_data.def_face) || nx.dt.numGood(_data.atk_face) || nx.dt.numGood(_data._faceid)) { info.face = _data.face || _data.face_id || _data.tar_face || _data.a_face || _data.b_face || _data.head_icon || _data.def_face || _data.atk_face || _data._faceid; info.data = _data; info.avatar = _data.avatar_id || _data.avatar_base_id || _data.avatar_bid || _data.avatar; } return info; }; // 导出 module.exports = { data2Icon: data2Icon }; cc._RF.pop();