// -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里填写详细说明,主要填写该模块的功能简要 //
Create: 2019-01-14 10:57:08 // -------------------------------------------------------------------- const BridgeController = require( "bridge.controller" ); const GuildConst = require( "guild_const" ); const GuildEvent = require( "guild_event" ); const RoleController = require( "role_controller" ); // 工会职位 const GPT = GuildConst.PositionType; const GuildController = cc.Class( { extends: BridgeController, ctor: function() { }, // 初始化配置数据 initConfig: function() { var GuildModel = require( "guild_model" ); this.model = new GuildModel(); this.model.initConfig(); }, // 返回当前的model getModel: function() { return this.model; }, // 注册监听事件 registerEvents: function() { if( this.login_event_success == null ) { this.login_event_success = gcore.GlobalEvent.bind( EventId.EVT_ROLE_CREATE_SUCCESS, ( function() { gcore.GlobalEvent.unbind( this.login_event_success ) this.login_event_success = null; this.role_vo = RoleController.getInstance().getRoleVo() if( this.role_vo ) { // this.requestInitProtocal(); if( this.role_assets_event == null ) { this.role_assets_event = this.role_vo.bind( EventId.UPDATE_ROLE_ATTRIBUTE, function( key, value ) { if( key == "gid" ) { if( value == 0 ) { // 这个时候表示退帮了,需要关闭一些窗体 nx.bridge.closePanel( "WndGuild" ); nx.bridge.closePanel( "WndGuildDonate" ); nx.bridge.closePanel( "WndGuildMemberList" ); nx.bridge.closePanel( "WndGuildMemberManager" ); nx.bridge.closePanel( "WndGuildActive" ); this.model.clearMyGuildInfo(); } // this.requestInitProtocal() } else if( key == "position" ) { this.model.updateMemberByPosition( value ); } }.bind( this ) ) } } } ).bind( this ) ) } }, // 注册协议接受事件 registerProtocals: function() { // 基本信息 this.RegisterProtocal( 13518, this.handle13518 ); // 本公会基础信息 this.RegisterProtocal( 13501, this.handle13501 ); // 公会列表 // 成员相关 this.RegisterProtocal( 13519, this.handle13519 ); // 本公会成员列表 this.RegisterProtocal( 13542, this.hander13542 ); // 增删更新成员 this.RegisterProtocal( 13576, this.handle13576 ); // 欢迎新人 this.RegisterProtocal( 13513, this.handle13513 ); // 从公会中踢人 this.RegisterProtocal( 13565, this.handle13565 ); // 弹劾 // 工会捐献 this.RegisterProtocal( 13523, this.handle13523 ); // 玩家基础捐献信息 this.RegisterProtocal( 13524, this.handle13524 ); // 捐献返回 this.RegisterProtocal( 13574, this.handle13574 ); // 领取捐献宝箱情况 this.RegisterProtocal( 13575, this.handle13575 ); // 更新当前捐献进度值 // 工会管理 this.RegisterProtocal( 13500, this.handle13500 ); // 创建公会 this.RegisterProtocal( 13503, this.handle13503 ); // 申请加入公会 this.RegisterProtocal( 13514, this.handle13514 ); // 退帮 this.RegisterProtocal( 13516, this.handle13516 ); // 解散公会 this.RegisterProtocal( 13568, this.handle13568 ); // 修改公会名字 this.RegisterProtocal( 13520, this.handle13520 ); // 职位设置 this.RegisterProtocal( 13521, this.handle13521 ); // 修改宣言 this.RegisterProtocal( 13522, this.handle13522 ); // 设置申请 this.RegisterProtocal( 13525, this.handle13525 ); // 請求每日獎勵狀態 this.RegisterProtocal( 13526, this.handle13526 ); // 請求領取每日獎勵返回 this.RegisterProtocal( 13505, this.handle13505 ); // 操作申请成员的列表 this.RegisterProtocal( 13507, this.handle13507 ); // 更新申请加入列表 this.RegisterProtocal( 13573, this.handle13573 ); // 公会申请列表红点 this.RegisterProtocal( 13558, this.handle13558 ); // 公会招募广告 // 工会活跃 this.RegisterProtocal( 16900, this.handle16900 ); // 基本信息 this.RegisterProtocal( 16901, this.handle16901 ); // 任务信息 this.RegisterProtocal( 16902, this.handle16902 ); // 更新(新增)任务信息 this.RegisterProtocal( 16903, this.handle16903 ); // 提交任务 this.RegisterProtocal( 16904, this.handle16904 ); // 升级处理 }, reqBaseFromServer: function( _cb ) { let cfgs = [ "guild_data", "guild_quest_data", ]; this.loadConfigs( cfgs, ( _ret, _data ) => { this.requestInitProtocal( _cb ); } ) }, // reqGuildBase: function( _cb ){ // this.reqDonateData(); // this.reqActBaseInfo(); // this.reqBase( _cb ); // }, // 请求公会相关协议 requestInitProtocal: function( _cb ) { if( !this.role_vo || this.role_vo.gid == 0 ) { this.model.clearMyGuildInfo(); nx.dt.fnInvoke( _cb, true ); return; } this.reqBase( _cb ); this.reqDonateData(); this.reqActBaseInfo(); this.reqGetDailyReward(); if( this.role_vo && this.role_vo.position != GuildConst.PositionType.Member ) { this.checkReqJoin(); } }, // =========================================================================== // 基本信息 // =========================================================================== // 请求工会信息 reqBase: function( _cb ) { this.SendProtocal( 13518, {}, _cb ) }, // 更新自己公会的信息 handle13518: function( data ) { // 更新 this.model.updateMyGuildInfo( data ); // 管理职位 if( this.role_vo && this.role_vo.position != GPT.Member ) { this.reqApplyJoinList( 1, 15 ); } }, // 请求公会列表 // @page:页码 // @flag:是否显示满人的公会 0:不显示 1:显示 // @num:每页显示条数 // @name:如果不为“”表示是搜索 reqGuildList: function( page, flag, num, name, _cb ) { var protocal = {}; protocal.page = page || 0; protocal.flag = flag || 1; protocal.num = num || 0; protocal.name = name || ""; this.SendProtocal( 13501, protocal, _cb ); }, //获取公会列表 handle13501: function( data ) { this.model.updateGuildList( data.name, data.guilds ); if( nx.dt.arrEmpty( data.guilds ) ){ nx.tbox( "msg_searchGuildTip" ); } }, // =========================================================================== // 成员相关 // =========================================================================== // 请求公会成员列表 reqMemberList: function( _cb ) { this.SendProtocal( 13519, {}, _cb ); }, // 更新整个公会成员列表 handle13519: function( data ) { this.model.updateMyGuildMemberList( data.members, 1 ); }, // 更新,增加或者删除成员 hander13542: function( data ) { this.model.updateMyGuildMemberList( data.members, data.type ); }, // 欢迎新人 welcomeNewMember: function( rid, srv_id ) { var protocal = {}; protocal.rid = rid; protocal.srv_id = srv_id; this.SendProtocal( 13576, protocal ); }, // 欢迎新人 handle13576: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } }, // 从公会中踢人 requestKickoutMember: function( rid, srv_id, _cb ) { this.SendProtocal( 13513, { rid: rid, srv_id: srv_id, }, _cb ); }, // 踢人返回 handle13513: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } // if( data.code == 1 ) // this.openGuildOperationPostWindow( false ); }, // 弹劾帮主 send13565: function( _cb ) { this.SendProtocal( 13565, {}, _cb ); }, handle13565: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } }, // =========================================================================== // 工会捐献 // =========================================================================== // 请求捐献信息 reqDonateData: function( _cb ) { this.SendProtocal( 13523, {}, _cb ); }, // 捐献信息返回 handle13523: function( data ) { this.model.updateDonateInfo( data.donate_list ); this.model.updateDonateBoxInfo( data.boxes, data.donate_exp ); }, // 请求捐献 reqDonate: function( type, _cb ) { this.SendProtocal( 13524, { type: type, }, _cb ); }, // 捐献返回 handle13524: function( data ) { if( data.code == 1 ) { this.model.setGuildDonateStatus(); } }, // 请求领取指定捐献宝箱 requestDonateBoxRewards: function( box_id, _cb ) { this.SendProtocal( 13574, { box_id: box_id, }, _cb ); }, // 领取捐献宝箱返回 handle13574: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } if( data.code == 1 ) { this.model.setDonateBoxStatus( data.box_id ); } }, // 更新捐献进度值 handle13575: function( data ) { this.model.updateDonateActivity( data.donate_exp ); }, // =========================================================================== // 工会管理 // =========================================================================== // 请求创建公会 // @name:公会名字 // @sign:宣言 // @apply_type:申请类型(0:自动审批 1:手动审批 2:不允许申请) // @apply_lev:最小等级要求 reqCreate: function( name, sign, apply_type, apply_lev, apply_power, _cb ) { var protocal = {}; protocal.name = name; protocal.sign = sign; protocal.apply_lev = apply_lev || 1; protocal.apply_type = apply_type || 0; protocal.apply_power = apply_power || 0 this.SendProtocal( 13500, protocal, _cb ); }, // 创建公会返回 handle13500: function( data ) { // if( !nx.dt.strEmpty( data.msg ) ){ // nx.tbox( data.msg ); // } }, // 申请加入公会 reqJoin: function( gid, gsrv_id, type, _cb ) { if( gid == null || gsrv_id == null ) return var protocal = {}; protocal.gid = gid; protocal.gsrv_id = gsrv_id; protocal.type = type || 1; this.SendProtocal( 13503, protocal, _cb ); }, // 请求加入公会返回 handle13503: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } if( data.code == 1 ) { this.model.updateGuildApplyStatus( data.gid, data.gsrv_id, data.is_apply ); this.reqGetDailyReward(); } }, // 退帮 reqQuit: function( _cb ) { this.SendProtocal( 13514, {}, _cb ); this.model.clearMyGuildInfo(); }, // 退帮 handle13514: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } }, // 解散 reqDissolve: function( _cb ) { this.SendProtocal( 13516, {}, _cb ); }, // 解散 handle13516: function( data ) { this.model.clearMyGuildInfo(); // if( !nx.dt.strEmpty( data.msg ) ){ // nx.tbox( data.msg ); // } if( !this.isGoodData( data ) ) { return; } }, // 请求改名 reqRename: function( name, _cb ) { this.SendProtocal( 13568, { name: name, }, _cb ); }, // 公会改名 handle13568: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } }, // 职位任命 requestOperationPost: function( rid, srv_id, position, _cb ) { this.SendProtocal( 13520, { rid: rid, srv_id: srv_id, position: position, }, _cb ); }, handle13520: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } }, // 请求修改公会宣言 reqModifySign: function( sign, _cb ) { this.SendProtocal( 13521, { sign: sign, }, _cb ); }, // 公会宣言修改 handle13521: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } if( data.code == 1 ) { // this.openGuildChangeSignWindow( false ); } }, // 修改申请条件 reqModifyApplySetting: function( _type, _lev, _power, _cb ) { this.SendProtocal( 13522, { apply_type: _type, apply_lev: _lev, apply_power: _power, }, _cb ); }, // 设置权限返回 handle13522: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } }, // 獲取每日獎勵 reqGetDailyRewardStatus: function( _cb ) { this.SendProtocal( 13525, {}, _cb ); }, // 獲取 返回 handle13525: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } }, // 請求每日獎勵狀態 reqGetDailyReward: function( _cb ) { this.SendProtocal( 13526, {}, _cb ); }, // 獎勵狀態 返回 handle13526: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } nx.mTip.openTip( "guild.dailyReward", ( data.flag == 0 ) ); }, // 工会申请检查 checkReqJoin: function( _cb ) { this.SendProtocal( 13573, {}, _cb ); }, // 公会申请红点 handle13573: function( data ) { nx.mTip.openTip( "guild.reqJoin", ( data.code == 1 ) ); }, // 请求当前申请加入的公会列表 reqApplyJoinList: function( page, num, _cb ) { this.SendProtocal( 13507, { page: page, num: num, }, _cb ); }, // 更新申请列表 handle13507: function( data ) { this.model.updateApplyJoinList( data.guids ); }, // 会长或者副会长处理操作申请列表 reqApplyJoinAnswer: function( type, rid, srv_id, _cb ) { this.SendProtocal( 13505, { type: type, rid: rid, srv_id: srv_id, }, _cb ); }, // 操作申请玩家列表返回 handle13505: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } if( data.code == 1 ) this.model.deleteApplyInfo( data.rid, data.srv_id ); }, // 招募广告 reqBroadcast: function( _cb ) { this.SendProtocal( 13558, {}, _cb ); }, // 招募广告返回 handle13558: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } }, // =========================================================================== // 工会活跃 // =========================================================================== // 基本信息 reqActBaseInfo: function() { this.SendProtocal( 16900, {} ); }, handle16900: function( data ) { gcore.GlobalEvent.fire( GuildEvent.UpdataGuildGoalBasicData, data ); this.model.freshActiveTips( data ); }, // 任务信息 reqActTaskInfo: function() { this.SendProtocal( 16901, {} ); }, handle16901: function( data ) { gcore.GlobalEvent.fire( GuildEvent.UpdataGuildGoalTaskData, data ); }, // 单条任务信息 handle16902: function( data ) { gcore.GlobalEvent.fire( GuildEvent.UpdataGuildGoalSingleTaskData, data ); }, // 提交任务 send16903: function( id ) { var protocal = {}; protocal.id = id; this.SendProtocal( 16903, protocal ); }, handle16903: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } }, // 活跃度升级 reqActLevelUp: function( _cb ) { this.SendProtocal( 16904, {}, _cb ); }, handle16904: function( data ) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox( data.msg ); } }, } ); module.exports = GuildController;