JumpServerManager = {} local this = JumpServerManager --天梯 local mServerArenaSetting = ConfigManager.GetConfig(ConfigName.MServerArenaSetting) local mServerArenaReward = ConfigManager.GetConfig(ConfigName.MServerArenaReward) local MServerLodeSetting = ConfigManager.GetConfig(ConfigName.MServerLodeSetting) local stage = 0 --1 未开始 2 战斗阶段 3 膜拜阶段 local endTime = 0 --阶段结束时间戳 local arenaInfo-- local myRank = -1 local oldMyRank = -1 local enterable = -1-- -1不可参加 是否可以参加 竞技场100名以内参加 local isGroup = 0--是否被分组 是1 否0 local isStart = 0 this.shopGoodId = 10035--挑战价格 function this.Initialize() end --------------------------------------------- --跨服天梯数据 --------------------------------------------- ------登录初始化 function this.LoginGetWorldArenaInfoRequest(fun) -- if ActTimeCtrlManager.IsQualifiled(FUNCTION_OPEN_TYPE.JumpServer) then NetManager.GetWorldArenaInfoRequest(function(_msg) this.InithightLadderData(_msg) if fun then fun() end end) -- else -- if fun then -- fun() -- end -- end end ---初始化 function this.GetWorldArenaInfoRequest(fun) NetManager.GetWorldArenaInfoRequest(function(_msg) if _msg then this.InithightLadderData(_msg) end Game.GlobalEvent:DispatchEvent(GameEvent.JumpServerHeightLadder.UpdateHeightLadderPanel) if fun then fun() end --检测跨服天梯 JumpServerManager.CheckJumpServerhightLadderMainCityRedPoint() end) end function this.InithightLadderData(_msg) -- LogPink("_msg.arenaInfo.arenaEnemys "..#_msg.arenaInfo.arenaEnemys) for i = 1, #_msg.arenaInfo.arenaEnemys do -- LogPink("_msg.arenaInfo.arenaEnemys[i].hadProud "..tostring(_msg.arenaInfo.arenaEnemys[i].hadProud) ) -- LogPink("_msg.arenaInfo.arenaEnemys[i].worshipTime ".._msg.arenaInfo.arenaEnemys[i].worshipTime) -- LogYellow("_msg.arenaInfo.arenaEnemys[i].personInfo.practiceLevel ".._msg.arenaInfo.arenaEnemys[i].personInfo.practiceLevel) _msg.arenaInfo.arenaEnemys[i].personInfo.name = PracticeManager.SetNameColor(_msg.arenaInfo.arenaEnemys[i].personInfo.name,_msg.arenaInfo.arenaEnemys[i].personInfo.practiceLevel) end -- LogPink("_msg.stage ".._msg.stage) -- LogPink("_msg.endTime ".._msg.endTime) -- LogPink("_msg.arenaInfo.score ".._msg.arenaInfo.score) -- LogPink("_msg.enterable ".._msg.enterable) -- LogPink("_msg.isGroup ".._msg.isGroup) -- LogPink("_msg.isStart ".._msg.isStart) arenaInfo = _msg.arenaInfo stage = _msg.stage endTime = _msg.endTime myRank = _msg.arenaInfo.score LogError("myrank=="..myRank) enterable = _msg.enterable--是否可以参加 竞技场100名以内参加 isGroup = _msg.isGroup--是否被分组 是1 否0 isStart = _msg.isStart--是否在3周内,在为0 不在为1 开服三周后功能开始 LogError(string.format("获取到了当前为开服第%s周",tostring(isStart))) end --推送更新 function this.IndicationHightLadderData(_msg) for i = 1, #_msg.arenaInfo.arenaEnemys do _msg.arenaInfo.arenaEnemys[i].personInfo.name = PracticeManager.SetNameColor(_msg.arenaInfo.arenaEnemys[i].personInfo.name,_msg.arenaInfo.arenaEnemys[i].personInfo.practiceLevel) end arenaInfo = _msg.arenaInfo stage = _msg.stage endTime = _msg.endTime myRank = _msg.arenaInfo.score LogError("myrank=="..myRank) -- LogPink("_msg.arenaInfo.arenaEnemys "..#_msg.arenaInfo.arenaEnemys) -- LogPink("_msg.stage ".._msg.stage) -- LogPink("_msg.endTime ".._msg.endTime) -- LogPink("_msg.arenaInfo.score ".._msg.arenaInfo.score) Game.GlobalEvent:DispatchEvent(GameEvent.JumpServerHeightLadder.UpdateHeightLadderPanel) end --战斗更新 function this.BattleHightLadderData(_msg) if _msg.arenaInfo and _msg.arenaInfo.arenaEnemys and #_msg.arenaInfo.arenaEnemys > 0 then for i = 1, #_msg.arenaInfo.arenaEnemys do _msg.arenaInfo.arenaEnemys[i].personInfo.name = PracticeManager.SetNameColor(_msg.arenaInfo.arenaEnemys[i].personInfo.name,_msg.arenaInfo.arenaEnemys[i].personInfo.practiceLevel) end arenaInfo = _msg.arenaInfo myRank =_msg.arenaInfo.score LogError("myrank=="..myRank) end -- LogPink("_msg.arenaInfo.arenaEnemys "..#_msg.arenaInfo.arenaEnemys) -- LogPink("_msg.arenaInfo.score ".._msg.arenaInfo.score) end --获得天梯阶段 function this.GetHightLadderDataArenaInfo() return arenaInfo end function this.GetHightLadderDatastage() return stage end function this.GetHightLadderDataEndTime() return endTime end function this.GetHightLadderDataMyRank() return myRank end function this.GetHightLadderDataOldMyRank() return oldMyRank end function this.GetHightLadderDataEnterable() return enterable ~= -1 end function this.GetHightLadderDataIsGroup() return isGroup ~= 0 end function this.GetHightLadderDataIsStart() return PlayerManager.startWeek >= mServerArenaSetting[1].OpenWeek end function this.GetQiJieIsStart() return PlayerManager.startWeek >= mServerArenaSetting[3].OpenWeek end function this.GetYuxuIsStart() return PlayerManager.startWeek >= mServerArenaSetting[2].OpenWeek end function this.GetLingMaiIsStart() return PlayerManager.startWeek >= MServerLodeSetting[1].OpenWeek end -- 获取剩余挑战次数 特权 function this.GetCanBattleCount() return PrivilegeManager.GetPrivilegeRemainValue(PRIVILEGE_TYPE.JUMPSERVER_GIGHTLADDER_MIANFEINUM) end -- 获取剩余挑战购买次数 特权 function this.GetCanBuyBattleCount() return PrivilegeManager.GetPrivilegeRemainValue(PRIVILEGE_TYPE.JUMPSERVER_GIGHTLADDER_BUYNUM) end --天梯开始战斗 this.curBattleDrop = {} function this.StarFightHightLadder(personInfo,skipFight,callBack) NetManager.GetWorldArenaChallengeRequest(FormationTypeDef.JUMPSERVER_HIGHTLADDER,personInfo,skipFight,function (msg) oldMyRank = myRank -- if msg and msg.drop and msg.drop.itemlist and #msg.drop.itemlist > 0 then -- LogPink(" #msg.drop.itemlist ".. #msg.drop.itemlist) -- else -- LogPink(" #msg.drop.itemlist nil ") -- end this.curBattleDrop = msg.drop -- LogGreen("skipFight "..skipFight.." msg.err "..msg.err) if skipFight == 0 then--挑战 if msg.err== -2 then -- this.BattleHightLadderData(msg)--后端没给数据 前端自己请求 JumpServerManager.GetWorldArenaInfoRequest() PopupTipPanel.ShowTip("无法挑战,目标玩家排名出现变化,已重新匹配对手!") if callBack then callBack() end return end if msg.err== -3 then -- this.BattleHightLadderData(msg)--后端没给数据 前端自己请求 JumpServerManager.GetWorldArenaInfoRequest() PopupTipPanel.ShowTip("无法挑战,玩家排名出现变化,已重新匹配对手!") if callBack then callBack() end return end this.BattleHightLadderData(msg) local fightData = BattleManager.GetBattleServerData(msg,1) UIManager.OpenPanel(UIName.BattlePanel, fightData, BATTLE_TYPE.JumpServerhightLadder, function() -- UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1,function() if callBack then callBack(msg) end -- end) end ):SetResult(msg.fightResult) else this.BattleHightLadderData(msg) local fightData = BattleManager.GetBattleServerData(msg) UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1,function() if callBack then callBack(msg) end end) end end) end function this.GetWorldArenaProudRequest(personInfo,callBack) NetManager.GetWorldArenaProudRequest(personInfo,function(msg) LogGreen("msg.err "..msg.err) LogGreen("msg.worshipTime "..msg.worshipTime) if msg.err== -2 then this.BattleHightLadderData(msg) PopupTipPanel.ShowTip("无法挑战,目标玩家排名出现变化,已重新匹配对手!") return end if msg.err== -3 then this.BattleHightLadderData(msg) PopupTipPanel.ShowTip("无法挑战,玩家排名出现变化,已重新匹配对手!") return end local itemId = 0 local itemNum = 0 if msg.drop.itemlist ~= nil and #msg.drop.itemlist > 0 then for i = 1, #msg.drop.itemlist do if msg.drop.itemlist[i].itemNum > 0 then itemId = msg.drop.itemlist[i].itemId-- itemNum = msg.drop.itemlist[i].itemNum end end end PopupTipPanel.ShowTip(string.format("膜拜成功,获得%sX%s!",ConfigManager.GetConfigData(ConfigName.ItemConfig,itemId).Name, itemNum)) -- LogPink("msg.worshipTime "..msg.worshipTime) for i = 1, #arenaInfo.arenaEnemys do if arenaInfo.arenaEnemys[i] then local curData = arenaInfo.arenaEnemys[i] LogYellow("personInfo.uid "..personInfo.uid.." curData.personInfo.uid "..curData.personInfo.uid) if personInfo.uid == curData.personInfo.uid then LogYellow("curData.worshipTime "..curData.worshipTime) if curData.personInfo and curData.worshipTime then LogPink("msg.worshipTime "..msg.worshipTime) curData.worshipTime = msg.worshipTime curData.hadProud = true end end end end if callBack then callBack(msg) end end) end function this.GetWorldArenaRecordInfoRequest(callBack) NetManager.GetWorldArenaRecordInfoRequest(function(msg) if callBack then callBack(msg) end end) end function this.CheckJumpServerhightLadderMainCityRedPoint() CheckRedPointStatus(RedPointType.JumpServer_HightLadder_Worship) CheckRedPointStatus(RedPointType.JumpServer_HightLadder_HaveMianFeiPanel) -- 检测七界试炼红点 CheckRedPointStatus(RedPointType.QiJieShiLian) end --剩余免费挑战次数红点 function this.JumpServerHightLadderMianFeiNumRedPoint() local isOpen = ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.JumpServer_HightLadder) if not isOpen then return false end local conFigWorldLevel = ConfigManager.GetConfigData(ConfigName.MServerArenaSetting,1).WorldLevel if PlayerManager.worldLeve < conFigWorldLevel then return false end if not this.GetHightLadderDataEnterable() then -- LogPink("跨服天梯剩余免费挑战次数红点false") return false end if not this.GetHightLadderDataIsGroup() then -- LogPink("跨服天梯剩余免费挑战次数红点false") return false end if not this.GetHightLadderDataIsStart() then -- LogPink("跨服天梯剩余免费挑战次数红点false") return false end if stage == 2 then if this.GetCanBattleCount() > 0 then -- LogPink("跨服天梯剩余免费挑战次数红点true") return true end end -- LogPink("跨服天梯剩余免费挑战次数红点false") return false end --跨服天梯可以膜拜红点 function this.JumpServerHightLadderWorshipRedPoint() local isOpen = ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.JumpServer_HightLadder) if not isOpen then return false end local conFigWorldLevel = ConfigManager.GetConfigData(ConfigName.MServerArenaSetting,1).WorldLevel if PlayerManager.worldLeve < conFigWorldLevel then return false end if not this.GetHightLadderDataIsGroup() then -- LogPink("跨服天梯剩余免费挑战次数红点false") return false end if not this.GetHightLadderDataIsStart() then -- LogPink("跨服天梯剩余免费挑战次数红点false") return false end if stage == 3 then local datas = this.GetHightLadderDataArenaInfo() for i = 1, #datas.arenaEnemys do if datas.arenaEnemys[i] and not datas.arenaEnemys[i].hadProud then -- LogPink("跨服天梯可以膜拜红点true") return true end end end -- LogPink("跨服天梯可以膜拜红点false") return false end function this.ZeroRefreshPanel() -- LogPink("跨天 跨服天梯膜拜状态刷新") Timer.New(function() this.GetWorldArenaInfoRequest(function () --一分钟间隔阶段 踢回主城 -- if UIManager.IsOpen(UIName.JumpServerHightLadderPanel) or UIManager.IsOpen(UIName.JumpServerPanel) then -- if false then -- UIManager.OpenPanel(UIName.MainPanel); -- end -- end end) end, 3):Start() end local curPersonInfo = {} function this.SetCurPersonInfo(_curPersonInfo) curPersonInfo = _curPersonInfo end function this.GetCurPersonInfo(_curPersonInfo) return curPersonInfo end --------------------------------------------- --跨服天梯结束 --------------------------------------------- ---- ---------------------------------------------跨服界面逻辑---------------------------- return this