"use strict";
|
cc._RF.push(module, '5cfb3xdItxGKKjOd3kfE5/Q', 'chat_item_controller');
|
// Scripts/mod/chat/chat_item_controller.js
|
|
"use strict";
|
|
var ChatConst = require("chat_const");
|
|
var ChatEvent = require("chat_event");
|
|
var BackPackConst = require("backpack_const");
|
|
var GoodsVo = require("goods_vo");
|
|
var HeroController = require("hero_controller");
|
|
var TipsController = require("tips_controller");
|
|
var PartnerConst = require("partner_const");
|
|
var FriendController = cc.Class({
|
"extends": BaseController,
|
ctor: function ctor() {},
|
registerProtocals: function registerProtocals() {
|
this.RegisterProtocal(12418, this.handle12418.bind(this)); // 发送任务到聊天
|
|
this.RegisterProtocal(12419, this.handle12419.bind(this)); // 点击任务返回数据
|
|
this.RegisterProtocal(11221, this.handle11221.bind(this)); // 发送伙伴到聊天
|
|
this.RegisterProtocal(11222, this.handle11222.bind(this)); // 点击伙伴返回数据
|
|
this.RegisterProtocal(10535, this.handle10535.bind(this));
|
this.RegisterProtocal(10536, this.handle10536.bind(this)); // 点击物品返回数据
|
},
|
// 生成item Text
|
buildItemMsg: function buildItemMsg(item_bid, srv_id, share_id, count) {
|
var config_data = Utils.getItemConfig(item_bid);
|
count = count || 0;
|
var item_name = config_data.name;
|
if (count > 1) item_name = item_name + "x" + count;
|
|
if (config_data) {
|
// <div fontcolor=%s href=%s|%s|%s>[%s]</div>"
|
return cc.js.formatStr("<color=%s><on click='handler' param='%s|%s|%s'>[%s]</on></color>", BackPackConst.quality_color(config_data.quality), ChatConst.Link.Item_Show, srv_id, share_id, item_name);
|
}
|
},
|
relapceFaceIconTag: function relapceFaceIconTag(text) {
|
var patt = /(#)\d+/g;
|
var result = null;
|
|
while ((result = patt.exec(text)) != null) {
|
var face_id = result[0].slice(1, result[0].length);
|
var face_cfg = Config.face_data.data_biaoqing[face_id];
|
var replace_str = "";
|
if (face_cfg) replace_str = cc.js.formatStr("<img src='emoji' emoji='%s'/>", face_cfg.name);
|
text = text.replace(new RegExp(result[0], 'i'), replace_str);
|
}
|
|
return text;
|
},
|
analyzeMessage: function analyzeMessage(message) {
|
var patt = /(src=)/g;
|
var result = null;
|
|
while ((result = patt.exec(message)) != null) {
|
message += "**";
|
}
|
|
return message;
|
},
|
getImages: function getImages(message) {
|
var img_ids = [];
|
var emojis = message.match(/src='(\S*)'/g);
|
|
for (var emoji_i in emojis) {
|
var emoji = emojis[emoji_i];
|
var emoji_info = emoji.match(/src='(\S*)'/);
|
if (emoji_info[1] !== "emoji") img_ids.push(emoji_info[1]);
|
}
|
|
return img_ids;
|
},
|
getEmojis: function getEmojis(message) {
|
var emoji_ids = [];
|
var emojis = message.match(/emoji='(\S*)'/g);
|
|
for (var emoji_i in emojis) {
|
var emoji = emojis[emoji_i];
|
var emoji_info = emoji.match(/emoji='(\S*)'/);
|
emoji_ids.push(emoji_info[1]);
|
}
|
|
return emoji_ids;
|
},
|
handle12418: function handle12418(data) {},
|
handle12419: function handle12419(data) {},
|
handle11221: function handle11221(data) {},
|
handle11222: function handle11222(data) {},
|
send10535: function send10535(type, id, partner_id, code) {
|
var protocal = {};
|
protocal.type = type;
|
protocal.id = id;
|
protocal.partner_id = partner_id;
|
protocal.code = code;
|
this.SendProtocal(10535, protocal);
|
},
|
handle10535: function handle10535(data) {
|
if (data.flag == 1) {
|
gcore.GlobalEvent.fire(ChatEvent.CHAT_SELECT_ITEM, data);
|
} else {
|
message(data.msg);
|
}
|
},
|
// 获取物品Tips
|
sender10536: function sender10536(share_id, srv_id) {
|
if (!share_id) return;
|
var protocal = {};
|
protocal.srv_id = srv_id;
|
protocal.id = share_id;
|
this.SendProtocal(10536, protocal);
|
},
|
// 显示物品Tips
|
handle10536: function handle10536(data) {
|
if (data) {
|
var item_vo = new GoodsVo();
|
item_vo.setBaseId(data.base_id);
|
item_vo.initAttrData(data);
|
|
if (!item_vo.config) {
|
message(Utils.TI18N("数据异常"));
|
return;
|
}
|
|
if (BackPackConst.checkIsEquip(item_vo.config.type)) {
|
HeroController.getInstance().openEquipTips(true, item_vo, PartnerConst.EqmTips.other);
|
} else if (BackPackConst.checkIsArtifact(item_vo.config.type)) {
|
HeroController.getInstance().openArtifactTipsWindow(true, item_vo, PartnerConst.ArtifactTips.normal);
|
} else {
|
var TipsController = require("tips_controller");
|
|
TipsController.getInstance().showGoodsTips(item_vo.config);
|
}
|
}
|
}
|
});
|
|
cc._RF.pop();
|