588 lines
17 KiB
JavaScript
588 lines
17 KiB
JavaScript
// --------------------------------------------------------------------
|
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
|
// @description:
|
|
// 这里填写详细说明,主要填写该模块的功能简要
|
|
// <br/>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;
|