const BridgeWindow = require("bridge.window"); const FxSVC = require("nx.fx.sv.expand"); const RankEvent = require("rank_event"); const RankController = require("rank_controller"); const ArenaEvent = require("arena_event"); const RoleController = require("role_controller"); const RankConstant = require("rank_constant"); const ArenaController = require( "arena_controller" ); const GuildBossController = require( "guildboss_controller" ); const GuildbossEvent = require("guildboss_event"); cc.Class({ extends: BridgeWindow, properties: { nodDetailLst: { default : null, type : FxSVC, }, // 排行榜列表标题栏 rankLstTitle: { default : null, type : cc.Node, }, nodSelf: { default : null, type : cc.Node, }, nodEmpty: { default : null, type : cc.Node, }, fab_head: { default : null, type : cc.Prefab, }, }, onLoad: function () { this.bindGEvent( ArenaEvent.UpdateLoopChallengeRank,this.freshDetail.bind(this) ); this.bindGEvent( RankEvent.RankEvent_Get_Rank_data, this.updateRankListInfo.bind(this)); this.bindGEvent( GuildbossEvent.UpdateGuildDunRank, this.updateRankListInfo.bind( this ) ); }, onOpenConfigs: function( _params ) { let RC = RankController.getInstance(); this.fromOther = _params.type; let ind = parseInt( this.fromOther ); this.camp_id = _params.camp_id; RC.send_12901( ind, false); if( ind == RankConstant.RankType.drama || ind == RankConstant.RankType.tower || ind == RankConstant.RankType.power || ind == RankConstant.RankType.actNewHero || ind == RankConstant.RankType.endless || ind == RankConstant.RankType.rank_role_lev || ind == RankConstant.RankType.relicexpolre ){ RC.send_12900( ind, null, null, false); }else if(ind == RankConstant.RankType.union){ RC.send_12903( null, null); }else if(ind == RankConstant.RankType.arena){ ArenaController.getInstance().sender20221(); }else if( ind == RankConstant.RankType.union_boss ){ let protocal = { boss_id: _params.boss_id || 0, start_num: 1, end_num: 100, } GuildBossController.getInstance().SendProtocal(21319, protocal); } }, // 竞技场 排行榜 freshDetail: function( _data ){ this.updateRankListInfo( _data ); }, updateRankListInfo : function( _data ){ let self = this; let lst = _data.rank_list; if( this.camp_id ){ let mod = nx.bridge.acts.queryAct( this.camp_id ); if( mod ){ let rankreward = mod.getNewHeroRankReward(); for (let r = 0; r < rankreward.length; r++) { let reward = rankreward[r]; if( _data.my_idx >= reward.min && _data.my_idx <= reward.max ){ _data.rewards = reward.items; } for (let i = 0; i < lst.length; i++) { let item = lst[i]; if( item.idx >= reward.min && item.idx <= reward.max ){ item.rewards = reward.items; } } } } } nx.gui.setActive( this.nodEmpty, "", nx.dt.arrEmpty( lst ) ); // console.log( "路径" + path ); cc.loader.loadRes( ( "prefab/rank/fabs/itemT" + this.fromOther ), function (err, fab) { if( fab ){ let item = cc.instantiate( fab ); self.nodDetailLst.fabItem = fab; self.nodDetailLst.rebuild( lst ); // this.cmpHead = node.getComponent( "cmp.common.header" ); } }); this.setRankLstTitle(); this.freshSelf( _data ); // console.log( "刷新排行数据" + JSON.stringify( _data ) ); }, // 显示具体列表的标题 setRankLstTitle: function(){ let titles = RankConstant.RankDetailTitle[ this.fromOther ]; let cmps = this.rankLstTitle.getComponentsInChildren( cc.Label ); for( let i = 0; i < cmps.length; i++ ) { nx.gui.setString( cmps[i].node, "", nx.text.getKey(titles[ i ]) || "" ); } }, freshSelf: function( _data ){ let role_vo = RoleController.getInstance().getRoleVo(); let self = this; let index = this.fromOther == RankConstant.RankType.arena || this.fromOther == RankConstant.RankType.union_boss ? _data.rank : _data.my_idx; let info = _data; let avtar = null; let nod = null; // console.log( "自己数据" + "prefab/rank/fabs/self" + self.fromOther ); cc.loader.loadRes( ( "prefab/rank/fabs/self" + self.fromOther ), function (err, fab) { if( fab ){ let item = cc.instantiate( fab ); item.parent = self.nodSelf; avtar = nx.gui.find( item, "avatar" ); nod = item; if( avtar ) { let node = cc.instantiate( self.fab_head ); node.parent = avtar ; self.cmpHead = node.getComponent( "cmp.common.header" ); } let cfg = game.configs.avatar_data.data_avatar[ info.avatar_bid ]; let frame = cfg ? cfg.base_id : 0; if( self.cmpHead ){ if( self.fromOther == RankConstant.RankType.arena || self.fromOther == RankConstant.RankType.union_boss ){ self.cmpHead.setData( role_vo ); }else{ // 更新 self.cmpHead.setHeadRes( info.face_id ); self.cmpHead.setFrameRes( frame ); } } if( nod ){ nx.gui.hideAllChildren( nod, "rank" ); if( index == 0 ){ nx.gui.setString( nod, "rank/txt2", nx.text.getKey("Rank0") ); nx.gui.setActive( nod, "rank/txt" , false) ; nx.gui.setActive( nod, "rank/txt2", true) ; }else if( index < 4 && index > 0 ){ nx.gui.setActive( nod, "rank/icon_" + index, true) ; }else{ nx.gui.setActive( nod, "rank/icon_4", true) ; nx.gui.setString( nod, "rank/txt", index ); nx.gui.setActive( nod, "rank/txt", true) ; } let desc = ""; if( self.fromOther == RankConstant.RankType.drama ){ desc = gdata( "dungeon_data", "data_drama_dungeon_info", [ info.my_val1 || 0 ] ); if( info.my_val1 == 0 ){ desc = 0; }else{ desc = desc.name; } }else if( self.fromOther == RankConstant.RankType.arena ){ desc = info.score; }else if( self.fromOther == RankConstant.RankType.union ){ desc = info.power ; let union = ""; nx.gui.setString( nod, "union", union = info.gname == "" ? nx.text.getKey("NoUnion") : "" ); nx.gui.setString( nod, "names/name", nx.text.getKey( "RankGud" ) + info.gname ); nx.gui.setActive( nod, "names/leader_name", info.leader_name != "" ); nx.gui.setString( nod, "names/leader_name", union = info.leader_name != "" ? nx.text.getKey( "Leader_" ) + info.leader_name : info.leader_name ); nx.gui.setString( nod, "lev", "Lv." + info.glev ); }else if( self.fromOther == RankConstant.RankType.union_boss ){ nx.gui.setString( nod, "dps", info.mydps ); desc = ""; }else if( self.fromOther == RankConstant.RankType.rank_role_lev ){ desc = info.lev; }else{ // 3 || 6 if( self.fromOther == RankConstant.RankType.tower ){ desc = nx.dt.fmtTimeFromSecs( info.my_val2 ); nx.gui.setString( nod, "floor", info.my_val1 + "" ); nx.gui.setString( nod, "info/power", desc ); }else{ desc = info.my_val1 + ""; } } nx.gui.setString( nod, "info/power", desc ); nx.gui.setString( nod, "name", role_vo.name ); let rnod = nx.gui.find( nod, "rewards" ); if( rnod && info.rewards ){ let cmp = nx.gui.getComponent( rnod, "", "cmp.common.itemlayout" ); if( cmp ){ cmp.rebuild( info.rewards ); } } } // this.cmpHead = node.getComponent( "cmp.common.header" ); } }); // this.scheduleOnce( () =>{ // }, 0.3 ); }, }); /************ * [21319]:{"boss_id":401,"start_num":1,"end_num":100} [21319]:{"rank":0,"mydps":0,"worship":0,"day_worship":0, "rank_list":[ {"rank":1,"r_rid":34746,"r_srvid":"dev_2","name":"Myjamkin","family_name":"YTGHFGHF","all_dps":3476438,"face_id":10401,"lev":200,"power":515547,"avatar_bid":1000,"look_id":110401,"face_update_time":0,"face_file":"","worship":0,"worship_status":0}]} */