源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

2827 rivejä
103 KiB

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-----------