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 = "封印裂隙时有怪物入侵社团驻地,请求团内成员协助击杀 [立即前往]" 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("%s 使用了 社团鼓舞,全员 伤害+%s%%", "#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("我正在进行%s,请各位大佬快来帮忙!", 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("采集成功 %s+%s", 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-----------