|
require("game.proto.400.Require400")
|
|
require("game.proto.404.Require404")
|
|
require("game.proto.405.Require405")
|
|
require("game.proto.406.Require406")
|
|
require("game.proto.407.Require407")
|
|
require("game.proto.408.Require408")
|
|
require("game.proto.410.Require410")
|
|
require("game.proto.417.Require417")
|
|
require("game.guild.GuildModel")
|
|
-- 创建社团相关界面
|
|
require("game.guild.GuildCreateView")
|
|
require("game.guild.GuildCreateIconItem")
|
|
require("game.guild.GuildCreateColorItem")
|
|
require("game.guild.GuildCreateTabItem") -- 新增:社团创建类型节点
|
|
-- 申请社团界面
|
|
require("game.guild.GuildApplyView")
|
|
require("game.guild.GuildApplyItem")
|
|
require("game.guild.GuildBadgeItem") -- 社团荣誉勋章节点
|
|
-- 社团职位申请界面
|
|
require("game.guild.GuildPositionApplyView")
|
|
require("game.guild.GuildPositionApplyItem")
|
|
-- 社团主界面
|
|
require("game.guild.GuildMainView")
|
|
require("game.guild.GuildInfoView") -- 社团信息界面
|
|
require("game.guild.GuildInfoMemberItem") -- 社团信息界面成员信息节点
|
|
require("game.guild.GuildEditAnnounceView") -- 编辑公告界面
|
|
require("game.guild.GuildActiveView") -- 社团活跃玩法界面
|
|
require("game.guild.GuildActiveActItem") -- 社团活跃玩法界面社团周奖励item
|
|
require("game.guild.GuildActiveTaskItem") -- 社团活跃玩法界面玩家活跃任务item
|
|
|
|
require("game.guild.GuildSpellListView") -- 社团拼单玩法界面
|
|
require("game.guild.GuildSpellListItem") -- 社团拼单玩法界面订单item
|
|
require("game.guild.GuildSpellListInviteItem") -- 社团拼单玩法界面邀请社员节点
|
|
require("game.guild.GuildSpellListHeadItem") -- 社团拼单玩法界面邀请社员头像节点
|
|
require("game.guild.GuildSpellListRewardView") -- 社团拼单玩法界面奖励界面
|
|
require("game.guild.GuildSpellListThankView") -- 社团拼单玩法感谢界面
|
|
|
|
require("game.guild.GuildShopView") -- 社团商城界面
|
|
require("game.guild.GuildShopItem") -- 社团商城界面子节点
|
|
require("game.guild.GuildCommonHeadItem") -- 社团通用玩家头像
|
|
require("game.guild.GuildListView") -- 社团列表界面
|
|
require("game.guild.GuildListMemItem") -- 社团列表界面成员节点
|
|
require("game.guild.GuildListGuildItem") -- 社团列表界面社团节点
|
|
require("game.guild.GuildRenameView") -- 社团改名改标志界面
|
|
-- 社团合并相关
|
|
require("game.guild.GuildApplyMgrView") -- 社团申请管理界面
|
|
require("game.guild.GuildApplyMgrItem") -- 社团申请管理界面--入团和职位申请节点
|
|
require("game.guild.GuildApplyMergeItem") -- 社团申请管理界面--社团合并节点
|
|
|
|
require("game.guild.GuildRequestMergeView") -- 社团合并发起界面
|
|
require("game.guild.GuildRequestMergeItem") -- 社团合并发起界面节点
|
|
|
|
require("game.guild.GuildApplySettingView") -- 社团申请设置界面
|
|
-- 社团日志界面
|
|
require("game.guild.GuildLogView")
|
|
-- 社团活动界面
|
|
require("game.guild.GuildEventView") -- 社团活动界面
|
|
require("game.guild.GuildEventTabItem") -- 社团活动tab节点
|
|
require("game.guild.GuildEventBossView") -- 社团活动:晚间boss界面
|
|
require("game.guild.GuildEventBossRankItem") -- 社团活动:晚间boss界面
|
|
require("game.guild.GuildEventCollectView") -- 社团活动:午间采集界面
|
|
require("game.guild.GuildEventPartyView") -- 社团活动:社团派对界面
|
|
require("game.guild.GuildEventWarView") -- 社团活动:本服团战
|
|
require("game.guild.GuildEventWarItem") -- 社团活动:本服团战
|
|
require("game.guild.GuildEventCSGuildRankView") -- 社团活动:本国团战活动
|
|
require("game.guild.GuildActiveOpenTipsView") -- 社团活动:开启提示界面
|
|
|
|
|
|
require("game.guild.GuildCollectRewardView")--封印裂隙奖励说明界面
|
|
require("game.guild.GuildCollectHelpRankView")--封印裂隙协助栏
|
|
require("game.guild.GuildCollectHelpRankItem")--封印裂隙协助伤害item
|
|
|
|
-- 社团职位任命相关
|
|
require("game.guild.GuildPositionAllotView") -- 社团职位任命主界面
|
|
require("game.guild.GuildPositionAllotTabItem") -- 社团职位任命tab
|
|
require("game.guild.GuildPositionAllotItem") -- 社团职位任命成员节点
|
|
|
|
require("game.guild.GuildSceneView") -- 社团驻地场景界面
|
|
require("game.guild.GuildSceneBossRankItem") -- 社团驻地场景界面排行item
|
|
require("game.guild.GuildSceneEventBtnItem") -- 社团驻地场景活动功能按钮
|
|
require("game.guild.GuildSceneCollectView") -- 社团boss活动采集界面
|
|
require("game.guild.GuildSceneWarView") --本服团战场景界面
|
|
require("game.guild.GuildWarRankItem") --本服团战排行界面item
|
|
require("game.guild.GuildWarRankView") --本服团战排行界面
|
|
require("game.guild.GuildWarResultView") --本服团战结算
|
|
|
|
--社团协助界面
|
|
require("game.guild.GuildSupportInfoMainView") -- 社团协助信息主界面
|
|
require("game.guild.GuildSupportInfoMainTab") -- 社团协助信息主界面tab
|
|
require("game.guild.GuildSupportInfoMainListView") -- 社团协助信息列表界面
|
|
require("game.guild.GuildSupportInfoMainThankView") -- 社团协助信息感谢列表界面
|
|
require("game.guild.GuildSupportInfoMainThankNameItem") -- 社团协助信息感谢列表界面名字Item
|
|
require("game.guild.GuildSupportInfoMainThankItem") -- 社团协助信息感谢列表界面
|
|
require("game.guild.GuildSupportInfoMainGiftView") -- 社团协助信息收下谢礼列表界面
|
|
require("game.guild.GuildSupportInfoMainGiftItem") -- 社团协助信息收下谢礼列表界面item
|
|
require("game.guild.GuildSupportTipView") --协助快捷发送界面
|
|
require("game.guild.GuildSupportInfoItem") -- 社团协助信息界面item
|
|
require("game.guild.GuildSupportThankView") -- 社团协助感谢界面
|
|
require("game.guild.GuildSupportThankItem") -- 社团协助感谢界面item
|
|
require("game.guild.GuildSupportDescTipView") -- 社团协助感谢Desc选择界面
|
|
require("game.guild.GuildSupportDescTipItem") -- 社团协助感谢Desc选择界面Item
|
|
require("game.guild.GuildSupportGoView") -- 社团协助前往界面
|
|
require("game.guild.GuildSupportResultView") -- 社团协助结算界面
|
|
require("game.guild.GuildCollectSupportTip") -- 封印裂隙协助侧边tips
|
|
require("game.guild.GuildSupportAcceptView") -- 社团协助获取任务界面
|
|
require("game.guild.GuildSupportGuildBossGoView") -- 社团协助boss前往界面
|
|
|
|
|
|
---------------------------------------------------------
|
|
-- 社团活动玩法(guild图集以外的)相关界面在下方补充
|
|
require("game.guild.guildEvent.GuildBossResultView") -- 社团协助结算界面
|
|
require("game.guild.guildEvent.GuildBossResultDmgItem") -- 社团协助结算界面
|
|
require("game.guild.GuildSceneRollView") -- 社团场景用 社团boss roll点界面容器
|
|
require("game.guild.GuildSceneRollItem") -- 社团场景 社团boss roll点节点
|
|
require("game.guild.GuildSceneRollRecordItem") -- 社团场景 社团boss roll点记录节点
|
|
require("game.guild.GuildBossRollPreviewView") -- 社团场景 社团boss 奖励预览界面
|
|
require("game.guild.GuildBossRollPreviewItem") -- 社团场景 社团boss 奖励预览界面节点
|
|
|
|
-- 本国团战玩法相关 CSGR = Cross Server Guild Rank
|
|
require("game.guildCSGR.GuildCSGRRankView") -- 本国团战玩法伤害排行界面
|
|
require("game.guildCSGR.GuildCSGRRankItem") -- 本国团战玩法伤害排行界面子节点
|
|
require("game.guildCSGR.GuildCSGRRewardView") -- 本国团战玩法奖励预览界面
|
|
require("game.guildCSGR.GuildCSGRRewardItem") -- 本国团战玩法排行奖励预览节点
|
|
require("game.guildCSGR.GuildCSGRSceneView") -- 本国团战活动场景界面
|
|
require("game.guildCSGR.GuildCSGRFightInfoView") -- 本国团战对战信息界面
|
|
require("game.guildCSGR.GuildCSGRFightInfoItem") -- 本国团战对战信息界面节点
|
|
require("game.guildCSGR.GuildCSGRSceneRankItem") -- 本国团战玩法右侧信息节点
|
|
require("game.guildCSGR.GuildCSGRSceneCollectionItem") -- 本国团战场景内右侧信息采集物信息节点
|
|
require("game.guildCSGR.GuildCSGRSceneBuffItem") -- 本国团战场景内采集buff道具信息节点
|
|
require("game.guildCSGR.GuildCSGRResultView") -- 本国团战结算界面
|
|
|
|
-- 社团跑环答题
|
|
require("game.guild.guildQuiz.GuildQuizView")
|
|
require("game.guild.guildQuiz.GuildQuizResultView")
|
|
|
|
---------------------------------------------------------
|
|
|
|
GuildController = GuildController or BaseClass(BaseController)
|
|
local GuildController = GuildController
|
|
local GetModuleIsOpen = GetModuleIsOpen
|
|
local GetModuleOpenLevel = GetModuleOpenLevel
|
|
|
|
function GuildController:__init()
|
|
GuildController.Instance = self
|
|
self.model = GuildModel:getInstance()
|
|
self.first_time = 0
|
|
self.last_time = 0
|
|
self:EnableCheckoutClear()
|
|
self:RegisterProtocals()
|
|
self:InitEvent()
|
|
|
|
end
|
|
|
|
function GuildController:RegisterProtocals()
|
|
--社团系统
|
|
self:RegisterProtocal(40000,"on40000") -- 错误码展示
|
|
self:RegisterProtocal(40001,"on40001") -- 社团列表界面
|
|
self:RegisterProtocal(40002,"on40002") -- 申请加入社团
|
|
self:RegisterProtocal(40003,"on40003") -- 批量申请
|
|
self:RegisterProtocal(40004,"on40004") -- 创建社团
|
|
self:RegisterProtocal(40005,"on40005") -- 获取社团信息界面-基础信息
|
|
self:RegisterProtocal(40006,"on40006") -- 获取社团信息界面-成员列表
|
|
self:RegisterProtocal(40007,"on40007") -- 主动退出社团
|
|
self:RegisterProtocal(40008,"on40008") -- 申请列表
|
|
self:RegisterProtocal(40009,"on40009") -- 审批加入社团的玩家
|
|
self:RegisterProtocal(40010,"on40010") -- 审批设置界面
|
|
self:RegisterProtocal(40011,"on40011") -- 设置审批
|
|
self:RegisterProtocal(40012,"on40012") -- 编辑公告
|
|
self:RegisterProtocal(40013,"on40013") -- 任命职位
|
|
self:RegisterProtocal(40014,"on40014") -- 踢出社团
|
|
self:RegisterProtocal(40015,"on40015") -- 玩家的社团信息
|
|
self:RegisterProtocal(40016,"on40016") -- 全部同意/拒绝入会
|
|
self:RegisterProtocal(40017,"on40017") -- 广播社团信息到场景
|
|
self:RegisterProtocal(40018,"on40018") -- 申请社团职位
|
|
self:RegisterProtocal(40019,"on40019") -- 公告编辑界面
|
|
self:RegisterProtocal(40021,"on40021") -- 旗帜已使用
|
|
self:RegisterProtocal(40022,"on40022") --请求职位管理界面
|
|
self:RegisterProtocal(40023,"on40023") --职位管理职位数量
|
|
self:RegisterProtocal(40024,"on40024") -- 批量任命
|
|
self:RegisterProtocal(40025,"on40025") -- 修改社团信息
|
|
self:RegisterProtocal(40026,"on40026") -- 解散社团
|
|
self:RegisterProtocal(40027,"on40027") -- 社团商店界面
|
|
self:RegisterProtocal(40028,"on40028") -- 购买商品
|
|
self:RegisterProtocal(40029,"on40029") -- 社团等级经验更新
|
|
self:RegisterProtocal(40030,"on40030") -- 成员离开
|
|
self:RegisterProtocal(40031,"on40031") -- 社团合并
|
|
self:RegisterProtocal(40032,"on40032") -- 查看吞并请求/对方请求也会收到
|
|
self:RegisterProtocal(40033,"on40033") -- 吞并请求回复
|
|
self:RegisterProtocal(40034,"on40034") -- 取消合并申请
|
|
self:RegisterProtocal(40071,"on40071") -- 查询当前社团历史最高数量
|
|
|
|
self:RegisterProtocal(40035,"on40035") -- 拼单主界面
|
|
self:RegisterProtocal(40065,"on40065") -- 拼单单独更新
|
|
self:RegisterProtocal(40066,"on40066") -- 拼单订单刷新
|
|
self:RegisterProtocal(40036,"on40036") -- 拼单任务选中
|
|
self:RegisterProtocal(40037,"on40037") -- 拼单邀请
|
|
self:RegisterProtocal(40038,"on40038") -- 拼单邀请(收到)
|
|
self:RegisterProtocal(40039,"on40039") -- 拼单回复(收到) 同意才发 拒绝直接X掉
|
|
self:RegisterProtocal(40040,"on40040") -- 拼单任务完成
|
|
self:RegisterProtocal(40041,"on40041") -- 发起感谢
|
|
self:RegisterProtocal(40042,"on40042") -- 收到感谢
|
|
self:RegisterProtocal(40043,"on40043") -- 社团资金更新
|
|
self:RegisterProtocal(40063,"on40063") -- 社团驻地人数信息
|
|
self:RegisterProtocal(40064,"on40064") -- 社团召集
|
|
|
|
self:RegisterProtocal(40044,"on40044") -- 进入社团场景
|
|
self:RegisterProtocal(40045,"on40045") -- 退出社团场景
|
|
|
|
self:RegisterProtocal(40067,"on40067") -- 单独更新社团成员在线情况
|
|
|
|
--- 社团活跃相关 ---
|
|
self:RegisterProtocal(40400,"on40400") -- 社团活跃个人数据
|
|
self:RegisterProtocal(40401,"on40401") -- 社团活跃任务推送(前端不请求)
|
|
self:RegisterProtocal(40402,"on40402") -- 社团活跃社团劳务
|
|
self:RegisterProtocal(40403,"on40403") -- 社团活跃活跃度奖励领取
|
|
self:RegisterProtocal(40406,"on40406") -- 社团活跃变更广播
|
|
self:RegisterProtocal(40407,"on40407") -- 社团活跃任务奖励领取
|
|
-- 社团日志
|
|
self:RegisterProtocal(40404,"on40404") -- 社团日志新增
|
|
self:RegisterProtocal(40405,"on40405") -- 社团日志获取
|
|
--午间采集玩法
|
|
self:RegisterProtocal(40801,"on40801") -- 社团采集活动状态
|
|
self:RegisterProtocal(40802,"on40802") -- 社团采集活动参与信息
|
|
self:RegisterProtocal(40803,"on40803") -- 采集场景右上角信息
|
|
self:RegisterProtocal(40804,"on40804") -- 主推通知活动变更
|
|
self:RegisterProtocal(40805,"on40805") -- 主推通知采集完成后入侵怪物出现
|
|
self:RegisterProtocal(40806,"on40806") -- 主推通知场景当前剩余采集怪数量
|
|
self:RegisterProtocal(40807,"on40807") -- 协助者助战信息
|
|
self:RegisterProtocal(40808,"on40808") -- 协助者请求怪物信息
|
|
-- self:RegisterProtocal(40809,"on40809") -- 前往协助
|
|
-- self:RegisterProtocal(40810,"on40810") -- 取消协助
|
|
self:RegisterProtocal(40811,"on40811") -- 通知协助更新
|
|
self:RegisterProtocal(40812,"on40812") --自己当前协助的Id
|
|
-- 社团boss玩法
|
|
self:RegisterProtocal(40600,"on40600") -- 社团boss活动状态
|
|
self:RegisterProtocal(40601,"on40601") -- 社团boss血量广播
|
|
self:RegisterProtocal(40602,"on40602") -- 社团boss个人伤害榜单
|
|
self:RegisterProtocal(40603,"on40603") -- 社团boss社团榜单
|
|
self:RegisterProtocal(40604,"on40604") -- 个体数据(请求相应榜单数据的时候 服务端会主推)
|
|
self:RegisterProtocal(40605,"on40605") -- 社团boss结算数据
|
|
self:RegisterProtocal(40606,"on40606") -- 社团boss状态
|
|
self:RegisterProtocal(40607,"on40607") -- 鼓舞数据
|
|
self:RegisterProtocal(40608,"on40608") -- 鼓舞
|
|
self:RegisterProtocal(40609,"on40609") -- 社团加成次数
|
|
self:RegisterProtocal(40610,"on40610") -- 社团boss拾取采集
|
|
self:RegisterProtocal(40611,"on40611") -- 社团boss掉落横幅通知
|
|
self:RegisterProtocal(40612,"on40612") -- 社团boss鼓舞通知
|
|
self:RegisterProtocal(40613,"on40613") -- 社团boss掉落信息
|
|
self:RegisterProtocal(40614,"on40614") -- 社团boss掉落roll点
|
|
self:RegisterProtocal(40615,"on40615") -- 掉落roll点结算推送
|
|
self:RegisterProtocal(40616,"on40616") -- 查询roll点信息
|
|
|
|
-- 社团协助
|
|
self:RegisterProtocal(40046,"on40046") -- 查询协助信息
|
|
self:RegisterProtocal(40047,"on40047") -- 是否有协助奖励
|
|
self:RegisterProtocal(40048,"on40048") -- 是否可以感谢
|
|
self:RegisterProtocal(40049,"on40049") -- 感谢界面信息
|
|
self:RegisterProtocal(40050,"on40050") -- 感谢
|
|
self:RegisterProtocal(40051,"on40051") -- 发送协助请求
|
|
self:RegisterProtocal(40052,"on40052") -- 前往协助
|
|
self:RegisterProtocal(40053,"on40053") -- 取消协助
|
|
self:RegisterProtocal(40054,"on40054") -- 结束协助推送
|
|
self:RegisterProtocal(40055,"on40055") -- 特殊情况结束协助推送(返回后前端去请求40046)
|
|
self:RegisterProtocal(40056,"on40056") -- 特殊情况结束协助推送(返回后前端去请求40046)
|
|
self:RegisterProtocal(40068,"on40068") -- 感谢红包信息列表
|
|
self:RegisterProtocal(40069,"on40069") -- 接收红包信息列表
|
|
self:RegisterProtocal(40070,"on40070") -- 领取感谢奖励
|
|
|
|
self:RegisterProtocal(40072,"on40072") -- 通知新成员加入
|
|
|
|
-- 社团派对(篝火)
|
|
self:RegisterProtocal(40057,"on40057") -- 社团派对活动时间信息
|
|
self:RegisterProtocal(40058,"on40058") -- 社团派对界面状态信息
|
|
self:RegisterProtocal(40059,"on40059") -- 社团派对经验协议
|
|
self:RegisterProtocal(40061,"on40061") -- 取消协助把消息发送给请求者
|
|
|
|
-- 社团活动 本服团战
|
|
self:RegisterProtocal(40500,"on40500") -- 活动状态
|
|
self:RegisterProtocal(40501,"on40501") -- 进入战场
|
|
self:RegisterProtocal(40502,"on40502") -- 退出战场
|
|
self:RegisterProtocal(40503,"on40503") -- 战场信息-个人积分-服务端主推
|
|
self:RegisterProtocal(40504,"on40504") -- 战场信息-个人积分排名
|
|
self:RegisterProtocal(40505,"on40505") -- 战场信息-公会积分排名
|
|
self:RegisterProtocal(40506,"on40506") -- 战场信息-进入采集状态
|
|
self:RegisterProtocal(40507,"on40507") -- 战场信息-采集提交
|
|
self:RegisterProtocal(40508,"on40508") -- 战场信息-结算界面-服务端主推
|
|
self:RegisterProtocal(40509,"on40509") -- 上期明星社团
|
|
self:RegisterProtocal(40510,"on40510") -- 战场信息-BOSS出生
|
|
self:RegisterProtocal(40511,"on40511") -- 战场信息-BOSS死亡
|
|
self:RegisterProtocal(40512,"on40512") -- 战场信息-积分信息广播
|
|
self:RegisterProtocal(40513,"on40513") -- 战场信息-护盾CD
|
|
self:RegisterProtocal(40514,"on40514") -- 战场信息-使用护盾
|
|
|
|
-- 本国团战
|
|
self:RegisterProtocal(41000,"on41000") -- 本国团战信息
|
|
self:RegisterProtocal(41001,"on41001") -- 对战信息
|
|
self:RegisterProtocal(41002,"on41002") -- 进入/退出本国团战战场
|
|
self:RegisterProtocal(41003,"on41003") -- 本国团战社团采集信息
|
|
self:RegisterProtocal(41004,"on41004") -- 本国团战战场物资信息
|
|
self:RegisterProtocal(41005,"on41005") -- 本国团战伤害排名(二级界面)
|
|
self:RegisterProtocal(41006,"on41006") -- 本国团战社团伤害输出排名(S主推定时刷新)
|
|
self:RegisterProtocal(41007,"on41007") -- 本国团战结算界面
|
|
self:RegisterProtocal(41008,"on41008") -- 本国团战物资采集点请求
|
|
self:RegisterProtocal(41009,"on41009") -- 本国团战采集信息推送
|
|
|
|
-- 社团跑环答题
|
|
self:RegisterProtocal(41700,"on41700") -- 触发跑环协助推送
|
|
self:RegisterProtocal(41701,"on41701") -- 获取答题内容
|
|
self:RegisterProtocal(41702,"on41702") -- 答题
|
|
self:RegisterProtocal(41703,"on41703") -- 答题结束
|
|
self:RegisterProtocal(41704,"on41704") -- 答题强制结束
|
|
self:RegisterProtocal(41705,"on41705") -- 重连
|
|
self:RegisterProtocal(41706,"on41706") -- 虚空副本信息
|
|
end
|
|
|
|
function GuildController:InitEvent()
|
|
local function onRequestHandler(...)
|
|
local args = {...}
|
|
--如果在跨服组队中,就先退出队伍
|
|
if (args[1] == 40301) then --进入活动的协议号
|
|
local function call_back()--重新进入活动的协议
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,args[1],args[2])
|
|
end
|
|
if BaseDungeonController.Instance:QuitDungeonTeam(self,call_back) then
|
|
return
|
|
end
|
|
|
|
elseif (args[1] == 40230) then
|
|
local function call_back()--重新进入活动的协议
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,args[1])
|
|
end
|
|
if BaseDungeonController.Instance:QuitDungeonTeam(self,call_back) then
|
|
return
|
|
end
|
|
end
|
|
self.igonre_once = false
|
|
--如果在跨服组队中,就先退出队伍
|
|
if args[1] == 40016 or args[1] == 40018 or args[1] == 40403
|
|
or args[1] == 40602 or args[1] == 40603 or args[1] == 41002 or args[1] == 40041 then
|
|
self:SendFmtToGame(args[1],"c",args[2])
|
|
elseif args[1] == 40036 or args[1] == 40604 then
|
|
self:SendFmtToGame(args[1],"cc",args[2],args[3])
|
|
elseif args[1] == 40014 or args[1] == 40031
|
|
or args[1] == 40049 or args[1] == 40052
|
|
or args[1] == 40808 or args[1] == 40809
|
|
then
|
|
self:SendFmtToGame(args[1],"l",args[2])
|
|
elseif args[1] == 40013 then
|
|
self:SendFmtToGame(args[1],"lc",args[2],args[3])
|
|
elseif args[1] == 41702 then
|
|
self:SendFmtToGame(args[1],"ic",args[2],args[3])
|
|
elseif args[1] == 40028 then
|
|
self:SendFmtToGame(args[1],"ih",args[2],args[3])
|
|
elseif args[1] == 40022 then
|
|
self:SendFmtToGame(args[1], "hh", args[2],args[3]) --请求职位管理
|
|
elseif args[1] == 40050 then
|
|
self:SendFmtToGame(args[1], "cls", args[2], args[3], args[4])
|
|
elseif args[1] == 40051 then
|
|
self:SendFmtToGame(args[1], "hhhl", args[2], args[3], args[4], args[5])
|
|
elseif args[1] == 40608 or args[1] == 40501 then
|
|
self:SendFmtToGame(args[1], "c", args[2])
|
|
elseif args[1] == 40610 then
|
|
self:SendFmtToGame(args[1], "ci", args[2], args[3])
|
|
elseif args[1] == 41001 or args[1] == 41005 then
|
|
self:SendFmtToGame(args[1], "ccc", args[2], args[3], args[4])
|
|
elseif args[1] == 40507 or args[1] == 41008 then
|
|
-- print(">>>>>>>>>>40507 ", args[1], args[2])
|
|
self:SendFmtToGame(args[1], "i", args[2])
|
|
elseif args[1] == 40064 or args[1] == 40407 or args[1] == 40616 then
|
|
self:SendFmtToGame(args[1], "h", args[2])
|
|
elseif args[1] == 40025 then
|
|
self:SendFmtToGame(args[1], "csi", args[2], args[3], args[4])
|
|
elseif args[1] == 40033 or args[1] == 40037 or args[1] == 40039 or args[1] == 40070 then
|
|
self:SendFmtToGame(args[1], "cl", args[2], args[3])
|
|
elseif args[1] == 40614 then
|
|
self:SendFmtToGame(args[1], "ch", args[2], args[3])
|
|
else
|
|
self:SendFmtToGame(args[1])
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.REQUEST_CCMD_EVENT,onRequestHandler)
|
|
|
|
local function onSceneStartHandler()
|
|
self:ChangeScene()
|
|
end
|
|
self:Bind(EventName.CAN_FIND_NPC, onSceneStartHandler)
|
|
GlobalEventSystem:Bind(EventName.SCENE_LOAD_VIEW_COMPLETE,onSceneStartHandler)
|
|
|
|
local function chnage_day_func(type)
|
|
if type == SettingModel.CHANGE_DAY.HOUR_0 then -- 跨0点
|
|
self.model:ClearActList()
|
|
elseif type == SettingModel.CHANGE_DAY.HOUR_4 then -- 跨4点
|
|
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(EventName.CHANE_DAY, chnage_day_func)
|
|
|
|
local onGameStart = function ()
|
|
--只有有社团的时候才请求
|
|
local main_vo = RoleManager:getInstance():GetMainRoleVo()
|
|
if main_vo.guild_id > 0 then
|
|
if GetModuleIsOpen(400, 6) then--游戏开始要检查是否满足协助信息列表
|
|
self.model.is_check_support_list = true
|
|
end
|
|
self:BatchRequesGuildEvent()
|
|
else
|
|
-- 不管是否加入社团,也要获取活动状态,其他模块需要提示
|
|
-- 社团晚宴
|
|
if GetModuleIsOpen(400, 7) and (GetModuleOpenLevel(400, 7) == main_vo.level) then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40057) --社团晚宴协议信息
|
|
end
|
|
-- 社团午间采集
|
|
if GetModuleIsOpen(408) and (GetModuleOpenLevel(408) == main_vo.level) then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40801)--活动状态
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40802)--当日已封印次数
|
|
end
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT, onGameStart)
|
|
|
|
local function onLevelUp(level)
|
|
-- 升级时清空社团活动配置缓存
|
|
self.model:ClearActList()
|
|
-- 升级时清空社团商城缓存
|
|
self.model:ClearGuildShopCfgCache()
|
|
self:BatchRequesGuildEvent(level)
|
|
end
|
|
RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
|
|
|
|
local function onRoleGuildCoinChanges()
|
|
local function refresh_guild_shop_red()
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Shop, true)
|
|
end
|
|
TimeManager.GetInstance():StartTime("GuildModel_CheckGuildShopRed", 1, refresh_guild_shop_red)
|
|
end
|
|
RoleManager.Instance.mainRoleInfo:BindOne("guild_contribute", onRoleGuildCoinChanges)
|
|
--打开社团主界面
|
|
local function onGuildMainView(index)
|
|
if self.GuildMainView == nil then
|
|
self.GuildMainView = GuildMainView.New()
|
|
end
|
|
self.GuildMainView:Open(index)
|
|
end
|
|
|
|
GlobalEventSystem:Bind(EventName.OPEN_GUILD_MAIN_VIEW,onGuildMainView)
|
|
|
|
local function onCloseGuildMainView()
|
|
if self.GuildMainView and self.GuildMainView:HasOpen() then
|
|
self.GuildMainView:Close()
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(EventName.CLOSE_GUILD_MAIN_VIEW,onCloseGuildMainView)
|
|
|
|
--打开创建社团界面
|
|
local function onGuildCreateView(show)
|
|
self:OpenView("GuildCreateView", show)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.OPEN_GUILD_CREATE_VIEW, onGuildCreateView)
|
|
|
|
--打开社团申请设置界面
|
|
local function onGuildApplySettingView(show)
|
|
self:OpenView("GuildApplySettingView", show)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.OPEN_GUILD_APPLY_SETTING_VIEW, onGuildApplySettingView)
|
|
|
|
--打开社团设置公告界面
|
|
local function onGuildEditAnnounceView(show)
|
|
-- 没有权限则不打开界面
|
|
if not self.model:HasOperatePermission(GuildModel.MgrPermission.ChangeAnnounce) then
|
|
Message.show("您没有此权限哦~")
|
|
return
|
|
end
|
|
self:OpenView("GuildEditAnnounceView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_EDITOR_ANNOUNCE_VIEW, onGuildEditAnnounceView)
|
|
|
|
-- 社团改名改标志界面
|
|
local function openGuildRenameView(show)
|
|
self:OpenView("GuildRenameView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_RENAME_VIEW, openGuildRenameView)
|
|
|
|
local function openGuildRequestMergeView(show)
|
|
self:OpenView("GuildRequestMergeView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_REQUEST_MERGE_VIEW, openGuildRequestMergeView)
|
|
|
|
--打开社团驻地场景界面
|
|
local function onOpenGuildSceneView(flag)
|
|
self:OpenView("GuildSceneView", flag)
|
|
end
|
|
self.model:Bind(EventName.OPEN_GUILD_SCENE_VIEW, onOpenGuildSceneView)
|
|
|
|
--打开社团协助信息界面
|
|
local function onGuildSupportInfoMainView(tab_index,special_data)
|
|
if self.GuildSupportInfoMainView == nil then
|
|
self.GuildSupportInfoMainView = GuildSupportInfoMainView.New()
|
|
end
|
|
if self.GuildSupportInfoMainView:HasOpen() then
|
|
self.GuildSupportInfoMainView:UpdateView(tab_index,special_data)
|
|
else
|
|
self.GuildSupportInfoMainView:Open(tab_index,special_data)
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_IFNO_VIEW, onGuildSupportInfoMainView)
|
|
|
|
local function onCloseGuildSupportInfoView()
|
|
if self.GuildSupportInfoMainView and self.GuildSupportInfoMainView:HasOpen() then
|
|
self.GuildSupportInfoMainView:Close()
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.CLOSE_GUILD_SUPPORT_IFNO_VIEW, onCloseGuildSupportInfoView)
|
|
|
|
--打开社团感谢界面
|
|
local function onGuildSupportThankView(view_type,data)
|
|
if self.GuildSupportThankView == nil then
|
|
self.GuildSupportThankView = GuildSupportThankView.New()
|
|
end
|
|
self.GuildSupportThankView:Open(view_type,data)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_THANK_VIEW,onGuildSupportThankView)
|
|
|
|
--打开社团感谢界面
|
|
local function onGuildSupportGoView( data )
|
|
if self.GuildSupportGoView == nil then
|
|
self.GuildSupportGoView = GuildSupportGoView.New()
|
|
end
|
|
if self.GuildSupportGoView:HasOpen() then
|
|
-- self.GuildSupportGoView:UpdateView()
|
|
else
|
|
self.GuildSupportGoView:Open( data )
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_GO_VIEW,onGuildSupportGoView)
|
|
|
|
--打开社团协助接受界面
|
|
local function onGuildSupportAcceptView( data )
|
|
if self.GuildSupportAcceptView == nil then
|
|
self.GuildSupportAcceptView = GuildSupportAcceptView.New()
|
|
end
|
|
if self.GuildSupportAcceptView:HasOpen() then
|
|
-- self.GuildSupportAcceptView:UpdateView()
|
|
else
|
|
self.GuildSupportAcceptView:Open( data )
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_ACCEPT_VIEW,onGuildSupportAcceptView)
|
|
|
|
--打开社团协助boss前往界面
|
|
local function onGuildSupportGuildBossGoView( data )
|
|
if self.GuildSupportGuildBossGoView == nil then
|
|
self.GuildSupportGuildBossGoView = GuildSupportGuildBossGoView.New()
|
|
end
|
|
if self.GuildSupportGuildBossGoView:HasOpen() then
|
|
-- self.GuildSupportGuildBossGoView:UpdateView()
|
|
else
|
|
self.GuildSupportGuildBossGoView:Open( data )
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_GUILD_BOSS_GO_VIEW,onGuildSupportGuildBossGoView)
|
|
|
|
|
|
|
|
--打开社团协助结算界面
|
|
local function onGuildSupportResultView( data )
|
|
if self.GuildSupportResultView == nil then
|
|
self.GuildSupportResultView = GuildSupportResultView.New()
|
|
end
|
|
if self.GuildSupportResultView:HasOpen() then
|
|
-- self.GuildSupportResultView:UpdateView()
|
|
else
|
|
self.GuildSupportResultView:Open( data )
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_RESULT_VIEW,onGuildSupportResultView)
|
|
|
|
|
|
--打开社团协助快捷发送界面
|
|
local function onGuildSupportTipView( support_data )
|
|
if self.GuildSupportTipView == nil then
|
|
self.GuildSupportTipView = GuildSupportTipView.New()
|
|
end
|
|
if self.GuildSupportTipView:HasOpen() then
|
|
self.GuildSupportTipView:UpdateView( support_data )
|
|
else
|
|
self.GuildSupportTipView:Open( support_data )
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_TIP_VIEW,onGuildSupportTipView)
|
|
|
|
local function closeGuildSupportTipView( )
|
|
if self.GuildSupportTipView and self.GuildSupportTipView:HasOpen() then
|
|
self.GuildSupportTipView:Close()
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.CLOSE_GUILD_SUPPORT_TIP_VIEW,closeGuildSupportTipView)
|
|
|
|
|
|
--请求社团显示列表信息
|
|
local function onRequestGuildList(guild_name,filter,page_size,page_no)
|
|
self:SendFmtToGame(40001, "schh", guild_name,filter,page_size,page_no)
|
|
end
|
|
self.model:Bind(GuildModel.RequestGuildListEvt,onRequestGuildList)
|
|
|
|
--请求加入社团
|
|
local function onApplyJoinGuild(guild_id)
|
|
self:SendFmtToGame(40002, "l", guild_id)
|
|
end
|
|
self.model:Bind(GuildModel.ApplyJoinGuildEvt,onApplyJoinGuild)
|
|
|
|
--请求海投简历
|
|
local function onRequestMultiJoinGuild()
|
|
self:SendFmtToGame(40003)
|
|
end
|
|
self.model:Bind(GuildModel.RequestMultiJoinGuildEvt,onRequestMultiJoinGuild)
|
|
|
|
--请求创建社团
|
|
local function onRequestCreateGuild(cfg_id,guild_name,guild_flag)
|
|
self:SendFmtToGame(40004,"csi",cfg_id,guild_name,guild_flag)
|
|
end
|
|
self.model:Bind(GuildModel.RequestCreateGuildEvt,onRequestCreateGuild)
|
|
|
|
--请求社团基础属性
|
|
local function onRequestGuildBaseInfo()
|
|
self:SendFmtToGame(40005)
|
|
end
|
|
self.model:Bind(GuildModel.RequestGuildBaseInfoEvt,onRequestGuildBaseInfo)
|
|
|
|
--请求成员界面玩家信息
|
|
local function onRequestGuildMemberViewMemberInfo(page_size,page_no,not_all)
|
|
local page_size = not_all and (page_size and page_size or 15) or 50
|
|
local page_no = page_no or 1
|
|
self:SendFmtToGame(40006,"hh",page_size,page_no)
|
|
end
|
|
self.model:Bind(GuildModel.RequestMemberViewMemberInfoEvt,onRequestGuildMemberViewMemberInfo)
|
|
|
|
--请求退出社团
|
|
local function onRequestQuitGuild()
|
|
local guild_name = RoleManager.Instance.mainRoleInfo.guild_name
|
|
local function ok( ... )
|
|
self:SendFmtToGame(40007)
|
|
end
|
|
local ask_str = "点击确认马上退出当前社团\n您确认要退出 " .. guild_name .." 社团吗?"
|
|
Alert.show(ask_str,Alert.Type.Two,ok,nil,"确定","取消")
|
|
end
|
|
self.model:Bind(GuildModel.RequestQuitGuildEvt,onRequestQuitGuild)
|
|
|
|
--请求设置玩家的申请状态
|
|
local function onRequestSetMemberApplyState (role_id,type)
|
|
self:SendFmtToGame(40009,"lc",role_id,type)
|
|
end
|
|
self.model:Bind(GuildModel.RequestSetApplyMemberStateEvt,onRequestSetMemberApplyState)
|
|
|
|
--请求申请设置界面条件
|
|
local function onRequestApplySettingCondition (approve_type,auto_approve_lv,auto_approve_power)
|
|
self:SendFmtToGame(40011,"chl",approve_type,auto_approve_lv,auto_approve_power)
|
|
end
|
|
self.model:Bind(GuildModel.RequestApplySettingConditionEvt,onRequestApplySettingCondition)
|
|
|
|
--请求设置公告
|
|
local function onRequestSetAnnounce (announce,id)
|
|
self.announce = announce
|
|
self:SendFmtToGame(40012,"sc",announce,id)
|
|
end
|
|
self.model:Bind(GuildModel.RequestSetAnnounceEvt,onRequestSetAnnounce)
|
|
|
|
--请求全部批准
|
|
local function onRequestAgreeApplyList(type)
|
|
self:SendFmtToGame(40016, "c", type)
|
|
end
|
|
self.model:Bind(GuildModel.RequestAgreeApplyListEvt,onRequestAgreeApplyList)
|
|
|
|
--任命职位
|
|
local function onRequestAppointMemberPost (role_id,position)
|
|
self:SendFmtToGame(40013,"lc",role_id,position)
|
|
end
|
|
self.model:Bind(GuildModel.RequestAppointMemberPostEvt,onRequestAppointMemberPost)
|
|
|
|
-- 社团boss采集协议
|
|
local function pick_up_gboss_grop_item(opty, drop_id)
|
|
self:SendFmtToGame(40610, "ci", opty, drop_id)
|
|
end
|
|
self.model:Bind(GuildModel.PICK_UP_BOSS_DROP_ITEM, pick_up_gboss_grop_item)
|
|
|
|
--请求踢出社团
|
|
local function onRequestKickOutGuild (role_id)
|
|
local function ok( ... )
|
|
self:SendFmtToGame(40014,"l",role_id)
|
|
end
|
|
local ask_str = "确定将该玩家踢出社团?"
|
|
Alert.show(ask_str,Alert.Type.Two,ok,nil,"确定","取消")
|
|
end
|
|
self.model:Bind(GuildModel.RequestKickOutGuildEvt,onRequestKickOutGuild)
|
|
|
|
-- 进入社团驻地
|
|
local function enter_guild_base()
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40044)
|
|
--判断社团boss是否开着,是的话主动请求07协议刷新加成系数
|
|
local event_data = self.model:GetGuildEventData()
|
|
for k,v in pairs(event_data) do
|
|
if k == GuildEventType.GuildBossNoon or k == GuildEventType.GuildBossNight and v.is_evt_open then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40607)
|
|
end
|
|
end
|
|
--判断封印裂隙是否开着,是的话主动请求40046拿到全部协助列表信息
|
|
if self.model:IsGuildCollectActive() and SceneManager.Instance:IsGuildScene() then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40046)
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.ENTER_GUILD_BASE, enter_guild_base)
|
|
-- 离开社团驻地
|
|
local function leave_guild_base()
|
|
self.model:CancelCollectSupport()--离开社团驻地时且是协助他人 取消协助
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40045)
|
|
end
|
|
self.model:Bind(GuildModel.LEAVE_GUILD_BASE, leave_guild_base)
|
|
|
|
local function on_update_guild_info()
|
|
if self.model:IsGuildAuctionShow() then
|
|
if not self.guild_auction_view then
|
|
self.guild_auction_view = GuildBossSceneAuctionTips.New()
|
|
end
|
|
if not self.guild_auction_view:HasOpen() then
|
|
self.guild_auction_view:Open()
|
|
end
|
|
else
|
|
if self.guild_auction_view then
|
|
self.guild_auction_view:Close()
|
|
self.guild_auction_view = nil
|
|
end
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.UPDATE_GUILD_BOSS_INFO, on_update_guild_info)
|
|
--------------------------------------------------------------------------
|
|
|
|
local function open_posapply_view(show)
|
|
self:OpenView("GuildPositionApplyView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_POSITION_APPLY_VIEW, open_posapply_view)
|
|
|
|
local function open_guildlog_view(show)
|
|
self:OpenView("GuildLogView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_LOG_VIEW, open_guildlog_view)
|
|
|
|
local function openGuildBossResultView(show, data)
|
|
if (show and data) or not show then
|
|
self:OpenView("GuildBossResultView", show, data)
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_BOSS_RESULT_VIEW, openGuildBossResultView)
|
|
|
|
local function openGuildBossSceneRollView(show)
|
|
if show then
|
|
if self.GuildSceneRollView then
|
|
self.GuildSceneRollView:Close()
|
|
self.GuildSceneRollView = nil
|
|
end
|
|
end
|
|
self:OpenView("GuildSceneRollView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_BOSS_ROLL_VIEW, openGuildBossSceneRollView)
|
|
|
|
local function openGuildBossRollPreviewView(show)
|
|
self:OpenView("GuildBossRollPreviewView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_BOSS_ROLL_PREVIEW_VIEW, openGuildBossRollPreviewView)
|
|
|
|
local function openGuildPosAllotView(show, index)
|
|
if show then
|
|
local pos = RoleManager.Instance.mainRoleInfo.position
|
|
if pos ~= GuildModel.GuildPosition.Leader and pos ~= GuildModel.GuildPosition.ViceLeader then
|
|
Message.show("您没有社团职位任命的权限哦")
|
|
return
|
|
end
|
|
if not self.guild_pos_allot_view then
|
|
self.guild_pos_allot_view = GuildPositionAllotView.New()
|
|
end
|
|
if not self.guild_pos_allot_view:HasOpen() then
|
|
self.guild_pos_allot_view:Open(index)
|
|
end
|
|
else
|
|
if self.guild_pos_allot_view then
|
|
self.guild_pos_allot_view:Close()
|
|
end
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_POS_ALLOT_VIEW, openGuildPosAllotView)
|
|
|
|
local function openGuildApplyMgrView(show, index)
|
|
if show then
|
|
local pos = RoleManager.Instance.mainRoleInfo.position
|
|
if pos ~= GuildModel.GuildPosition.Leader and pos ~= GuildModel.GuildPosition.ViceLeader then
|
|
Message.show("您没有管理申请的权限哦")
|
|
return
|
|
end
|
|
if not self.guild_apply_mgr_view then
|
|
self.guild_apply_mgr_view = GuildApplyMgrView.New()
|
|
end
|
|
if not self.guild_apply_mgr_view:HasOpen() then
|
|
self.guild_apply_mgr_view:Open(index)
|
|
end
|
|
else
|
|
if self.guild_apply_mgr_view then
|
|
self.guild_apply_mgr_view:Close()
|
|
end
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_APPLY_MGR_VIEW, openGuildApplyMgrView)
|
|
|
|
local function openGuildEventView(event_type,jump_wday)
|
|
local guild_id = RoleManager.Instance.mainRoleInfo.guild_id
|
|
local is_un_join = not guild_id or guild_id == 0
|
|
if is_un_join then
|
|
Message.show("您还没有社团,请先加入社团")
|
|
return
|
|
end
|
|
self.model.need_jump_event_type = event_type
|
|
self.model.need_jump_wday = jump_wday
|
|
GlobalEventSystem:Fire(EventName.OPEN_GUILD_MAIN_VIEW,Config.ConfigGuild.TabId.Event)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_EVENT_VIEW,openGuildEventView)
|
|
|
|
local function openGuildSpellListRewardView(show, reward_data)
|
|
if (show and reward_data) or not show then
|
|
self:OpenView("GuildSpellListRewardView", show, reward_data)
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_SL_REWARD_VIEW, openGuildSpellListRewardView)
|
|
|
|
local function openGuildSpellListThankView(show, vo)
|
|
if (show and vo) or not show then
|
|
self:OpenView("GuildSpellListThankView", show, vo)
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_SL_THANK_VIEW, openGuildSpellListThankView)
|
|
|
|
-------------------------------本服团战 开始 --------------------------
|
|
--打开本服团战场景界面
|
|
local function onOpenGuildWarSceneView(flag)
|
|
self:OpenView("GuildSceneWarView", flag)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_WAR_SCENE_VIEW, onOpenGuildWarSceneView)
|
|
|
|
local function onOpenGuildWarRankView()
|
|
if self.GuildWarRankView and self.GuildWarRankView:HasOpen() then
|
|
self.GuildWarRankView:Close()
|
|
end
|
|
if self.GuildWarRankView == nil then
|
|
self.GuildWarRankView = GuildWarRankView.New()
|
|
end
|
|
if self.GuildWarRankView:HasOpen() then
|
|
self.GuildWarRankView:Close()
|
|
else
|
|
self.GuildWarRankView:Open()
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_WAR_RANK_VIEW, onOpenGuildWarRankView)
|
|
|
|
--进入本服团战场景
|
|
local function onEnterGuildWarScene(pool_id)
|
|
pool_id = pool_id or 0
|
|
self.model.guild_war_info = {}
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40501, pool_id)
|
|
end
|
|
self.model:Bind(GuildModel.ENTER_GUILD_WAR_SCENE,onEnterGuildWarScene)
|
|
|
|
--离开本服团战场景
|
|
local function onLeaveGuildWarScene()
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40502)
|
|
self.model.guild_war_info = {}
|
|
end
|
|
self.model:Bind(GuildModel.LEAVE_GUILD_WAR_SCENE,onLeaveGuildWarScene)
|
|
|
|
--本服团战结算
|
|
local function onOpenGuildWarResultView()
|
|
if self.GuildWarResultView and self.GuildWarResultView:HasOpen() then
|
|
self.GuildWarResultView:Close()
|
|
end
|
|
if self.GuildWarResultView == nil then
|
|
self.GuildWarResultView = GuildWarResultView.New()
|
|
end
|
|
if self.GuildWarResultView:HasOpen() then
|
|
self.GuildWarResultView:Close()
|
|
else
|
|
self.GuildWarResultView:Open()
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.GUILD_WAR_RESULT,onOpenGuildWarResultView)
|
|
|
|
--本服团战结算
|
|
local function onGuildWarOpenState(state, end_time)
|
|
self.model:GuildWarCheckIconBoolOpen(state, end_time)
|
|
end
|
|
self.model:Bind(GuildModel.GUILD_WAR_OPEN_STATE,onGuildWarOpenState)
|
|
|
|
-------------------------------本服团战 结束 --------------------------
|
|
|
|
------------------------------- 本国团战 start --------------------------
|
|
-- 本国团战场景界面
|
|
local function open_csgr_scene_view(show)
|
|
self:OpenView("GuildCSGRSceneView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_CSGR_SCENE_VIEW, open_csgr_scene_view)
|
|
-- 本国团战奖励预览界面
|
|
local function open_csgr_reward_view(show)
|
|
self:OpenView("GuildCSGRRewardView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_CSGR_REWARD_VIEW, open_csgr_reward_view)
|
|
-- 本国团战伤害排名界面
|
|
local function open_csgr_rank_view(show)
|
|
self:OpenView("GuildCSGRRankView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_CSGR_RANK_VIEW, open_csgr_rank_view)
|
|
-- 本国团战对战信息界面
|
|
local function open_csgr_fightinfo_view(show)
|
|
self:OpenView("GuildCSGRFightInfoView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_CSGR_FIGHTINFO_VIEW, open_csgr_fightinfo_view)
|
|
|
|
-- 本国团战结算界面 rank_data:排行数据
|
|
local function open_csgr_result_view(show, rank_data)
|
|
if (show and rank_data) or not show then
|
|
self:OpenView("GuildCSGRResultView", show, rank_data)
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_CSGR_RESULT_VIEW, open_csgr_result_view)
|
|
------------------------------- 本国团战 end --------------------------
|
|
|
|
local function BOARD_GUILD_SUPPOR_REMOVE( role_id )
|
|
if role_id then
|
|
--清空封印裂隙协助者信息
|
|
self.model:SetGuildCollectHelperInfo(nil,role_id)
|
|
self.model:Fire(GuildModel.ANS_GUILD_COLLECT_HELP_LIST)
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.BOARD_GUILD_SUPPOR_REMOVE,BOARD_GUILD_SUPPOR_REMOVE)
|
|
|
|
--打开战场玩法提示界面
|
|
local function ON_OPEN_ACTIVE_OPEN_TIPS_VIEW(show)
|
|
self:OpenView("GuildActiveOpenTipsView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_ACTIVE_OPEN_TIPS_VIEW,ON_OPEN_ACTIVE_OPEN_TIPS_VIEW)
|
|
|
|
|
|
------------------------------- 封印裂隙 start -------------------------
|
|
--打开封印裂隙奖励说明界面
|
|
local function open_guild_collect_reward_view()
|
|
if self.guild_reward_view == nil then
|
|
self.guild_reward_view = GuildCollectRewardView.New()
|
|
end
|
|
self.guild_reward_view:Open()
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_COLLECT_REWARD_VIEW,open_guild_collect_reward_view)
|
|
|
|
--寻路去杀封印裂隙的社团协助怪物
|
|
local function on_find_way_to_guild_collect_help_mon(vo)
|
|
--一条协助对应一个怪,不再需要判断距离了
|
|
if not vo then return end
|
|
if not vo.mon_id then return end
|
|
local monster = Scene.Instance:GetMonster(vo.mon_id)
|
|
if monster then
|
|
GlobalEventSystem:Fire(EventName.CANCEL_TO_COLLECT)
|
|
EventSystem.Fire(GlobalEventSystem,EventName.STARTAUTOFIGHT, false, true)
|
|
Scene.Instance:SetClickTarget(monster,true)
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.FIND_WAY_TO_GUILD_COLLECT_HELP_MON,on_find_way_to_guild_collect_help_mon)
|
|
|
|
--寻路去采集最近的封印裂隙采集怪
|
|
local function on_find_way_to_guild_collect_mon()
|
|
if self.model:GuildCollectAutoFightIgnoreCollectMon() then
|
|
--封印次数满了就不寻找
|
|
return
|
|
end
|
|
local collect_mon_type_id = 650001
|
|
local nearest_mon = Scene.Instance:GetNearestGuildCollectMonsterByTypeId(collect_mon_type_id)
|
|
if nearest_mon then
|
|
local function call_back()
|
|
Scene.Instance:SetClickTarget(nearest_mon,true)
|
|
end
|
|
local findVo = FindVo.New()
|
|
findVo.type = FindVo.MONSTER
|
|
findVo.x = nearest_mon.vo.pos_x / SceneObj.LogicRealRatio.x
|
|
findVo.y = nearest_mon.vo.pos_y / SceneObj.LogicRealRatio.y
|
|
findVo.sceneId = SceneManager:getInstance():GetSceneId()
|
|
findVo.id = nearest_mon.vo.type_id
|
|
findVo.call_back = call_back
|
|
GlobalEventSystem:Fire(EventName.FIND, findVo)
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.AUTO_FIND_WAY_TO_GUILD_COLLECT_MON,on_find_way_to_guild_collect_mon)
|
|
|
|
--挂机战斗状态更改时通知更改自动采集状态
|
|
local function on_change_auto_fight_state()
|
|
if SceneManager:getInstance():IsGuildScene() and self.model:IsGuildCollectActive() then
|
|
local fight_state = AutoFightManager:getInstance():GetAutoFightState()
|
|
if fight_state then--自动战斗时关闭自动采集
|
|
self.model:SetAutoGuildCollectState(false)
|
|
self.model:Fire(GuildModel.UPDATE_AUTO_GUILD_COLLECT_STATE)
|
|
end
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(AutoFightManager.CHANGE_AUTO_FIGHT_STATE, on_change_auto_fight_state)
|
|
|
|
local function on_change_collect_support()
|
|
if self.model.need_change_collect_support and self.model.need_change_collect_support ~= 0 then
|
|
local function delay_method( )
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40052,self.model.need_change_collect_support)
|
|
self.model.need_change_collect_support = 0
|
|
end
|
|
setTimeout(delay_method, 0)
|
|
end
|
|
end
|
|
self.model:Bind(GuildModel.GUILD_COLLECT_SUPPORT_CANCEL, on_change_collect_support)
|
|
------------------------------- 封印裂隙 end -------------------------
|
|
|
|
----------社团跑环答题-start---------
|
|
-- 答题界面
|
|
local function openGuildQuizView(show)
|
|
self:OpenView("GuildQuizView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_QUIZ_VIEW, openGuildQuizView)
|
|
|
|
-- 答题结算界面
|
|
local function openGuildQuizResultView(show)
|
|
self:OpenView("GuildQuizResultView", show)
|
|
end
|
|
self.model:Bind(GuildModel.OPEN_GUILD_QUIZ_RESULT_VIEW, openGuildQuizResultView)
|
|
----------社团跑环答题-end-----------
|
|
end
|
|
|
|
-- 统一请求社团事件 level:玩家当前等级,不传时强制刷新
|
|
function GuildController:BatchRequesGuildEvent(level)
|
|
-- print("Saber:GuildController [996] level: ",level)
|
|
-- 社团模块本体
|
|
if GetModuleIsOpen(400) and (level == nil or GetModuleOpenLevel(400) == level) then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40005)
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40008)
|
|
--请求社团成员信息
|
|
self.model:Fire(GuildModel.RequestMemberViewMemberInfoEvt)
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40021) --请求社团权限
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40023) -- 请求职位情况
|
|
-- 请求自动审批信息
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40010)
|
|
-- 请求社团合并信息
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40032)
|
|
-- 社团日志
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40405)
|
|
end
|
|
-- 社团活跃
|
|
if GetModuleIsOpen(400, 2) and (level == nil or GetModuleOpenLevel(400, 2) == level) then
|
|
-- 活跃数据
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40400)
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40402)
|
|
end
|
|
-- 社团派单
|
|
if GetModuleIsOpen(400, 3) and (level == nil or GetModuleOpenLevel(400, 3) == level) then
|
|
-- 请求派单信息
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40035)
|
|
end
|
|
-- 社团商城
|
|
if GetModuleIsOpen(400, 4) and (level == nil or GetModuleOpenLevel(400, 4) == level) then
|
|
-- 请求商城信息
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40027)
|
|
end
|
|
-- 社团协助
|
|
if GetModuleIsOpen(400, 6) and (level == nil or GetModuleOpenLevel(400, 6) == level) then
|
|
if level == GetModuleOpenLevel(400, 6) then--升级到96级要检查协助信息
|
|
self.model.is_check_support_list = true
|
|
end
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40046)
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40068)
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40069)
|
|
end
|
|
|
|
-- 社团晚宴
|
|
if GetModuleIsOpen(400, 7) and (level == nil or GetModuleOpenLevel(400, 7) == level) then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40057) --社团晚宴协议信息
|
|
end
|
|
-- 社团红包
|
|
if GetModuleIsOpen(339) and (level == nil or GetModuleOpenLevel(339) == level) then
|
|
RedPacketModel:GetInstance():Fire(RedPacketModel.REQUEST_CCMD_EVENT, 33901)
|
|
RedPacketModel:GetInstance():Fire(RedPacketModel.REQUEST_CCMD_EVENT, 33908)
|
|
end
|
|
-- 社团boss
|
|
if GetModuleIsOpen(406) and (level == nil or GetModuleOpenLevel(406) == level) then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40600)
|
|
end
|
|
-- 社团午间采集
|
|
if GetModuleIsOpen(408) and (level == nil or GetModuleOpenLevel(408) == level) then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40801)--活动状态
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40802)--当日已封印次数
|
|
end
|
|
-- 本国团战
|
|
if GetModuleIsOpen(410) and (level == nil or GetModuleOpenLevel(410) == level) then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41000)--本国团战信息
|
|
end
|
|
end
|
|
|
|
--错误码提示
|
|
function GuildController:on40000()
|
|
local vo = SCMD40000.New(true)
|
|
self.first_time = Status.NowTime
|
|
if vo and vo.result ~= 1 then
|
|
if self.first_time - self.last_time > 0.5 then
|
|
ErrorCodeShow(vo.result)
|
|
self.last_time = self.first_time
|
|
end
|
|
end
|
|
end
|
|
|
|
--社团列表显示信息返回 包括自己输入名字搜索
|
|
function GuildController:on40001()
|
|
local vo = SCMD40001.New(true)
|
|
-- print("==WQ==:GuildController [start:1094] vo.history_guild_num:", vo.history_guild_num)
|
|
-- if self.model.test_flag then
|
|
-- vo.history_guild_num = 3
|
|
-- else
|
|
-- vo.history_guild_num = 10
|
|
-- end
|
|
-- self.model.guild_list = vo.guild_list
|
|
self.model:SetHistoryGuildNum(vo)
|
|
self.model:Fire(GuildModel.RefreshGuildListEvt, vo)
|
|
end
|
|
|
|
function GuildController:on40071( )
|
|
local vo = SCMD40071.New(true)
|
|
-- print("==WQ==:GuildController [start:1094] vo.history_guild_num:", vo.history_guild_num)
|
|
-- if self.model.test_flag then
|
|
-- vo.history_guild_num = 3
|
|
-- else
|
|
-- vo.history_guild_num = 10
|
|
-- end
|
|
self.model:SetHistoryGuildNum(vo)
|
|
self.model:Fire(GuildModel.AFTER_GET_HISTORY_GUILD_COUNT)
|
|
self.model.handle_40071_flag = false
|
|
end
|
|
|
|
--请求加入社团
|
|
function GuildController:on40002()
|
|
|
|
local vo = SCMD40002.New(true)
|
|
if vo then
|
|
if vo.result == 1 then
|
|
Message.show("成功发出申请~")
|
|
if vo.apply_type == 1 then
|
|
GuideModel:getInstance():Fire(GuideModel.NOT_PASS_APPLY_GUIDE)
|
|
elseif vo.apply_type == 2 then
|
|
-- if self.GuildApplyView then
|
|
-- self.GuildApplyView:Close()
|
|
-- end
|
|
if SceneManager.Instance:IsMainCityorYieldScene() then
|
|
GlobalEventSystem:Fire(EventName.OPEN_GUILD_MAIN_VIEW)
|
|
end
|
|
-- RedPacketModel:GetInstance():Fire(RedPacketModel.REQUEST_CCMD_EVENT,33901)
|
|
Message.show("成功加入社团~")
|
|
end
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
GuideModel:getInstance():Fire(GuideModel.NOT_PASS_APPLY_GUIDE)
|
|
end
|
|
end
|
|
end
|
|
|
|
--海投简历
|
|
function GuildController:on40003()
|
|
local vo = SCMD40003.New(true)
|
|
if vo then
|
|
if vo.result == 1 then
|
|
Message.show("成功发出申请~")
|
|
if vo.apply_type == 1 then
|
|
GuideModel:getInstance():Fire(GuideModel.NOT_PASS_APPLY_GUIDE)
|
|
elseif vo.apply_type == 2 then
|
|
-- if self.GuildApplyView then
|
|
-- self.GuildApplyView:Close()
|
|
-- end
|
|
GlobalEventSystem:Fire(EventName.OPEN_GUILD_MAIN_VIEW)
|
|
Message.show("成功加入社团~")
|
|
-- RedPacketModel:GetInstance():Fire(RedPacketModel.REQUEST_CCMD_EVENT,33901)
|
|
end
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
GuideModel:getInstance():Fire(GuideModel.NOT_PASS_APPLY_GUIDE)
|
|
end
|
|
end
|
|
end
|
|
|
|
--创建社团
|
|
function GuildController:on40004()
|
|
local vo = SCMD40004.New(true)
|
|
if vo then
|
|
if vo.result == 1 then
|
|
Message.show("成功创建社团~")
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
end
|
|
|
|
--社团基础信息
|
|
function GuildController:on40005()
|
|
local vo = SCMD40005.New(true)
|
|
if vo then
|
|
table.sort(vo.position_list,function (v1,v2)
|
|
return v1.position < v2.position
|
|
end)
|
|
-- 社团是否升级,升级了需要社团商城缓存
|
|
local guild_base_info = self.model:GetGuildBaseInfo()
|
|
if not IsTableEmpty(guild_base_info) and guild_base_info.guild_lv and guild_base_info.guild_lv ~= vo.guild_lv then
|
|
self.model:ClearGuildShopCfgCache()
|
|
end
|
|
self.model:SetGuildBaseInfo(vo)
|
|
self.model:SetGuildFunds(vo.guild_funds) --保存社团资金信息
|
|
self.model:SetGuildAnnounce(vo.announce)
|
|
self.model.member_num = vo.member_num
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.MainInfo, true)
|
|
self.model:Fire(GuildModel.RefreshGuildInfoEvt,vo) --刷新社团主页基础信息
|
|
end
|
|
end
|
|
|
|
|
|
--社团成员列表界面信息
|
|
function GuildController:on40006()
|
|
local vo = SCMD40006.New(true)
|
|
if vo then
|
|
self.model:SetGuildMemberList(vo.member_list)
|
|
self.model:Fire(GuildModel.RefreshMainViewMemberInfoEvt,vo)
|
|
ChatModel:getInstance():Fire(ChatModel.REFRESH_MEMBER,vo)
|
|
end
|
|
end
|
|
|
|
--退出社团
|
|
function GuildController:on40007()
|
|
local vo = SCMD40007.New(true)
|
|
if vo.result == 1 then
|
|
RoleManager.Instance.mainRoleInfo:ChangeVar("guild_id",0)
|
|
RoleManager.Instance.mainRoleInfo:ChangeVar("guild_name","")
|
|
RedPacketModel:GetInstance():CheckGuildRedPacketRed()
|
|
-- 退出社团后要刷一遍所有的社团红点
|
|
self.model:CheckGuildRedDotAll()
|
|
-- GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 400, false)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
|
|
end
|
|
|
|
--申请列表
|
|
function GuildController:on40008()
|
|
local vo = SCMD40008.New(true)
|
|
if vo then
|
|
self.model:SetApplyMemberListData(vo.apply_list)
|
|
self.model:Fire(GuildModel.RefreshMemberApplyListEvt,vo)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.List, true)
|
|
end
|
|
end
|
|
|
|
--审批加入社团的玩家
|
|
function GuildController:on40009()
|
|
local vo = SCMD40009.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("操作成功")
|
|
self.model:UpdateApplyMemberList(vo)
|
|
self.model:Fire(GuildModel.RefreshtSetApplyMemberStateEvt,vo.role_id)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.List, true)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
--设置申请设置界面Init状态
|
|
function GuildController:on40010()
|
|
local vo = SCMD40010.New(true)
|
|
self.model:SetAutoApproveData(vo)
|
|
self.model:Fire(GuildModel.RefreshApplySettingViewStateEvt)
|
|
end
|
|
|
|
function GuildController:on40011()
|
|
local vo = SCMD40011.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("设置成功")
|
|
-- 请求自动审批信息
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40010)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
--设置公告
|
|
function GuildController:on40012()
|
|
local vo = SCMD40012.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("修改成功")
|
|
self.model:SetGuildAnnounce(self.announce)
|
|
self.model:UpdateGuildBasicInfoAnnounce(self.announce)
|
|
self.model:Fire(GuildModel.OPEN_GUILD_EDITOR_ANNOUNCE_VIEW, false)
|
|
self.model:Fire(GuildModel.RefreshGuildAnnounceEvt, self.announce, vo.left_num)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
--申请职位设置数量
|
|
function GuildController:on40023()
|
|
local vo = SCMD40023.New(true)
|
|
if vo then
|
|
self.model:SetCurrentPostNumInfo(vo)
|
|
--刷新职位数量
|
|
self.model:Fire(GuildModel.RefreshPostNumEvt)
|
|
end
|
|
end
|
|
|
|
--任命职位
|
|
function GuildController:on40013()
|
|
local vo = SCMD40013.New(true)
|
|
if vo then
|
|
if vo.result == 1 then
|
|
self.model:UpdateMemberPositionData(vo)
|
|
self.model:Fire(GuildModel.RefreshMainViewMemberInfoEvt)
|
|
Message.show("任命成功~")
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
end
|
|
|
|
--踢出社团
|
|
function GuildController:on40014()
|
|
local vo = SCMD40014.New(true)
|
|
if vo then
|
|
if vo.result == 1 then
|
|
Message.show("踢出成功")
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
end
|
|
|
|
--全部同意/拒绝入会
|
|
function GuildController:on40016()
|
|
local vo = SCMD40016.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("操作成功")
|
|
self.model:Fire(GuildModel.RequestMemberViewMemberInfoEvt)
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40008) -- 请求申请列表
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
--请求玩家权限列表
|
|
function GuildController:on40021()
|
|
local vo = SCMD40021.New(true)
|
|
if vo then
|
|
self.model:SetRolePermission(vo)
|
|
-- 职位变动后,如果不能管理职位了就要强制关闭职位任命界面
|
|
if not self.model:HasOperatePermission(GuildModel.MgrPermission.PassPosApply) then
|
|
self.model:Fire(GuildModel.OPEN_GUILD_POS_ALLOT_VIEW, false) -- 关闭职位任命界面
|
|
end
|
|
end
|
|
end
|
|
|
|
-- 申请社团职位
|
|
function GuildController:on40018()
|
|
local vo = SCMD40018.New(true)
|
|
if vo then
|
|
if vo.result == 1 then
|
|
Message.show("申请成功")
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
|
|
end
|
|
end
|
|
|
|
function GuildController:on40015()
|
|
local vo = SCMD40015.New(true)
|
|
if vo then
|
|
self.model:UpdateGuildBaseInfo(vo)
|
|
local main_vo = RoleManager:getInstance():GetMainRoleVo()
|
|
if main_vo then
|
|
main_vo:ChangeVar("guild_id",vo.guild_id)
|
|
main_vo:ChangeVar("guild_name",vo.guild_name)
|
|
main_vo:ChangeVar("position",vo.position)
|
|
main_vo:ChangeVar("position_name",vo.position_name)
|
|
if vo.guild_id == 0 then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40021) --请求社团权限
|
|
RedPacketModel:GetInstance():CheckGuildRedPacketRed()
|
|
-- 退出社团后要刷一遍所有的社团红点
|
|
self.model:CheckGuildRedDotAll()
|
|
-- GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 400, false)
|
|
self.model:Fire(GuildModel.RefreshGuildInfoEvt) --刷新社团主页基础信息
|
|
Message.show("您已经退出社团")
|
|
else
|
|
-- 关闭创建社团界面
|
|
GlobalEventSystem:Fire(EventName.OPEN_GUILD_CREATE_VIEW, false)
|
|
-- 请求社团协议数据
|
|
self:BatchRequesGuildEvent()
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
--社团ID广播给其他人
|
|
function GuildController:on40017()
|
|
local vo = SCMD40017.New(true)
|
|
if vo then
|
|
local role_vo = SceneManager.Instance:GetRoleVo(vo.role_id)
|
|
if role_vo then
|
|
role_vo:ChangeVar("guild_id",vo.guild_id)
|
|
role_vo:ChangeVar("guild_name",vo.guild_name)
|
|
role_vo:ChangeVar("position",vo.position)
|
|
role_vo:ChangeVar("position_name",vo.position_name)
|
|
end
|
|
end
|
|
end
|
|
|
|
--切换场景,打开对应的副本界面
|
|
function GuildController:ChangeScene()
|
|
local scene_mgr = SceneManager.Instance
|
|
-- 判断社团驻地情况
|
|
if scene_mgr:IsGuildWarScene(scene_mgr.last_scene_id) and not scene_mgr:IsGuildWarScene() then
|
|
self:SetMainUIVisible(true)
|
|
self.model:Fire(GuildModel.OPEN_GUILD_WAR_SCENE_VIEW, false)
|
|
GlobalEventSystem:Fire(EventName.SHOW_MAIN_VIP_ROOT, false, MainUIModel.ACTIVITY_MODE) --vip充值入口
|
|
--活动结束,才弹结算界面
|
|
if self.model.guild_war_info and self.model.guild_war_info.result then
|
|
self.model:Fire(GuildModel.GUILD_WAR_RESULT)
|
|
end
|
|
elseif scene_mgr:IsGuildWarScene() then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40500) --每次进入场景都发一次
|
|
self:SetMainUIVisible(false)
|
|
self.model:Fire(GuildModel.OPEN_GUILD_WAR_SCENE_VIEW, true)
|
|
GlobalEventSystem:Fire(EventName.SHOW_MAIN_VIP_ROOT, false, MainUIModel.ACTIVITY_MODE) --vip充值入口
|
|
elseif scene_mgr:IsGuildCSGRScene() then -- 本国团战入场判断
|
|
self.model:Fire(GuildModel.OPEN_CSGR_SCENE_VIEW, true)
|
|
self:SetMainUIVisible(false)
|
|
-- 缓存一次进场坐标
|
|
self.model.csgr_scene_last_pos.x, self.model.csgr_scene_last_pos.y = Scene.Instance:GetMainRole():GetRealPos()
|
|
local event_data = self.model:GetGuildEventByType(GuildEventType.GuildCSGR)
|
|
if event_data and event_data.status == 3 then
|
|
self.model:StartCSGRBossHpTimer()
|
|
end
|
|
elseif scene_mgr:IsGuildCSGRScene(scene_mgr.last_scene_id) and not scene_mgr:IsGuildCSGRScene() then -- 本国团战退出判断
|
|
self.model:Fire(GuildModel.OPEN_CSGR_SCENE_VIEW, false)
|
|
self.model:StopCSGRBossHpTimer() -- 清除boss血条表现计时器
|
|
self:SetMainUIVisible(true)
|
|
local result_data = self.model:GetGuildCSGRResultData()
|
|
if result_data then
|
|
self.model:Fire(GuildModel.OPEN_CSGR_RESULT_VIEW, true, result_data)
|
|
end
|
|
else
|
|
self.model:Fire(GuildModel.OPEN_GUILD_WAR_SCENE_VIEW, false)
|
|
self.model:Fire(EventName.OPEN_GUILD_SCENE_VIEW, false)
|
|
self.model:Fire(GuildModel.OPEN_BOSS_ROLL_VIEW, false)
|
|
-- self.model:ClearGuildBossRollData()
|
|
-- self.model.gboss_roll_result = {}
|
|
GlobalEventSystem:Fire(EventName.SHOW_MAIN_VIP_ROOT, false, MainUIModel.ACTIVITY_MODE) --vip充值入口
|
|
end
|
|
|
|
if scene_mgr:IsGuildScene() then
|
|
-- 如果是从星域幻魔场景通过活动进入驻地的话,需要将相应的隐藏标志量撤销
|
|
if scene_mgr:IsBossDesertedScene(scene_mgr:GetLastSceneId()) then
|
|
BossController.Instance:SetMainUIVisible(true, MainUIModel.GUILD_MODE)
|
|
end
|
|
-- 如果是从boss之家场景通过活动进入驻地的话,需要将相应的隐藏标志量撤销
|
|
if scene_mgr:IsBossHomeScene(scene_mgr:GetLastSceneId()) then
|
|
BossHomeController.Instance:SetMainUIVisible(true, MainUIModel.GUILD_MODE)
|
|
end
|
|
self:SetMainUIVisible(false, MainUIModel.GUILD_MODE)
|
|
self.model:Fire(EventName.OPEN_GUILD_SCENE_VIEW, true)
|
|
-- 如果需要自动挂机
|
|
if self.model._need_auto_botting or self.model:IsGuildCollectActive() then
|
|
GlobalEventSystem:Fire(EventName.STARTAUTOFIGHT)
|
|
end
|
|
self.model._need_auto_botting = false
|
|
elseif scene_mgr:IsGuildScene(scene_mgr:GetLastSceneId()) then
|
|
self:SetMainUIVisible(true, MainUIModel.GUILD_MODE)
|
|
self.model:Fire(EventName.OPEN_GUILD_SCENE_VIEW, false)
|
|
self.model._need_auto_botting = false
|
|
--------退出社团驻地的额外操作丢这
|
|
self.model.guild_collect_helper_info = {} --清空封印裂隙助战信息
|
|
self.model.guild_collect_confim_into_guild_scene = false
|
|
self.model.only_find_way_to_guild_collect_mon = false
|
|
self.model.need_go_support_guild_collect_after_40046 = false
|
|
self.model:ResetSelfGuildCollectSupportId()--手动重置当前的封印裂隙协助id
|
|
end
|
|
end
|
|
|
|
function GuildController:SetMainUIVisible( value ,mode)
|
|
mode = mode or MainUIModel.ACTIVITY_MODE
|
|
self:Fire(EventName.HIDE_TASK_TEAM_VIEW, not value, mode)--任务栏
|
|
GlobalEventSystem:Fire(EventName.SHOW_MAIN_TASK_ANNOUNCE_ROOT, not value, mode) --功能预告
|
|
GlobalEventSystem:Fire(EventName.CHANGE_RIGHT_TIP_ICON, not value, mode) --菜单伸展
|
|
end
|
|
|
|
--职位管理界面(暂时没用)
|
|
function GuildController:on40022( )
|
|
local vo = SCMD40022.New(true)
|
|
end
|
|
|
|
--批量任命(暂时没用)
|
|
function GuildController:on40024( )
|
|
local vo =SCMD40024.New(true)
|
|
end
|
|
|
|
function GuildController:on40025( )
|
|
local vo = SCMD40025.New(true)
|
|
if vo.error_code == 1 then
|
|
Message.show("修改成功", "success")
|
|
self.model:UpdateGuildNameAndFlag(vo)
|
|
self.model:Fire(GuildModel.RefreshGuildInfoEvt) --刷新社团主页基础信息
|
|
self.model:Fire(GuildModel.OPEN_GUILD_RENAME_VIEW, false)
|
|
else
|
|
ErrorCodeShow(vo.error_code)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40031()
|
|
local vo = SCMD40031.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("发起合并成功")
|
|
-- 请求社团合并信息
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40032)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40032()
|
|
local vo = SCMD40032.New(true)
|
|
self.model:SetGuildMergeInfo(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_MERGE_INFO)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.List, true)
|
|
end
|
|
|
|
function GuildController:on40033()
|
|
local vo = SCMD40033.New(true)
|
|
if vo.result == 1 then
|
|
if vo.type == 0 then -- 自己收到吞并回复
|
|
Message.show("您" .. (vo.opty == 0 and "拒绝" or "接受") .. "了对方社团的合并请求")
|
|
elseif vo.type == 1 then -- 发起方收到回复
|
|
Message.show("对方社团" .. (vo.opty == 0 and "拒绝" or "接受") .. "了您的合并请求")
|
|
end
|
|
-- 请求社团合并信息
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40032)
|
|
-- 如果同意了社团合并,则干掉接收方的全部的社团界面
|
|
if vo.opty == 1 and vo.type == 0 then
|
|
self.model:Fire(GuildModel.OPEN_GUILD_APPLY_MGR_VIEW, false)
|
|
self.model:Fire(GuildModel.OPEN_GUILD_POS_ALLOT_VIEW, false)
|
|
self.model:Fire(GuildModel.OPEN_REQUEST_MERGE_VIEW, false)
|
|
GlobalEventSystem:Fire(EventName.CLOSE_GUILD_MAIN_VIEW)
|
|
end
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40034( )
|
|
local vo = SCMD40034.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("取消合并请求成功")
|
|
-- 请求社团合并信息
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40032)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40026( )
|
|
local vo = SCMD40026.New(true)
|
|
if vo.errcode == 1 then
|
|
Message.show("解散社团成功")
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
|
|
-- 社团经验值和等级更新
|
|
function GuildController:on40029( )
|
|
local vo = SCMD40029.New(true)
|
|
-- 社团是否升级,升级了需要社团商城缓存
|
|
local guild_base_info = self.model:GetGuildBaseInfo()
|
|
if not IsTableEmpty(guild_base_info) and guild_base_info.guild_lv and guild_base_info.guild_lv ~= vo.guild_lv then
|
|
self.model:ClearGuildShopCfgCache()
|
|
end
|
|
self.model:UpdateGuildExpAndLv(vo)
|
|
self.model:Fire(GuildModel.RefreshGuildInfoEvt) --刷新社团主页基础信息
|
|
end
|
|
|
|
-- 玩家离开社团
|
|
function GuildController:on40030( )
|
|
local vo = SCMD40030.New(true)
|
|
self.model:UpdateMemberAfterKick(vo.role_id)
|
|
self.model:UpdateApplyMemberList(vo) -- 该玩家离开后,需要同步处理该玩家可能存在的申请信息
|
|
self.model:Fire(GuildModel.RefreshKickOutGuildEvt,vo.role_id)
|
|
end
|
|
|
|
function GuildController:on40027( )
|
|
local vo = SCMD40027.New(true)
|
|
if vo then
|
|
self.model:SetGuildShopGoodsList(vo.cargos)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Shop, true)
|
|
self.model:Fire(GuildModel.UPDATE_GOODS_LIST) --更新道具列表信息
|
|
end
|
|
end
|
|
|
|
function GuildController:on40028( )
|
|
local vo = SCMD40028.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("购买成功")
|
|
self.model:UpdateGuildShopData(vo)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Shop, true)
|
|
self.model:Fire(GuildModel.RefreshBuyGoodsItemEvt,vo) -- 刷新点击item数量
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
-- 更新社团公告修改次数信息
|
|
function GuildController:on40019( )
|
|
local vo = SCMD40019.New(true)
|
|
self.model:SetGuildAnnounceTimesData(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_ANNOUNCE_TIMES, vo)
|
|
end
|
|
|
|
function GuildController:on40035( )
|
|
local vo = SCMD40035.New(true)
|
|
-- print("Saber:GuildController [start:1453] vo ------------------------------------------")
|
|
-- PrintTable(vo)
|
|
self.model:SetGuildSpellListData(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_SL_DATA)
|
|
self.model:Fire(GuildModel.UPDATE_SELECTED_GUILD_SL_DATA)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Order, true)
|
|
end
|
|
|
|
function GuildController:on40036( )
|
|
local vo = SCMD40036.New(true)
|
|
if vo.result == 1 then
|
|
self.model:UpdateGuildSpellListDataStatus(vo)
|
|
self.model:Fire(GuildModel.UPDATE_SELECTED_GUILD_SL_DATA, vo.opty)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Order, true)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40037( )
|
|
local vo = SCMD40037.New(true)
|
|
if vo.result == 1 then
|
|
if vo.rid == 1 or vo.rid > 10 then
|
|
Message.show("邀请成功", "success")
|
|
elseif vo.rid == 2 then
|
|
Message.show("取消邀请成功", "success")
|
|
end
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40038( )
|
|
local vo = SCMD40038.New(true)
|
|
local function accept_callback()
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40039, vo.order, vo.rid)
|
|
end
|
|
local invite_data = {
|
|
layer_name = "Top",
|
|
invite_type = CommonModel.InviteTipsType.GuildSpellList,
|
|
accept_callback = accept_callback,
|
|
auto_close_time = 10,
|
|
inviter_name = vo.name,
|
|
inviter_lv = vo.lv,
|
|
inviter_id = vo.rid,
|
|
cfg_id = vo.cfg,
|
|
vip = vo.vip,
|
|
svip = vo.svip,
|
|
}
|
|
CommonController.Instance:Fire(EventName.SHOW_COMMON_INVITE_TIPS, invite_data)
|
|
end
|
|
|
|
function GuildController:on40039( )
|
|
local vo = SCMD40039.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("拼单成功,您的分身将协助进行拼单", "success")
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40040( )
|
|
local vo = SCMD40040.New(true)
|
|
self.model:UpdateGuildSpellListFinish(vo)
|
|
self.model:Fire(GuildModel.UPDATE_SELECTED_GUILD_SL_DATA)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Order, true)
|
|
self.model:Fire(GuildModel.OPEN_GUILD_SL_REWARD_VIEW, true, vo)
|
|
end
|
|
|
|
function GuildController:on40041( )
|
|
local vo = SCMD40041.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("感谢社员成功", "success")
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40042( )
|
|
local vo = SCMD40042.New(true)
|
|
-- 打开感谢界面
|
|
local new_data = {}
|
|
new_data.type = 2
|
|
new_data.support_cfg_id = vo.cfg
|
|
new_data.chat_msg = ""
|
|
new_data.boss_id = 0
|
|
new_data.role_list = {}
|
|
new_data.role_list[1] = vo
|
|
new_data.reward_list = {}
|
|
local sl_cfg = Config.Guildorder[vo.cfg]
|
|
local reward = sl_cfg and stringtotable(sl_cfg.thank_reward) or {}
|
|
for k, v in ipairs(reward) do
|
|
new_data.reward_list[k] = {
|
|
goods_type_id = v[1],
|
|
goods_id = v[2],
|
|
num = v[3],
|
|
}
|
|
end
|
|
self.model:SetGuildSupportAwardInfo(new_data)
|
|
MsgManager:getInstance():Add({type = Config.ConfigMainIcon.TipType.supportThank}, true)
|
|
end
|
|
|
|
function GuildController:on40065( )
|
|
local vo = SCMD40065.New(true)
|
|
self.model:UpdateGuildSpellListData(vo)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Order, true)
|
|
end
|
|
|
|
function GuildController:on40066( )
|
|
local vo = SCMD40066.New(true)
|
|
if vo.res == 1 then
|
|
Message.show("刷新成功", "success")
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
end
|
|
end
|
|
|
|
-- 更新社团资金
|
|
function GuildController:on40043( )
|
|
local vo = SCMD40043.New(true)
|
|
self.model:UpdateGuildFunds(vo)
|
|
self.model:Fire(GuildModel.RefreshGuildInfoEvt)
|
|
end
|
|
|
|
function GuildController:on40063( )
|
|
local vo = SCMD40063.New(true)
|
|
self.model:SetGuildSceneMemberNum(vo.num)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_SCENE_MEMBER_NUM, vo.num)
|
|
end
|
|
|
|
function GuildController:on40044( )
|
|
local vo = SCMD40044.New(true)
|
|
--社团采集活动:进入驻地时拿一次封印次数
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40803)--拿一次封印次数
|
|
if vo.errcode ~= 1 then
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40045( )
|
|
local vo = SCMD40045.New(true)
|
|
if vo.errcode ~= 1 then
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40067( )
|
|
local vo = SCMD40067.New(true)
|
|
self.model:UpdateGuildMemberOnlineFlag(vo)
|
|
self.model:Fire(GuildModel.RefreshMainViewMemberInfoEvt)
|
|
end
|
|
|
|
function GuildController:on40400( )
|
|
local vo = SCMD40400.New(true)
|
|
self.model:SetPersonalGuildActive(vo)
|
|
self.model:Fire(GuildModel.UPDATE_ROLE_ACTIVE_DATA)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_TASK_PROGRESS)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Active, true)
|
|
end
|
|
|
|
function GuildController:on40401( )
|
|
local vo = SCMD40401.New(true)
|
|
self.model:UpdateActiveTask(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_TASK_PROGRESS)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Active, true)
|
|
end
|
|
|
|
function GuildController:on40402( )
|
|
local vo = SCMD40402.New(true)
|
|
self.model:SetGuildActiveData(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_ACTIVE_DATA)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Active, true)
|
|
end
|
|
|
|
function GuildController:on40403( )
|
|
local vo = SCMD40403.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("领取成功")
|
|
self.model:UpdateActiveStage(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_ACTIVE_REWARD, vo.opty)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Active, true)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40406( )
|
|
local vo = SCMD40406.New(true)
|
|
-- 处理社团活跃的广播
|
|
self.model:UpdateGuildActive(vo.labors)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_ACTIVE_DATA)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Active, true)
|
|
end
|
|
|
|
function GuildController:on40407( )
|
|
local vo = SCMD40407.New(true)
|
|
if vo.res == 1 then
|
|
Message.show("领取成功", "success")
|
|
self.model:UpdateGuildActivePersonalActive(vo.labors)
|
|
self.model:Fire(GuildModel.UPDATE_ROLE_ACTIVE_DATA)
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40404( )
|
|
local vo = SCMD40404.New(true)
|
|
self.model:UpdateGuildLogInfo(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_LOG)
|
|
end
|
|
|
|
function GuildController:on40405( )
|
|
local vo = SCMD40405.New(true)
|
|
self.model:SetGuildLogInfo(vo.logs)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_LOG)
|
|
end
|
|
|
|
---------- 社团采集活动协议 ----------start
|
|
--社团采集活动状态
|
|
function GuildController:on40801()
|
|
local vo = SCMD40801.New(true)
|
|
if vo then
|
|
self.model:StopGuildCollectTimer()
|
|
self.model:SetGuildCollectActivityState(vo)--保存采集活动状态信息并启动倒计时
|
|
self.model:SetGuildEventByType(GuildEventType.NoonCollect, vo)-- 社团活动玩法相关的数据添加
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, GuildEventType.NoonCollect)--活动开始与结束都要触发事件去处理scene界面显示
|
|
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40803)--拿一次封印次数
|
|
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Event)
|
|
self.model:Fire(GuildModel.UPDATE_RED_DOT_BY_TYPE, Config.ConfigGuild.TabId.Event)--刷新活动界面tabitem的红点
|
|
end
|
|
end
|
|
|
|
--社团采集活动参与信息 获取活动参与次数
|
|
function GuildController:on40802()
|
|
local vo = SCMD40802.New(true)
|
|
if vo then
|
|
self.model:SetGuildCollectActivityInfo(vo)
|
|
self.model:Fire(GuildModel.UODATE_GUILD_COLLECT_ACTIVITY_TIMES)--刷新社团活动界面的采集活动次数
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_COLLECT_INFO_CON)--刷新活动界面右上角的信息
|
|
end
|
|
end
|
|
|
|
--采集场景右上角信息 后端主推封印次数
|
|
function GuildController:on40803()
|
|
local vo = SCMD40803.New(true)
|
|
if vo then
|
|
self.model:SetGuildCollectActivityDetailInfo(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_COLLECT_INFO_CON)--刷新采集活动进行过程中右上角的信息
|
|
end
|
|
end
|
|
|
|
--后端主推采集活动状态
|
|
function GuildController:on40804()
|
|
local vo = SCMD40804.New(true)
|
|
if vo then
|
|
self.model:SetGuildCollectActivityState2(vo)
|
|
if vo.state == 1 then--活动开始了
|
|
--保存活动状态后立即用01协议请求当次活动的结束时间
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40801)--活动状态
|
|
else--活动结束了
|
|
self.model:SetGuildEventByType(GuildEventType.NoonCollect, vo)-- 社团活动玩法相关的数据添加
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, GuildEventType.NoonCollect)--活动开始与结束都要触发事件去处理scene界面显示
|
|
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40803)--拿一次封印次数
|
|
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Event)
|
|
self.model:Fire(GuildModel.UPDATE_RED_DOT_BY_TYPE, Config.ConfigGuild.TabId.Event)--刷新活动界面tabitem的红点
|
|
end
|
|
--请求一下新的活动参与次数
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40802)--活动状态
|
|
end
|
|
end
|
|
|
|
--后端主推采集活动怪物出现
|
|
function GuildController:on40805()
|
|
local vo = SCMD40805.New(true)
|
|
-------怪物出现,给帮忙
|
|
if TimeUtil:getServerTime() - self.model.last_chat_collect_support_time >= 60 then--聊天有重复内容1分钟冷却cd
|
|
local content = "封印裂隙时有怪物入侵社团驻地,请求团内成员协助击杀 <color=#2cf89a><a@guildScene>[立即前往]</a></color>"
|
|
ChatModel:getInstance():Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_GUILD,content,0,nil,ChatModel.CHAT_COMMON_TYPE.SYSTEM)
|
|
Message.show("您触发了裂隙怪物!已发送协助信息~")
|
|
self.model.last_chat_collect_support_time = TimeUtil:getServerTime()
|
|
end
|
|
end
|
|
|
|
--场景当前剩余采集怪数量
|
|
function GuildController:on40806( )
|
|
local vo = SCMD40806.New(true)
|
|
self.model:SetGuildCollectLeftMon(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_COLLECT_LEFT_COLLECT_MON_NUM)
|
|
end
|
|
|
|
--封印裂隙协助者助战信息
|
|
function GuildController:on40807( )
|
|
local vo = SCMD40807.New(true)
|
|
self.model:SetGuildCollectHelperInfo(vo)
|
|
self.model:Fire(GuildModel.ANS_GUILD_COLLECT_HELP_LIST)
|
|
end
|
|
|
|
--封印裂隙协助者请求怪物信息,一个协助id对应一个怪物唯一id
|
|
function GuildController:on40808( )
|
|
local vo = SCMD40808.New(true)
|
|
local is_guild_scene = SceneManager:getInstance():IsGuildScene()
|
|
if is_guild_scene then
|
|
self.model:Fire(GuildModel.FIND_WAY_TO_GUILD_COLLECT_HELP_MON,vo)
|
|
else
|
|
if vo.errcode == 0 then--可以切场景
|
|
-- 直接进场景
|
|
self.model.only_find_way_to_guild_collect_mon = true
|
|
self.model.temp_guild_collect_mon_data = vo
|
|
self.model:Fire(GuildModel.ENTER_GUILD_BASE)
|
|
else
|
|
Message.show("不可前往协助")
|
|
end
|
|
end
|
|
end
|
|
|
|
--封印裂隙通知协助更新
|
|
function GuildController:on40811( )
|
|
local vo = SCMD40811.New(true)
|
|
self.model:UpdateGuildSupportInfo(vo)
|
|
end
|
|
|
|
--自己当前封印裂隙协助的Id
|
|
function GuildController:on40812(vo)
|
|
local vo = SCMD40812.New(true)
|
|
--保存封印裂隙的当前唯一协助id
|
|
self.model:SetSelfGuildCollectSupportId(vo.support_sid)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_COLLECT_NOW_SUPPORT_ID)
|
|
end
|
|
---------- 社团采集活动协议 ----------end
|
|
|
|
--------------------------------------------------------------------
|
|
-- 社团boss协议
|
|
function GuildController:on40600( )
|
|
local vo = SCMD40600.New(true)
|
|
local boss_type = vo.act == 1 and GuildEventType.GuildBossNoon or GuildEventType.GuildBossNight
|
|
self.model:SetGuildEventByType(boss_type, vo)
|
|
self.model:CheckGuildAuctionShow(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, boss_type)
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40607)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_BOSS_INFO)
|
|
-- 检查红点
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Event)
|
|
end
|
|
|
|
function GuildController:on40601( )
|
|
local vo = SCMD40601.New(true)
|
|
self.model:ChangeVar("guild_boss_hp_data", vo, false, true)
|
|
end
|
|
|
|
function GuildController:on40602( )
|
|
local vo = SCMD40602.New(true)
|
|
local boss_type = vo.act == 1 and GuildEventType.GuildBossNoon or GuildEventType.GuildBossNight
|
|
self.model:SetGuildBossRank(boss_type, GuildBossRankType.Personal, vo) -- 个人伤害榜单数据
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_BOSS_RANK, GuildBossRankType.Personal)
|
|
--刷新总榜的时候也要及时刷新自己的数据
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40604, vo.act,0)
|
|
end
|
|
|
|
function GuildController:on40603( )
|
|
local vo = SCMD40603.New(true)
|
|
local boss_type = vo.act == 1 and GuildEventType.GuildBossNoon or GuildEventType.GuildBossNight
|
|
self.model:SetGuildBossRank(boss_type, GuildBossRankType.Guild, vo) -- 社团伤害榜单数据
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_BOSS_RANK, GuildBossRankType.Guild)
|
|
--刷新总榜的时候也要及时刷新自己的数据
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40604, vo.act,1)
|
|
end
|
|
|
|
function GuildController:on40604( )
|
|
local vo = SCMD40604.New(true)
|
|
local boss_type = vo.act == 1 and GuildEventType.GuildBossNoon or GuildEventType.GuildBossNight
|
|
self.model:SetGuildBossPersonalRank(boss_type, vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_BOSS_PERSONAL_RANK, vo.opty)
|
|
end
|
|
|
|
function GuildController:on40605( )
|
|
local vo = SCMD40605.New(true)
|
|
if TableSize(vo.guild_awards) > 0 then
|
|
MarketModel:getInstance():SetHasGuildGoods(true)
|
|
end
|
|
self:OpenGuildBossResultView(vo)
|
|
end
|
|
-- 打开社团boss的结算界面
|
|
function GuildController:OpenGuildBossResultView(vo)
|
|
self.model:SortGuildBossResult(vo)
|
|
local result_info = {
|
|
special_duntype = BaseDungeonModel.DUN_TYPE.GuildBoss,
|
|
mrank = vo.mrank,
|
|
grank = vo.grank,
|
|
role_awards = vo.role_awards,
|
|
guild_awards = vo.guild_awards,
|
|
result = BaseDungeonModel.RESULT.SUCCESS,
|
|
}
|
|
-- 延时打开结算界面
|
|
local function delay_method( )
|
|
self.model:Fire(GuildModel.OPEN_GUILD_BOSS_RESULT_VIEW, true, result_info)
|
|
end
|
|
setTimeout(delay_method, 3)
|
|
end
|
|
|
|
function GuildController:on40606( )
|
|
local vo = SCMD40606.New(true)
|
|
self.model:SetGuildBossInvincible(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILDBOSS_INVINCIBLE, vo)
|
|
end
|
|
|
|
--社团boss鼓舞数据
|
|
function GuildController:on40607( )
|
|
local vo = SCMD40607.New(true)
|
|
self.model:SetGuildBossEncourageData(vo)
|
|
end
|
|
|
|
--鼓舞
|
|
function GuildController:on40608( )
|
|
local vo = SCMD40608.New(true)
|
|
if vo.result ~= 1 then
|
|
ErrorCodeShow(vo.result)
|
|
else
|
|
Message.show("鼓舞成功")
|
|
--鼓舞成功后,主动请求07协议刷新一下剩余的次数
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40607)
|
|
end
|
|
end
|
|
|
|
--广播更新社团鼓舞次数
|
|
function GuildController:on40609( )
|
|
local vo = SCMD40609.New(true)
|
|
self.model:UpdateGuildBossEncourageGuildTimes(vo)
|
|
end
|
|
|
|
-- 社团boss采集逻辑
|
|
function GuildController:on40610( )
|
|
local vo = SCMD40610.New(true)
|
|
self.model:SetCurGuildBossCollectDropId(vo.drop_id)
|
|
if vo.res == 1 then
|
|
if vo.opty == GuildModel.GBossPickOpty.Succeed then -- 采集结束
|
|
Message.show("拾取成功")
|
|
GlobalEventSystem:Fire(SceneEventType.PICK_SCENE_DROP_ITEM, vo)
|
|
elseif vo.opty == GuildModel.GBossPickOpty.Cancel then -- 采集中断
|
|
GuildModel:getInstance():Fire(GuildModel.STOP_COLLECT_ITEM)
|
|
elseif vo.opty == GuildModel.GBossPickOpty.Start then -- 采集开始
|
|
-- GlobalEventSystem:Fire(SceneEventType.GBOSS_PICK_START, vo)
|
|
self.model:Fire(GuildModel.START_TO_COLLECT_ITEM, vo)
|
|
end
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40611( )
|
|
local vo = SCMD40611.New(true)
|
|
self.model:Fire(GuildModel.GUILD_BOSS_DROP_EVENT, vo)
|
|
end
|
|
|
|
|
|
function GuildController:on40612( )
|
|
local vo = SCMD40612.New(true)
|
|
local scene_mgr = SceneManager:getInstance()
|
|
if scene_mgr:IsShowDynamicInfoScene() then
|
|
local data = {
|
|
role_vo_1 = vo, --我方
|
|
role_vo_2 = nil, --敌方
|
|
type = 4, --UI类型
|
|
is_break = 1, --击杀情况(类型2需要使用)
|
|
desc = "", --描述
|
|
times = vo.times, --鼓舞次数
|
|
total = vo.total, --鼓舞伤害
|
|
}
|
|
GlobalEventSystem:Fire(EventName.SHOW_DYNAMIC_INFO_TIP, data)
|
|
end
|
|
-- 鼓舞横幅
|
|
if scene_mgr:IsGuildScene() then
|
|
local damage_percentage = self.model:GetGuildBossKV("encourage_hurt")/100 --万分比伤害,这里除去100拿百分比伤害
|
|
local damage = vo.total * damage_percentage
|
|
local special_tip_data = {
|
|
type = SpecialTipType.SubTip1,
|
|
sepeical_str = string.format("<color=%s>%s</color> 使用了 <color=%s>社团鼓舞</color>,全员 <color=%s>伤害+%s%%</color>",
|
|
"#a9c1e1", vo.name, "#2cf89a", "#fdffc2", damage),
|
|
need_flash = false,
|
|
show_time = 3,
|
|
}
|
|
CommonController.Instance:Fire(EventName.OPEN_SPECIALTIPVIEW, special_tip_data)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40613( )
|
|
local vo = SCMD40613.New(true)
|
|
if vo and TableSize(vo.roll_list) > 0 then
|
|
-- 缓存骰点信息,给40614协议做飘字表现用
|
|
self.model:SetGuildBossRollData(vo) -- 该方法会清除掉所有骰点的缓存,所以如果出现画面的内容消失的问题需要检查这个协议的返回情况
|
|
local red_num = self.model:CheckGuildBossNumRed()
|
|
self.model:Fire(GuildModel.UPDATE_BOSS_ROLL_DATA)
|
|
self.model:Fire(GuildModel.UPDATE_BOSS_ROLL_RECORD)
|
|
self.model:Fire(GuildModel.UPDATE_SCENE_FUNCBTN_NUM_RED, 4062)
|
|
if SceneManager:getInstance():IsGuildScene() and red_num > 0 then -- 社团场景内才弹出界面
|
|
self.model:Fire(GuildModel.OPEN_BOSS_ROLL_VIEW, true)
|
|
end
|
|
end
|
|
end
|
|
|
|
function GuildController:on40614( )
|
|
local vo = SCMD40614.New(true)
|
|
if vo.result == 1 then
|
|
self.model:UpdateGuildBossRollData(vo)
|
|
self.model:CheckGuildBossNumRed()
|
|
self.model:Fire(GuildModel.UPDATE_BOSS_ROLL_DATA)
|
|
self.model:Fire(GuildModel.UPDATE_SCENE_FUNCBTN_NUM_RED, 4062)
|
|
local str = string.format("%s成功", vo.option == 1 and "参与骰点" or "放弃骰点")
|
|
Message.show(str, "success")
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40615( )
|
|
local vo = SCMD40615.New(true)
|
|
if vo.result == 1 then
|
|
self.model:SetGuildBossRollIsFinished(true)
|
|
self.model:GetGuildBossRollHighestRoleId()
|
|
self.model:CheckGuildBossNumRed()
|
|
self.model:Fire(GuildModel.UPDATE_SCENE_FUNCBTN_NUM_RED, 4062)
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40616( )
|
|
local vo = SCMD40616.New(true)
|
|
self.model:SetGuildBossRollRecord(vo)
|
|
self.model:CheckGuildBossNumRed()
|
|
self.model:Fire(GuildModel.UPDATE_BOSS_ROLL_RECORD)
|
|
self.model:Fire(GuildModel.UPDATE_SCENE_FUNCBTN_NUM_RED, 4062)
|
|
end
|
|
|
|
-- ############## 查询协助信息 ##############
|
|
function GuildController:on40046( )
|
|
local vo = SCMD40046.New(true)
|
|
print("40046:")
|
|
-- PrintTable(vo)
|
|
if #vo.support_list == 0 then--如果没协助了 那就取消红点
|
|
self.need_add_suppport_tip = true
|
|
else
|
|
local sort_func = function ( a, b )
|
|
return a.show_time > b.show_time
|
|
end
|
|
table.sort(vo.support_list, sort_func)
|
|
end
|
|
if self.need_add_suppport_tip then--是否需要添加tip
|
|
-- local server_info = self.model:GetGuildSupportInfo()
|
|
-- local have_red = false--是否有红点
|
|
-- local find_data = nil--找到不相同的协助数据
|
|
-- if server_info and #server_info > 0 and #vo.support_list > 0 then--不存在则找到最新的
|
|
-- local new_support_info = {}
|
|
-- for k,v in pairs(server_info) do
|
|
-- new_support_info[v.support_sid] = v
|
|
-- end
|
|
-- for k,v in ipairs(vo.support_list) do
|
|
-- if not new_support_info[v.support_sid] then
|
|
-- have_red = true
|
|
-- find_data = v
|
|
-- break
|
|
-- end
|
|
-- end
|
|
-- elseif #vo.support_list > 0 then
|
|
-- have_red = true
|
|
-- find_data = vo.support_list[#vo.support_list]
|
|
-- end
|
|
elseif not self.model.is_check_support_list then
|
|
MsgManager:getInstance():Remove(Config.ConfigMainIcon.TipType.support)
|
|
end
|
|
|
|
if self.model.is_check_support_list then
|
|
self.model.is_check_support_list = false
|
|
self.model.support_red_list[GuildModel.SupportTab.List] = #vo.support_list > 0
|
|
self.model:UpdateSupportMainIconRedDot()
|
|
end
|
|
|
|
-- self.model:SetDaliyReputation(vo.guild_daliy_reputation)
|
|
self.model:SetSelfGuildSupportId(vo.self_support_sid)
|
|
self.model:SetGuildSupportStatus(vo.self_support_status)
|
|
self.model:SetGuildSupportInfo(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_SUPPOR_INFO,40046)
|
|
end
|
|
|
|
-- ############## 接单方感谢信界面信息 ################
|
|
function GuildController:on40047( )
|
|
local vo = SCMD40047.New(true)
|
|
-- print("40047:")
|
|
-- PrintTable(vo)
|
|
-- local new_data = {}
|
|
-- new_data.type = vo.type
|
|
-- new_data.support_cfg_id = vo.support_cfg_id
|
|
-- new_data.chat_msg = vo.chat_msg
|
|
-- new_data.boss_id = vo.boss_id
|
|
-- new_data.role_list = {}
|
|
-- new_data.role_list[1] = vo
|
|
-- new_data.reward_list = vo.reward_list
|
|
-- self.model:SetGuildSupportAwardInfo(new_data)
|
|
-- MsgManager:getInstance():Add({type=Config.ConfigMainIcon.TipType.supportThank},true)
|
|
end
|
|
|
|
-- ############## 请求方获得感谢信礼包 ################
|
|
function GuildController:on40048( )
|
|
local vo = SCMD40048.New(true)
|
|
print("40048:")
|
|
local cur_choose_thank_data = {
|
|
type = vo.type,
|
|
support_id = vo.support_id,
|
|
}
|
|
if vo.option_type == 1 then -- 感谢方操作
|
|
if vo.type == GuildModel.SupportThankType.Normal then -- 通用协助,常规流程
|
|
self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_TIP_VIEW, cur_choose_thank_data)
|
|
elseif vo.type == GuildModel.SupportThankType.SpellList then -- 社团拼单完成,判断定制的感谢通知
|
|
self.model:ShowGuildSpellListThankView(vo.support_id, vo.option_type)
|
|
end
|
|
elseif vo.option_type == 2 then -- 被感谢方,主界面弹出tips按钮
|
|
self.model.cur_choose_thank_data = cur_choose_thank_data
|
|
MsgManager:getInstance():Add({type = Config.ConfigMainIcon.TipType.supportThank}, true)
|
|
end
|
|
--doto 这里要弹小弹窗
|
|
-- PrintTable(vo)
|
|
-- self.model:SetGuildSupportThankId(vo.goods_id)
|
|
end
|
|
|
|
function GuildController:on40049( )
|
|
local vo = SCMD40049.New(true)
|
|
print("40049:")
|
|
PrintTable(vo)
|
|
-- self.model:SetGuildSupportThankInfo(vo)--2021.4.14功能改版不需要了
|
|
-- self.model:Fire(GuildModel.UPDATE_GUILD_SUPPOR_THANK_INFO)
|
|
end
|
|
|
|
function GuildController:on40050( )
|
|
local vo = SCMD40050.New(true)
|
|
if vo.err_code == 1 then
|
|
Message.show("感谢已发送")
|
|
-- 关闭感谢界面
|
|
if self.GuildSupportThankView and self.GuildSupportThankView:HasOpen() then
|
|
self.GuildSupportThankView:Close()
|
|
end
|
|
self.model:Fire(GuildModel.OPEN_GUILD_SL_THANK_VIEW, false)
|
|
self.model.is_start_open_support_continue = GuildModel.SupportType.Thank--开始连开
|
|
else
|
|
ErrorCodeShow(vo.err_code)
|
|
end
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40068)--不论成功失败要刷新协助感谢列表
|
|
end
|
|
|
|
function GuildController:on40051( )
|
|
local vo = SCMD40051.New(true)
|
|
if vo.errcode == 1 then
|
|
if vo.module == 500 and vo.sub_module == 1 then
|
|
local text = EscortModel:getInstance():GetMyEscortName()
|
|
local my_name = RoleManager.Instance.mainRoleInfo.name
|
|
local role_id = RoleManager.Instance.mainRoleInfo.role_id
|
|
local content = string.format("我正在进行<color=%s>%s</color>,请各位大佬快来帮忙!<a@escortHelp@%s@%s@%s></a>", ColorUtil.PURPLE_DARK, text, vo.support_sid,my_name,role_id)
|
|
ChatModel:getInstance():Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_GUILD,content,nil,nil,ChatModel.CHAT_COMMON_TYPE.SYSTEM)
|
|
end
|
|
Message.show("协助请求已发送")
|
|
self.model.support_is_self_send = true
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40052( )
|
|
local vo = SCMD40052.New(true)
|
|
if vo.errcode == 1 then
|
|
if self.GuildSupportInfoMainView and self.GuildSupportInfoMainView:HasOpen() then
|
|
self.GuildSupportInfoMainView:Close()
|
|
end
|
|
|
|
--如果是封印裂隙的前往协助,不要请求40046,太频繁了
|
|
if vo.support_cfg_id == 2 and self.model:IsGuildCollectActive() and SceneManager.Instance:IsGuildScene() then
|
|
--封印裂隙前往协助后后端会主推40812协议,一些操作再40812里处理
|
|
return
|
|
elseif vo.support_cfg_id == GuildSupportInfoItem.CFG_TYPE.ANSWER then
|
|
self.model:InitGuildQuizData( vo.support_sid )
|
|
self.model:Fire(GuildModel.OPEN_GUILD_QUIZ_VIEW, true)
|
|
elseif vo.support_cfg_id == GuildSupportInfoItem.CFG_TYPE.GUILD_BOSS then
|
|
local info = self.model:GetGuildSupportInfoById(vo.support_sid)
|
|
local bosspower, end_time, boss_id, dun_id, status = self.model:ParseGuildSupportData(info.kv_data)
|
|
if dun_id then
|
|
BaseDungeonModel:getInstance():Fire(BaseDungeonModel.REQUEST_CCMD_EVENT, 61001, dun_id, 0)
|
|
end
|
|
end
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
|
|
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40046)
|
|
end
|
|
|
|
function GuildController:on40053( )
|
|
local vo = SCMD40053.New(true)
|
|
if vo.errcode == 1 then
|
|
if vo.support_cfg_id ~= 2 then--如果是封印裂隙的取消协助,不请求46协议,太频繁了
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40046)
|
|
end
|
|
if SceneManager.Instance:IsBossDesertedScene() then--如果在废都幻魔里面的话得清数据(废都幻魔和赏金boss协助共用同一个逻辑)
|
|
BossModel:GetInstance():LeaveSceneClear(Config.ConfigBoss.ModuleId.Money)
|
|
end
|
|
local scene = Scene:getInstance()
|
|
local target = scene:GetClickTarget()
|
|
if target and target:GetType() == SceneBaseType.Monster then
|
|
--选中怪物的话要取消选中,不然会攻击一些不可攻击的对象
|
|
scene:CancelClickTarget()
|
|
end
|
|
|
|
--如果是封印裂隙取消了协助,要通知右侧tips状态变更
|
|
if vo.support_cfg_id == 2 and self.model:IsGuildCollectActive() and SceneManager.Instance:IsGuildScene() then
|
|
self.model:ResetSelfGuildCollectSupportId()
|
|
self.model:Fire(GuildModel.GUILD_COLLECT_SUPPORT_CANCEL)
|
|
end
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40054( )
|
|
local vo = SCMD40054.New(true)
|
|
if vo.errcode == 1 then
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40046)
|
|
if vo.role_id ~= RoleManager.Instance.mainRoleInfo.role_id and GoodsModel:getInstance():GetDaliyReputation() < GoodsModel:getInstance():GetReputationMaxNum() then
|
|
self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_RESULT_VIEW,vo)
|
|
end
|
|
if SceneManager.Instance:IsBossDesertedScene() then--如果在废都幻魔里面的话得清数据(废都幻魔和赏金boss协助共用同一个逻辑)
|
|
BossModel:GetInstance():LeaveSceneClear(Config.ConfigBoss.ModuleId.Money)
|
|
end
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40055( )
|
|
local vo = SCMD40055.New(true)
|
|
if vo.errcode == 1 then
|
|
-- local self_support_sid = self.model:GetSelfGuildSupportId()
|
|
if vo.is_in_support == 0 and vo.support_id == 0 then--自己才需要判断
|
|
Message.show("协助已结束")
|
|
self.model:SetGuildSupportStatus(0)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_SUPPOR_INFO,40055)
|
|
end
|
|
if SceneManager.Instance:IsBossDesertedScene() then--如果在废都幻魔里面的话得清数据(废都幻魔和赏金boss协助共用同一个逻辑)
|
|
BossModel:GetInstance():LeaveSceneClear(Config.ConfigBoss.ModuleId.Money)
|
|
end
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40056( )
|
|
local vo = SCMD40056.New(true)
|
|
self.model.support_red_list[vo.type] = vo.length > 0
|
|
self.model:UpdateSupportMainIconRedDot()
|
|
if vo.type == GuildModel.SupportTab.List then
|
|
self.need_add_suppport_tip = true
|
|
self.need_show_guild_collect_support_view = true--只有在后端主推有新协助时才能打开协助界面
|
|
elseif vo.type == GuildModel.SupportTab.Thank then
|
|
self:Fire(GuildModel.UPDATE_SUPPORT_THANK_LIST)
|
|
elseif vo.type == GuildModel.SupportTab.Gift then
|
|
self:Fire(GuildModel.UPDATE_SUPPORT_GIFT_LIST)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40068( )
|
|
local vo = SCMD40068.New(true)
|
|
self.model:SetSupportThankList(vo.info_list)
|
|
if self.model.is_start_open_support_continue then--开始连开模式
|
|
local list = self.model:GetSupportThankList()
|
|
for k,v in ipairs(list) do
|
|
if v.is_send == 0 then
|
|
if v.type == GuildModel.SupportThankType.Normal then
|
|
self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_THANK_VIEW, GuildModel.SupportType.Thank, v)
|
|
self.model.is_start_open_support_continue = nil--没找到就停止
|
|
break
|
|
elseif v.type == GuildModel.SupportThankType.SpellList then
|
|
self.model:Fire(GuildModel.OPEN_GUILD_SL_THANK_VIEW, true, v)
|
|
self.model.is_start_open_support_continue = nil--没找到就停止
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function GuildController:on40069( )
|
|
local vo = SCMD40069.New(true)
|
|
-- print("huangcong:GuildController [start:2416] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("huangcong:GuildController [end]")
|
|
self.model:SetSupportGiftList(vo.info_list)
|
|
if self.model.is_start_open_support_continue then--开始连开模式
|
|
local list = self.model:GetSupportGiftList()
|
|
for k,v in ipairs(list) do
|
|
if v.is_get ~= 1 then
|
|
local data = DeepCopy(v)
|
|
data.role_list = {{
|
|
name = v.name,
|
|
picture = v.picture,
|
|
role_id = v.role_id,
|
|
sex = v.sex,
|
|
sup_vip_type = v.sup_vip_type,
|
|
vip_flag = v.vip_flag,
|
|
profile_photo_id = v.profile_photo_id,
|
|
dress_board_id = v.dress_board_id,
|
|
}
|
|
}
|
|
self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_THANK_VIEW,GuildModel.SupportType.Award,data)
|
|
self.model.is_start_open_support_continue = nil--没找到就停止
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function GuildController:on40070( )
|
|
local vo = SCMD40070.New(true)
|
|
if vo.result == 1 then
|
|
Message.show("收下谢礼","success")
|
|
-- 关闭感谢界面
|
|
if self.GuildSupportThankView and self.GuildSupportThankView:HasOpen() then
|
|
self.GuildSupportThankView:Close()
|
|
end
|
|
-- self.model:Fire(GuildModel.OPEN_GUILD_SL_THANK_VIEW, false)
|
|
self.model.is_start_open_support_continue = GuildModel.SupportType.Award--开始连开
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40069)--不论成功失败要刷新领取协助感谢列表
|
|
else
|
|
ErrorCodeShow(vo.result)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40072( )
|
|
local vo = SCMD40072.New(true)
|
|
if vo.result == 1 then
|
|
-- 延时更新社团成员信息
|
|
local function req_new_menber_list()
|
|
self.model:Fire(GuildModel.RequestMemberViewMemberInfoEvt)
|
|
end
|
|
TimeManager.GetInstance():StartTime("Guild_Req_New_Menber_list", 2, req_new_menber_list)
|
|
end
|
|
end
|
|
|
|
function GuildController:on40057( )
|
|
local vo = SCMD40057.New(true)
|
|
self.model:SetGuildEventByType(GuildEventType.GuildParty, vo)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Event, true)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, GuildEventType.GuildParty)
|
|
end
|
|
|
|
function GuildController:on40058( )
|
|
local vo = SCMD40058.New(true)
|
|
self.model:SetGuildPartyExpData(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILDPARTY_EXPDATA)
|
|
end
|
|
|
|
function GuildController:on40059( )
|
|
local vo = SCMD40059.New(true)
|
|
self.model:UpdateGuildPartyExp(vo)
|
|
self.model:Fire(GuildModel.UPDATE_GUILDPARTY_EXPDATA)
|
|
end
|
|
|
|
--取消协助把消息发送给请求者
|
|
function GuildController:on40061( )
|
|
local vo = SCMD40061.New(true)
|
|
self.model:Fire(GuildModel.BOARD_GUILD_SUPPOR_REMOVE, vo.role_id)
|
|
end
|
|
|
|
function GuildController:on40064( )
|
|
local vo = SCMD40064.New(true)
|
|
if vo.res == 1 then
|
|
Message.show("召唤社员信息发布成功", "success")
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
end
|
|
end
|
|
|
|
-----------------------本服团战 ---------------------------
|
|
|
|
-- 活动状态
|
|
function GuildController:on40500( )
|
|
local vo = SCMD40500.New(true)
|
|
self.model:GuildWarSetInfo(vo.begin_time,vo.end_time,vo.score, vo.pool_info)
|
|
|
|
end
|
|
|
|
-- 进入战场
|
|
function GuildController:on40501( )
|
|
local vo = SCMD40501.New(true)
|
|
if vo.res ~= 0 then
|
|
if vo.res == 4050006 then
|
|
self.model:Fire(GuildModel.OPEN_SELECT_SERVER)
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40500)
|
|
end
|
|
ErrorCodeShow(vo.res)
|
|
end
|
|
end
|
|
|
|
-- 退出战场
|
|
function GuildController:on40502( )
|
|
local vo = SCMD40502.New(true)
|
|
end
|
|
|
|
-- 战场信息-个人积分-服务端主推
|
|
function GuildController:on40503( )
|
|
local vo = SCMD40503.New(true)
|
|
self.model:GuildWarSetScore(vo.score)
|
|
end
|
|
|
|
-- 战场信息-个人积分排名
|
|
function GuildController:on40504( )
|
|
local vo = SCMD40504.New(true)
|
|
self.model:GuildWarSetRankList(vo.rank, 1)
|
|
end
|
|
|
|
-- 战场信息-公会积分排名
|
|
function GuildController:on40505( )
|
|
local vo = SCMD40505.New(true)
|
|
self.model:GuildWarSetRankList(vo.rank, 2)
|
|
end
|
|
|
|
-- 战场信息-进入采集状态
|
|
function GuildController:on40506( )
|
|
local vo = SCMD40506.New(true)
|
|
self.model:GuideWarSetPickState(vo.id)
|
|
end
|
|
|
|
-- 战场信息-采集提交
|
|
function GuildController:on40507( )
|
|
local vo = SCMD40507.New(true)
|
|
self.model:GuideWarGiveInPickResult()
|
|
end
|
|
|
|
-- 战场信息-结算界面-服务端主推
|
|
function GuildController:on40508( )
|
|
local vo = SCMD40508.New(true)
|
|
self.model:GuildWarSetResult(vo.top_guild, vo.top_guild_chief, vo.my_guild_rank, vo.my_personal_rank, vo.score, vo.kill_rank)
|
|
end
|
|
|
|
-- 上期明星社团
|
|
function GuildController:on40509( )
|
|
local vo = SCMD40509.New(true)
|
|
self.model:GuildWarSetLastMvp(vo)
|
|
end
|
|
|
|
-- 战场信息-BOSS出生
|
|
function GuildController:on40510( )
|
|
local vo = SCMD40510.New(true)
|
|
self.model:Fire(GuildModel.GUILD_WAR_BOSS_BORN)
|
|
end
|
|
|
|
-- 战场信息-BOSS死亡
|
|
function GuildController:on40511( )
|
|
local vo = SCMD40511.New(true)
|
|
self.model:Fire(GuildModel.GUILD_WAR_BOSS_DIE)
|
|
end
|
|
|
|
-- 战场信息-积分信息广播
|
|
function GuildController:on40512( )
|
|
local vo = SCMD40512.New(true)
|
|
local str = ""
|
|
if vo.op == 1 then
|
|
str = string.format("完成运送 积分+%d", vo.score)
|
|
elseif vo.op == 2 then
|
|
str = string.format("击杀玩家 积分+%d", vo.score)
|
|
elseif vo.op == 3 then
|
|
str = string.format("击杀了结晶守卫 积分+%d",vo.score)
|
|
end
|
|
|
|
local data = {
|
|
role_vo_1 = vo, --我方
|
|
role_vo_2 = nil, --敌方
|
|
type = 1, --UI类型
|
|
desc = str, --描述
|
|
max_num = 3, --同时显示最大数量
|
|
}
|
|
GlobalEventSystem:Fire(EventName.SHOW_DYNAMIC_INFO_TIP, data)
|
|
end
|
|
|
|
|
|
--############### 战场信息-护盾CD ##############
|
|
function GuildController:on40513( )
|
|
local vo = SCMD40513.New(true)
|
|
self.model:GuildWarProject(vo.cd_time)
|
|
end
|
|
|
|
-- ############### 战场信息-使用护盾 ##############
|
|
function GuildController:on40514( )
|
|
local vo = SCMD40514.New(true)
|
|
if vo.res ~= 1 then
|
|
ErrorCodeShow(vo.res)
|
|
else
|
|
Message.show("成功开启减伤护盾效果")
|
|
end
|
|
self.model:GuildWarProject(vo.cd_time)
|
|
end
|
|
-----------------------本服团战 ---------------------------
|
|
|
|
----------------------- 本国团战 ---------------------------
|
|
function GuildController:on41000( )
|
|
local vo = SCMD41000.New(true)
|
|
self.model:SetGuildEventByType(GuildEventType.GuildCSGR, vo)
|
|
self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Event, true)
|
|
self.model:Fire(GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, GuildEventType.GuildCSGR)
|
|
end
|
|
function GuildController:on41001( )
|
|
local vo = SCMD41001.New(true)
|
|
if vo.type == GuildModel.CSGRRankType.Mine then
|
|
self.model:SetCSGRFightInfo(vo)
|
|
else
|
|
-- 对战场编号进行排序
|
|
local sort_func = function ( a, b )
|
|
return a.arena_id < b.arena_id
|
|
end
|
|
table.sort(vo.arena_list, sort_func)
|
|
end
|
|
-- 整个服务器的社团排行信息不做数据存储
|
|
self.model:Fire(GuildModel.UPDATE_CSGR_FIGHTINFO, vo.type, vo)
|
|
end
|
|
function GuildController:on41002( )
|
|
local vo = SCMD41002.New(true)
|
|
if vo.errcode ~= 1 then
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
function GuildController:on41003( )
|
|
local vo = SCMD41003.New(true)
|
|
if vo.errcode == 1 then
|
|
self.model:SetCSGRCollectBuffs(vo)
|
|
self.model:Fire(GuildModel.UPDATE_CSGR_COLLECTBUFF)
|
|
-- 采集成功后就及时请求最新的场景采集物信息
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41004)
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
function GuildController:on41004( )
|
|
local vo = SCMD41004.New(true)
|
|
if vo.errcode == 1 then
|
|
self.model:SetCSGRBattlefieldRes(vo)
|
|
self.model:Fire(GuildModel.UPDATE_CSGR_BF_RES)
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
function GuildController:on41005( )
|
|
local vo = SCMD41005.New(true)
|
|
-- 排序
|
|
self:SortCSGRHurtRank(vo.hurt_rank)
|
|
-- 伤害排行不做数据缓存
|
|
self.model:Fire(GuildModel.UPDATE_CSGR_DMG_RANK, vo)
|
|
end
|
|
function GuildController:on41006( )
|
|
local vo = SCMD41006.New(true)
|
|
-- 排序
|
|
self:SortCSGRHurtRank(vo.hurt_rank)
|
|
-- 伤害排行不做数据缓存
|
|
self.model:Fire(GuildModel.UPDATE_CSGR_SCENE_DMG_RANK, vo)
|
|
end
|
|
-- 对排行数据进行一次排序
|
|
function GuildController:SortCSGRHurtRank(hurt_rank)
|
|
-- 排序
|
|
local sort_func = function ( a, b )
|
|
return a.rank < b.rank
|
|
end
|
|
table.sort(hurt_rank, sort_func)
|
|
end
|
|
function GuildController:on41007( )
|
|
local vo = SCMD41007.New(true)
|
|
if vo.errcode == 1 then
|
|
self.model:SetGuildCSGRResultData(vo)
|
|
-- 打开结算界面
|
|
-- self.model:Fire(GuildModel.OPEN_CSGR_RESULT_VIEW, true, vo)
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
function GuildController:on41008( )
|
|
local vo = SCMD41008.New(true)
|
|
if vo.errcode == 1 then -- 存在采集物,可以寻路
|
|
self.model:CSGRAutoFindCollection(vo)
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
end
|
|
end
|
|
function GuildController:on41009( )
|
|
local vo = {role = {}}
|
|
PictureProtoVo.ReadFmt(vo.role)
|
|
vo.attr_id = UserMsgAdapter.ReadFmt("i") or 0
|
|
vo.num = UserMsgAdapter.ReadFmt("c") or 0
|
|
if SceneManager:getInstance():IsGuildCSGRScene() then -- 只在本国团战场景处理
|
|
local collect_cfg = self.model:GetCSGRCollectCfg(vo.attr_id)
|
|
-- local attr_name = WordManager:GetProperties(collect_cfg[2])
|
|
local attr_name = GuildModel.CSGRAttrName[collect_cfg[2]]
|
|
local attr_val = WordManager:GetPropertyValue(collect_cfg[2], collect_cfg[3])
|
|
local data = {
|
|
role_vo_1 = vo.role, --我方
|
|
role_vo_2 = nil, --敌方
|
|
type = 1, --UI类型
|
|
is_break = 1, --击杀情况(类型2需要使用)
|
|
desc = string.format("采集成功 <color=%s>%s</color>+<color=%s>%s</color>",
|
|
GuildModel.CSGRCollectTipsColorCfg[collect_cfg[2]] or "#ffffff",
|
|
attr_name,
|
|
ColorUtil.GREEN_DARK,
|
|
attr_val), --描述
|
|
}
|
|
GlobalEventSystem:Fire(EventName.SHOW_DYNAMIC_INFO_TIP, data)
|
|
end
|
|
end
|
|
|
|
----------社团跑环协助协议处理-start---------
|
|
function GuildController:on41700( )
|
|
local vo = SCMD41700.New(true)
|
|
local data = {id=vo.sid, trigger_count=vo.trigger_count}
|
|
self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_ACCEPT_VIEW, data)
|
|
end
|
|
|
|
--########################## 获取答题内容 ########################
|
|
function GuildController:on41701( )
|
|
local vo = SCMD41701.New(true)
|
|
print('=======Msh:GuildController.lua[2828] ===TABLE====')
|
|
PrintTable(vo)
|
|
if vo.res == 1 then
|
|
self.model:SetGuildQuizID(vo)
|
|
self.model:Fire(GuildModel.UPDATE_QUIZ_VIEW_ANSWERING)
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
end
|
|
|
|
end
|
|
|
|
--########################## 答题 #########################
|
|
function GuildController:on41702( )
|
|
local vo = SCMD41702.New(true)
|
|
print('=======Msh:GuildController.lua[2828] ===TABLE====')
|
|
PrintTable(vo)
|
|
if vo.res == 1 then
|
|
Message.show("回答正确")
|
|
self.model:UpdateGuildQuizData(vo)
|
|
self.model:Fire(GuildModel.UPDATE_QUIZ_VIEW_SHOWING)
|
|
elseif vo.res == 0 then
|
|
Message.show("回答错误")
|
|
self.model:UpdateGuildQuizData(vo)
|
|
self.model:Fire(GuildModel.UPDATE_QUIZ_VIEW_SHOWING)
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
end
|
|
end
|
|
|
|
--########################## 答题结束 ##########################
|
|
function GuildController:on41703( )
|
|
local vo = SCMD41703.New(true)
|
|
print('=======Msh:GuildController.lua[2828] ===TABLE====')
|
|
PrintTable(vo)
|
|
if vo.res == 1 or vo.res == 0 then
|
|
self.model:SetGuildQuizResultData(vo)
|
|
self.model:Fire(GuildModel.GUILD_QUIZ_FINISH)
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
end
|
|
end
|
|
|
|
function GuildController:on41704( )
|
|
local vo = SCMD41704.New(true)
|
|
if vo.res == 1 then
|
|
Message.show("协助取消")
|
|
end
|
|
end
|
|
|
|
--################# 答题断线重连 ################
|
|
function GuildController:on41705( )
|
|
local vo = SCMD41705.New(true)
|
|
--print('=======Msh:GuildController.lua[2935] ===TABLE====')
|
|
--PrintTable(vo)
|
|
|
|
self.model:ReLinkInitGuildQuizData(vo)
|
|
local temp_func = function( )
|
|
self.model:Fire(GuildModel.OPEN_GUILD_QUIZ_VIEW, true)
|
|
end
|
|
setTimeout(temp_func, 6)
|
|
end
|
|
|
|
--################# 获取boss信息 ################
|
|
function GuildController:on41706( )
|
|
local vo = SCMD41706.New(true)
|
|
local data =
|
|
{
|
|
sid = vo.sid,
|
|
boss_id = vo.boss_id,
|
|
boss_power = vo.boss_power,
|
|
}
|
|
self.model:Fire(GuildModel.UPDATE_SUPPORT_GUILD_INFO, data)
|
|
end
|
|
----------社团跑环协助协议处理-end-----------
|