Files
fc/dev/project/library/imports/4f/4ffe809d-f636-478c-83c6-690236b1bd36.js
T
2026-05-24 10:21:26 +08:00

721 lines
24 KiB
JavaScript

"use strict";
cc._RF.push(module, '4ffe8Cd9jZHjIPGaQI2sb02', 'pvprank.mod');
// Scripts/mod/pvp/rank/pvprank.mod.js
"use strict";
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 跨服时空,zys
// <br/>Create: 2019-07-29 10:38:42
// --------------------------------------------------------------------
var BridgeController = require("bridge.controller");
var RoleEvent = require("role_event");
var ElitematchEvent = require("elitematch_event");
var RoleController = require("role_controller");
var PartnerConst = require("partner_const");
var HeroController = require("hero_controller");
var BattleController = require("battle_controller");
var BattleConst = require("battle_const");
var PVPRank = cc.Class({
"extends": BridgeController,
ctor: function ctor() {},
// 初始化配置数据
initConfig: function initConfig() {
var ElitematchModel = require("elitematch_model");
this.model = new ElitematchModel();
this.model.initConfig();
},
// 返回当前的model
getModel: function getModel() {
return this.model;
},
// 注册监听事件
registerEvents: function registerEvents() {},
// 注册协议接受事件
registerProtocals: function registerProtocals() {
this.RegisterProtocal(24900, this.handle24900); //請求精英賽基礎信息
this.RegisterProtocal(24901, this.handle24901); //請求對手信息
this.RegisterProtocal(24902, this.handle24902); //請求匹配對手
this.RegisterProtocal(24903, this.handle24903); //挑戰對手
this.RegisterProtocal(24904, this.handle24904); //購買挑戰次數
this.RegisterProtocal(24905, this.handle24905); //"請求精英賽是否開戰"
this.RegisterProtocal(24906, this.handle24906); //戰鬥結算
this.RegisterProtocal(24910, this.handle24910); //歷史賽季賽區信息
this.RegisterProtocal(24911, this.handle24911); //歷史賽季
this.RegisterProtocal(24915, this.handle24915); //領取獎勵
//陣法
this.RegisterProtocal(24920, this.handle24920); //請求精英賽功能陣法
this.RegisterProtocal(24921, this.handle24921); //設置精英賽功能陣法
this.RegisterProtocal(24930, this.handle24930); //獲取個人日誌
this.RegisterProtocal(24931, this.handle24931); //獲取個人詳情
this.RegisterProtocal(24940, this.handle24940); //獲取個人記錄信息
this.RegisterProtocal(24941, this.handle24941); //分享
this.RegisterProtocal(24942, this.handle24942); //分享
this.RegisterProtocal(24945, this.handle24945); //精英賽宣言
this.RegisterProtocal(24946, this.handle24946); //保存精英賽宣言
this.RegisterProtocal(24950, this.handle24950); //顯示精英賽宣言結束
this.RegisterProtocal(24952, this.handle24952); //段位賽戰令基本信息
this.RegisterProtocal(24953, this.handle24953); //段位賽戰令一鍵領取等級禮包
this.RegisterProtocal(24954, this.handle24954); //段位賽戰令紅點
this.RegisterProtocal(24955, this.handle24955); //段位賽活動提示
this.RegisterProtocal(24960, this.handle24960); //段位賽活動提示
this.RegisterProtocal(24961, this.getTaskAwardBack); //段位賽活動提示
},
// 从服务器初始化数据
reqBaseFromServer: function reqBaseFromServer(_cb) {
var _this = this;
// 配置加载
var cfgs = ["arena_elite_data", "arena_elite_war_order_data" // 段位赛通行证
];
this.cfgs = cfgs;
this.loadConfigs(cfgs, function (_ret, _data) {
_this.reqOrderData(_cb);
_this.sender24900();
_this.reqTaskStatus();
});
},
reqOrderData: function reqOrderData(_cb) {
this.SendProtocal(24952, {}, _cb);
},
//精英赛基础信息
sender24900: function sender24900() {
this.SendProtocal(24900, {});
},
handle24900: function handle24900(data) {
nx.mTip.openTip("pvp.pvprank.challenge", data.day_combat_count > 0);
nx.bridge.vset("rankMatch", data);
this.model.setSCData(data);
gcore.GlobalEvent.fire(ElitematchEvent.Get_Elite_Main_Info_Event, data);
if (this.is_check_redpoint) {
this.sender24920(1);
this.sender24920(2); //王者賽需要弄多一個陣法類型
this.is_check_redpoint = false;
}
this.model.setSCDataBack24900();
},
//精英赛基础信息
reqTaskStatus: function reqTaskStatus() {
this.SendProtocal(24960, {});
},
handle24960: function handle24960(_data) {
var count = 0;
if (_data && nx.dt.arrNEmpty(_data.list)) {
_data.list.forEach(function (_info) {
if (_info.award_status == 2) {
_info.getstatus = _data.list.length + 3;
} else if (_info.award_status == 1) {
_info.getstatus = 1;
count++;
} else {
_info.getstatus = _info.id + 3;
}
});
}
nx.mTip.openTip("pvp.pvprank.task", count > 0);
nx.bridge.vset("PvpRankTask", _data);
},
//精英赛基础信息
reqGetTaskAward: function reqGetTaskAward() {
this.SendProtocal(24961, {});
},
//精英赛基础信息
getTaskAwardBack: function getTaskAwardBack(_data) {
if (nx.dt.strNEmpty(_data.msg)) {
nx.tbox(_data.msg);
}
},
getCfg: function getCfg() {
return this.cfgs;
},
// 請求对手信息
sender24901: function sender24901() {
this.SendProtocal(24901, {});
},
handle24901: function handle24901(data) {
gcore.GlobalEvent.fire(ElitematchEvent.Get_Elite_Enemy_Info_Event, data);
nx.bridge.vset("rankMatching", data);
},
dealUI: function dealUI(_lev) {
var path = "";
if (_lev == 1) {
path = "prefab/pvp/rank/ui/png_rank_1";
} else if (_lev >= 2 && _lev <= 3) {
path = "prefab/pvp/rank/ui/png_rank_2";
} else if (_lev >= 4 && _lev <= 6) {
path = "prefab/pvp/rank/ui/png_rank_3";
} else if (_lev >= 7 && _lev <= 9) {
path = "prefab/pvp/rank/ui/png_rank_4";
} else if (_lev >= 10 && _lev <= 13) {
path = "prefab/pvp/rank/ui/png_rank_5";
} else if (_lev >= 14 && _lev <= 17) {
path = "prefab/pvp/rank/ui/png_rank_6";
} else {
path = "prefab/pvp/rank/ui/png_rank_7";
}
return path;
},
// --請求匹配對手
sender24902: function sender24902(is_skip) {
var protocal = {};
protocal.type = is_skip;
this.SendProtocal(24902, protocal);
var dataa = {
rand_list: [],
is_match: 1
};
nx.bridge.vset("rankMatching", dataa);
},
handle24902: function handle24902(data) {},
// --挑戰對手
sender24903: function sender24903() {
var protocal = {};
this.SendProtocal(24903, protocal);
},
handle24903: function handle24903(data) {
if (data.code == 1) {} else {
nx.tbox(data.msg);
gcore.GlobalEvent.fire(ElitematchEvent.Elite_Fight_Fail_Event);
}
},
// --購買次數
sender24904: function sender24904() {
var protocal = {};
this.SendProtocal(24904, protocal);
},
handle24904: function handle24904(data) {
if (data.code == 1) {
gcore.GlobalEvent.fire(ElitematchEvent.Elite_buy_count_Event, data);
} else {
nx.tbox(data.msg);
}
},
// --開戰時間
sender24905: function sender24905() {
var protocal = {};
this.SendProtocal(24905, protocal);
},
handle24905: function handle24905(data) {
this.model.setEliteMatchFightTime(data);
gcore.GlobalEvent.fire(ElitematchEvent.Elite_Start_Time_Event, data);
this.model.setSCDataBack24905();
},
// --戰鬥結算
handle24906: function handle24906(data) {
this.new_result_data = data;
data.award_list = [];
var info = nx.bridge.vget("rankMatch");
if (info && data) {
info.lev = data.new_elite_lev;
info.score = data.end_score;
}
var awarddss = [];
for (var r = 0; r < data.awards.length; r++) {
var award = data.awards[r];
var showa = {
bid: award.item_id,
num: award.item_num,
id: 0
};
awarddss.push(showa);
}
data.award_list = awarddss;
nx.bridge.vset("rankMatch", info);
nx.bridge.vset("ResultInfo", data);
// BattleController.getInstance().openFinishView( true, BattleConst.Fight_Type.EliteMatchWar, this.new_result_data );
// nx.bridge.createPanel( "WndWinSettle" );
return;
},
reqGetDailyTaskReward: function reqGetDailyTaskReward() {},
newResultWin: function newResultWin() {
var _this2 = this;
if (!this.new_result_data) return;
var data = this.new_result_data;
gcore.GlobalEvent.fire(ElitematchEvent.Elite_Fight_Result_Event);
if (this.timer_id) {
gcore.Timer.del(this.timer_id);
this.timer_id = null;
}
this.scdata24906 = data;
this.openElitematchFightResultPanel(false);
this.timer_id = gcore.Timer.set(function () {
if (_this2.timer_id) {
gcore.Timer.del(_this2.timer_id);
_this2.timer_id = null;
}
if (_this2.scdata24906) {
_this2.openElitematchFightResultPanel(true, _this2.scdata24906);
}
}, 1000, 1);
this.new_result_data = null;
},
//歷史賽季賽區信息
sender24910: function sender24910() {
var protocal = {};
this.SendProtocal(24910, protocal);
},
handle24910: function handle24910(data) {
// -- if data.code == TRUE {
gcore.GlobalEvent.fire(ElitematchEvent.Elite_History_Zone_Event, data);
// -- else
// -- message(data.msg)
// -- end
},
// --歷史賽季
sender24911: function sender24911(match_index, start_index, end_index, zone_id) {
var protocal = {};
protocal.period = match_index;
protocal.start_rank = start_index;
protocal.end_rank = end_index;
protocal.zone_id = zone_id;
this.SendProtocal(24911, protocal);
},
handle24911: function handle24911(data) {
// -- if data.code == TRUE {
gcore.GlobalEvent.fire(ElitematchEvent.Elite_History_Record_Event, data);
// -- else
// -- message(data.msg)
// -- end
},
// --領取段位獎勵
sender24915: function sender24915(lev) {
var protocal = {};
protocal.lev = lev;
this.SendProtocal(24915, protocal);
},
handle24915: function handle24915(data) {
if (data.code == 1) {
gcore.GlobalEvent.fire(ElitematchEvent.Elite_Receive_Reward_Event, data);
} else {
nx.tbox(data.msg);
}
},
// --請求陣法
sender24920: function sender24920(type) {
var protocal = {};
protocal.type = type;
this.SendProtocal(24920, protocal);
},
handle24920: function handle24920(data) {
gcore.GlobalEvent.fire(ElitematchEvent.Update_Elite_Fun_Form, data);
gcore.GlobalEvent.fire(ElitematchEvent.Update_Elite_Fun_Form2, data);
var _type = null;
if (data.type == 1) {
_type = PartnerConst.Fun_Form.EliteMatch;
} else {
_type = PartnerConst.Fun_Form.EliteKingMatch;
}
var model = HeroController.getInstance().getModel();
for (var i in data.formations) {
var v = data.formations[i];
v.type = _type;
model.setFormList(v, v.order);
}
},
sender24921: function sender24921(type, formations) {
var protocal = {};
protocal.type = type;
protocal.formations = formations;
this.SendProtocal(24921, protocal);
},
handle24921: function handle24921(data) {
if (data.code == 1) {
gcore.GlobalEvent.fire(ElitematchEvent.Update_Elite_Save_Form, data);
this.sender24920(1);
this.sender24920(2);
} else {
nx.tbox(data.msg);
}
},
sender24930: function sender24930(type) {
var protocal = {};
protocal.type = type;
this.SendProtocal(24930, protocal);
},
handle24930: function handle24930(data) {
gcore.GlobalEvent.fire(ElitematchEvent.Elite_Challenge_Record_Event, data);
},
sender24931: function sender24931(type, id) {
var protocal = {};
protocal.type = type;
protocal.id = id;
this.SendProtocal(24931, protocal);
},
handle24931: function handle24931(data) {
gcore.GlobalEvent.fire(ElitematchEvent.Elite_Challenge_Record_Info_Event, data);
},
sender24940: function sender24940(period) {
var protocal = {};
protocal.period = period;
this.SendProtocal(24940, protocal);
},
handle24940: function handle24940(data) {
gcore.GlobalEvent.fire(ElitematchEvent.Elite_Personal_Info_Event, data);
},
sender24941: function sender24941(channel) {
var protocal = {};
protocal.channel = channel;
this.SendProtocal(24941, protocal);
},
handle24941: function handle24941(data) {
nx.tbox(data.msg);
},
sender24942: function sender24942(id, share_srv_id, period) {
var protocal = {};
protocal.id = id;
protocal.share_srv_id = share_srv_id;
protocal.period = period;
this.SendProtocal(24942, protocal);
},
handle24942: function handle24942(data) {
gcore.GlobalEvent.fire(ElitematchEvent.Elite_Personal_Info_Event2, data);
},
// --打開宣言
sender24945: function sender24945() {
var protocal = {};
this.SendProtocal(24945, protocal);
},
handle24945: function handle24945(data) {
gcore.GlobalEvent.fire(ElitematchEvent.Elite_Declaration_Event, data);
},
// --保存宣言設置
sender24946: function sender24946(manifesto) {
var protocal = {};
protocal.manifesto = manifesto;
this.SendProtocal(24946, protocal);
},
handle24946: function handle24946(data) {
nx.tbox(data.msg);
},
// --show宣言結束
sender24950: function sender24950() {
var protocal = {};
this.SendProtocal(24950, protocal);
},
handle24950: function handle24950(data) {
nx.tbox(data.msg);
},
// ---------------------------@ 打開界面
// --打開精英大賽主界面
openElitematchMainWindow: function openElitematchMainWindow(status, setting) {
if (status) {
// -- 判斷精英大賽是否開啟
if (!this.model.checkElitematchIsOpen().is_open) {
return;
}
if (this.elitematch_main_window == null) {
var ElitematchMainWindow = require("elitematch_main_window");
this.elitematch_main_window = new ElitematchMainWindow();
}
if (this.elitematch_main_window) {
this.elitematch_main_window.open(setting);
}
} else {
if (this.elitematch_main_window) {
this.elitematch_main_window.close();
this.elitematch_main_window = null;
}
}
},
// --打開精英大賽匹配界面
openElitematchMatchingWindow: function openElitematchMatchingWindow(status, match_type, scdata) {
if (status) {
if (this.elitematch_matching_window == null) {
var ElitematchMatchingWindow = require("elitematch_matching_window");
this.elitematch_matching_window = new ElitematchMatchingWindow();
}
if (this.elitematch_matching_window) {
this.elitematch_matching_window.open(match_type, scdata);
}
} else {
if (this.elitematch_matching_window) {
this.elitematch_matching_window.close();
this.elitematch_matching_window = null;
}
}
},
// --打開精英大賽戰鬥結果界面
openElitematchFightResultPanel: function openElitematchFightResultPanel(status, data) {
if (status) {
if (this.elitematch_fight_result_panel == null) {
var ElitematchFightResultPanel = require("elitematch_fight_result_panel");
this.elitematch_fight_result_panel = new ElitematchFightResultPanel();
}
if (this.elitematch_fight_result_panel.isOpen && this.elitematch_fight_result_panel) {
this.elitematch_fight_result_panel.open(data);
}
} else {
if (this.elitematch_fight_result_panel) {
this.elitematch_fight_result_panel.close();
this.elitematch_fight_result_panel = null;
}
}
},
// --打開獎勵界面
openElitematchRewardPanel: function openElitematchRewardPanel(status, index, level_id, rank) {
if (status) {
if (this.elitematch_reward_panel == null) {
var ElitematchRewardPanel = require("elitematch_reward_panel");
this.elitematch_reward_panel = new ElitematchRewardPanel();
}
if (this.elitematch_reward_panel) {
this.elitematch_reward_panel.open(index, level_id, rank);
}
} else {
if (this.elitematch_reward_panel) {
this.elitematch_reward_panel.close();
this.elitematch_reward_panel = null;
}
}
},
// --打開戰鬥記錄
openElitematchFightRecordPanel: function openElitematchFightRecordPanel(status, index, level_id) {
if (status) {
if (this.elitematch_fight_record_panel == null) {
var ElitematchFightRecordPanel = require("elitematch_fight_record_panel");
this.elitematch_fight_record_panel = new ElitematchFightRecordPanel();
}
if (this.elitematch_fight_record_panel) {
this.elitematch_fight_record_panel.open(index, level_id);
}
} else {
if (this.elitematch_fight_record_panel) {
this.elitematch_fight_record_panel.close();
this.elitematch_fight_record_panel = null;
}
}
},
// --打開錄像
openElitematchFightVedioPanel: function openElitematchFightVedioPanel(status, index, level_id, _type, setting) {
if (status) {
if (this.elitematch_fight_vedio_panel == null) {
var ElitematchFightVedioPanel = require("elitematch_fight_vedio_panel");
this.elitematch_fight_vedio_panel = new ElitematchFightVedioPanel();
}
if (this.elitematch_fight_vedio_panel) {
var ojb = {};
ojb.data = index;
ojb.index = level_id;
ojb._type = _type;
ojb.setting = setting;
this.elitematch_fight_vedio_panel.open(ojb);
}
} else {
if (this.elitematch_fight_vedio_panel) {
this.elitematch_fight_vedio_panel.close();
this.elitematch_fight_vedio_panel = null;
}
}
},
// --打開歷史賽季
openElitematchHistoryRecordWindow: function openElitematchHistoryRecordWindow(status, index, max_period, zone_id) {
if (status) {
if (this.elitematch_history_record_window == null) {
var ElitematchHistoryRecordWindow = require("elitematch_history_record_window");
this.elitematch_history_record_window = new ElitematchHistoryRecordWindow();
}
if (this.elitematch_history_record_window) {
this.elitematch_history_record_window.open(index, max_period, zone_id);
}
} else {
if (this.elitematch_history_record_window) {
this.elitematch_history_record_window.close();
this.elitematch_history_record_window = null;
}
}
},
// --個人戰績記錄
openElitematchPersonalInfoPanel: function openElitematchPersonalInfoPanel(status, period, data) {
if (status) {
if (this.elitematch_personal_info_panel == null) {
var ElitematchPersonalInfoPanel = require("elitematch_personal_info_panel");
this.elitematch_personal_info_panel = new ElitematchPersonalInfoPanel();
}
if (this.elitematch_personal_info_panel) {
this.elitematch_personal_info_panel.open(period, data);
}
} else {
if (this.elitematch_personal_info_panel) {
this.elitematch_personal_info_panel.close();
this.elitematch_personal_info_panel = null;
}
}
},
// --宣言設置
openElitematchDeclarationPanel: function openElitematchDeclarationPanel(status, msgType) {
// if status == true {
// if this.elitematch_declaration_panel == null {
// this.elitematch_declaration_panel = ElitematchDeclarationPanel.New(msgType)
// end
// if this.elitematch_declaration_panel:isOpen() == false {
// this.elitematch_declaration_panel:open()
// end
// else
// if this.elitematch_declaration_panel {
// this.elitematch_declaration_panel:close()
// this.elitematch_declaration_panel = null
// end
// end
},
// --宣言設置
openChooseFacePanel: function openChooseFacePanel(status, index, id, world_pos, msg_type) {
if (status) {
if (this.choose_face_panel == null) {
var ChooseFacePanel = require("choose_face_panel");
this.choose_face_panel = new ChooseFacePanel();
}
if (this.choose_face_panel) {
this.choose_face_panel.open(index, id, world_pos, msg_type);
}
} else {
if (this.choose_face_panel) {
this.choose_face_panel.close();
this.choose_face_panel = null;
}
}
},
// --宣言設置
openElitematchZoneListPanel: function openElitematchZoneListPanel(status, max_zone, callback) {
if (status) {
if (this.elitematch_zone_list_panel == null) {
var ElitematchZoneListPanel = require("elitematch_zone_list_panel");
this.elitematch_zone_list_panel = new ElitematchZoneListPanel();
}
if (this.elitematch_zone_list_panel) {
this.elitematch_zone_list_panel.open(max_zone, callback);
} else if (this.elitematch_zone_list_panel) {
this.elitematch_zone_list_panel.close();
this.elitematch_zone_list_panel = null;
}
}
},
// -----------------------------------------段位賽戰令活動---------------------------------------------
// -- 戰令基本信息
sender24952: function sender24952() {
var protocal = {};
this.SendProtocal(24952, protocal);
},
/***
* {"period":2,"cur_day":2,"end_time":1714665600,"lev":2,"rmb_status":0,"win_count":6,"list":[]}
*/
handle24952: function handle24952(data) {
this.model.setOrderactionData(data);
if (nx.dt.arrEmpty(data.list)) {
var cfg = game.configs.arena_elite_war_order_data.data_lev_reward_list[data.period];
for (var c in cfg) {
var item = cfg[c];
if (data.win_count >= item.win_count) {
var newd = {
"id": item.lev,
"award_status": 0,
"rmb_award_status": 0
};
data.list.push(newd);
}
}
}
nx.bridge.vset("rankOrder", data);
this.model.setSCDataBackOrderaction();
gcore.GlobalEvent.fire(ElitematchEvent.Elite_OrderAction_Init_Event, data);
},
// --一鍵領取禮包
sender24953: function sender24953(id) {
var protocal = {};
protocal.id = id;
this.SendProtocal(24953, protocal);
},
handle24953: function handle24953(data) {
if (data) {
nx.tbox(data.msg);
}
},
// --紅點
sender24954: function sender24954() {
var protocal = {};
this.SendProtocal(24954, protocal);
},
handle24954: function handle24954(data) {
if (data) {
this.model.setOrderactionRedStatus(data.flag);
this.model.setSCDataBackOrderaction();
}
gcore.GlobalEvent.fire(ElitematchEvent.Elite_OrderAction_First_Red_Event);
},
// --段位賽活動提示
sender24955: function sender24955() {
var protocal = {};
this.SendProtocal(24955, protocal);
},
handle24955: function handle24955(data) {
gcore.GlobalEvent.fire(ElitematchEvent.Elite_OrderAction_IsPopWarn_Event, data);
},
// --打開主界面
openElitematchOrderactionWindow: function openElitematchOrderactionWindow(status) {
if (status) {
// -- 判斷精英大賽是否開啟
if (!this.model.checkElitematchIsOpen().is_open) {
return;
}
if (!this.elitematch_orderaction_window) {
var ElitematchOrderactionWindow = require("elitematch_orderaction_window");
this.elitematch_orderaction_window = new ElitematchOrderactionWindow();
}
this.elitematch_orderaction_window.open();
} else {
if (this.elitematch_orderaction_window) {
this.elitematch_orderaction_window.close();
this.elitematch_orderaction_window = null;
}
}
},
// --購買進階卡
openBuyCardView: function openBuyCardView(status) {
if (status) {
if (!this.buy_card_view) {
var ElitematchOrderactionUntieRewardWindow = require("elitematch_orderaction_untie_reward_window");
this.buy_card_view = new ElitematchOrderactionUntieRewardWindow();
}
this.buy_card_view.open();
} else {
if (this.buy_card_view) {
this.buy_card_view.close();
this.buy_card_view = null;
}
}
},
// --打開活動結束警告界面
openElitematchEndWarnView: function openElitematchEndWarnView(status, day) {
if (status) {
if (!this.end_warn_view) {
var ElitematchOrderActionEndWarnWindow = require("elitematch_orderaction_end_warn_window");
this.end_warn_view = new ElitematchOrderActionEndWarnWindow();
}
this.end_warn_view.open(day);
} else {
if (this.end_warn_view) {
this.end_warn_view.close();
this.end_warn_view = null;
}
}
}
});
module.exports = PVPRank;
cc._RF.pop();