miduo_client/Assets/ManagedResources/~Lua/Modules/JumpServer/JumpServerHightLadderPanel.lua

632 lines
29 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

require("Base/BasePanel")
JumpServerHightLadderPanel = Inherit(BasePanel)
local this = JumpServerHightLadderPanel
local datas = {}
local liveNodeList = {}
local goList = {}
local stage = 0
local enterable = false
--local JoinRank = ConfigManager.GetConfigData(ConfigName.MServerArenaSetting,1).JoinRank
local isFirstRefresh = false
local curPos = 1
--初始化组件(用于子类重写)
function JumpServerHightLadderPanel:InitComponent()
this.spLoader = SpriteLoader.New()
this.timeText = Util.GetGameObject(self.gameObject, "titleObg/timeImage/Text")
this.helpBtn = Util.GetGameObject(self.gameObject, "HelpBtn")
this.helpPos = this.helpBtn:GetComponent("RectTransform").localPosition
this.sortBtn = Util.GetGameObject(self.gameObject, "rightBtns/sortBtn")
this.rewardSortBtn = Util.GetGameObject(self.gameObject, "rightBtns/rewardSortBtn")
this.recordBtn = Util.GetGameObject(self.gameObject, "rightBtns/recordBtn")
this.shopBtn = Util.GetGameObject(self.gameObject, "rightBtns/shopBtn")
this.formationBtn = Util.GetGameObject(self.gameObject, "rightBtns/formationBtn")
this.backBtn = Util.GetGameObject(self.gameObject, "backBtn")
-- this.singlePre = Util.GetGameObject(self.gameObject, "middleObg/singlePre")
-- this.rect = Util.GetGameObject(self.gameObject, "middleObg/rect")
-- this.scrollView=SubUIManager.Open(SubUIConfig.ScrollCycleView,this.rect.transform,this.singlePre,
-- nil,Vector2.New(1079.9,1533.4),1,1,Vector2.New(0,0))
-- this.scrollView.moveTween.MomentumAmount = 1
-- this.scrollView.moveTween.Strength = 2
for i = 1, 4 do
goList[i] = Util.GetGameObject(self.gameObject, "middleObg/rect/singlePre (" .. i .. ")")
end
this.mySortText = Util.GetGameObject(self.gameObject, "endObg/mySortText")
this.sdBtn = Util.GetGameObject(self.gameObject, "endObg/sdBtn")
this.numInfo = Util.GetGameObject(self.gameObject, "endObg/numInfo")
Util.GetGameObject(self.gameObject, "endObg/sdBtn/Text"):GetComponent("Text").text = "扫 荡"
Util.GetGameObject(self.gameObject, "endObg/numInfo/mianfeiText"):GetComponent("Text").text = "免费次数:"
this.mianfeiText = Util.GetGameObject(self.gameObject, "endObg/numInfo/mianfeiText/Text"):GetComponent("Text")
Util.GetGameObject(self.gameObject, "endObg/numInfo/buyText"):GetComponent("Text").text = "购买次数:"
this.buyText = Util.GetGameObject(self.gameObject, "endObg/numInfo/buyText/Text"):GetComponent("Text")
this.addNumBtn = Util.GetGameObject(self.gameObject, "endObg/numInfo/addNumBtn/click")
this.canPlayerTipText = Util.GetGameObject(self.gameObject, "endObg/canPlayerTipText")
this.signObj = Util.GetGameObject(self.gameObject, "signObj")
this.btn_left = Util.GetGameObject(self.gameObject, "signObj/btn_left")
this.btn_right = Util.GetGameObject(self.gameObject, "signObj/btn_right")
this.selectObj = Util.GetGameObject(self.gameObject, "signObj/selectBar/selectBtn")
this.signBtnList = {}
for i = 1, 4 do
local proObj = {}
local btn = Util.GetGameObject(self.gameObject, "signObj/selectBar/btn" .. i)
proObj.img = btn:GetComponent("Image")
proObj.img.sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(i))
proObj.btn_sign = Util.GetGameObject(btn, "btn")
proObj.red = Util.GetGameObject(btn, "btn/red")
proObj.info = Util.GetGameObject(self.gameObject, "signObj/selectBar/btn" .. i .. "/info"):GetComponent("Text")
proObj.btn = btn
this.signBtnList[i] = proObj
end
this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform)
end
--绑定事件(用于子类重写)
function JumpServerHightLadderPanel:BindEvent()
for i = 1, #this.signBtnList do
Util.AddClick(this.signBtnList[i].btn_sign, function()
local sureFunc = function()
NetManager.LuofuRegisterRequest(i, function()
this.SetSignBtnShow()
end)
end
local args = {}
args[1] = "确认报名当前所选阵营?"
args[2] = "确认"
args[3] = "取消"
args[4] = sureFunc
UIManager.OpenPanel(UIName.GMCommonConfirmPanel, args)
end)
end
Util.AddClick(this.btn_left, function()
if curPos - 1 <= 0 then
curPos = 4
else
curPos = curPos - 1
end
JumpServerManager.GetWorldArenaInfoRequest(curPos, function()
this.SetSelectPos()
--this.OnShowPanel()
end)
end)
Util.AddClick(this.btn_right, function()
if curPos + 1 > 4 then
curPos = 1
else
curPos = curPos + 1
end
JumpServerManager.GetWorldArenaInfoRequest(curPos, function()
this.SetSelectPos()
--this.OnShowPanel()
end)
end)
Util.AddClick(this.backBtn, function()
self:ClosePanel()
end)
Util.AddClick(this.helpBtn, function()
UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.JumpServerHeightLadder, this.helpPos.x, this.helpPos.y)
end)
Util.AddClick(this.sortBtn, function()
JumpServerManager.SetCurPersonInfo(nil)
UIManager.OpenPanel(UIName.RankingSingleListPanel, rankKingList[18])
end)
Util.AddClick(this.rewardSortBtn, function()
UIManager.OpenPanel(UIName.JumpServerHightLadderRewardSortPanel, FUNCTION_OPEN_TYPE.JumpServer_HightLadder)
end)
Util.AddClick(this.recordBtn, function()
UIManager.OpenPanel(UIName.JumpServerHightLadderRecordPopup)
end)
Util.AddClick(this.shopBtn, function()
JumpManager.GoJump(40083)
end)
Util.AddClick(this.formationBtn, function()
-- if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.JumpServer_HightLadder) then
-- PopupTipPanel.ShowTip(Language[10082])
-- return
-- end
if JumpServerManager.arenaType == 0 then
PopupTipPanel.ShowTip("报名后才能设置编队")
return
end
UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.JUMPSERVER_HIGHTLADDER)
end)
Util.AddClick(this.sdBtn, function()
--条件判断
this.BuyVipFun(1, 2, function()
--直接战斗
JumpServerManager.StarFightHightLadder(nil, 1, function(msg)
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.JUMPSERVER_GIGHTLADDER_MIANFEINUM, 1) --更新特权
this.RefreshBuyNum()
this.OnShowPanel()
end)
end)
end)
Util.AddClick(this.addNumBtn, function()
this.BuyVipFun(2, nil)
end)
end
--添加事件监听(用于子类重写)
function JumpServerHightLadderPanel:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.JumpServerHeightLadder.UpdateHeightLadderPanel, this.OnShowPanel)
Game.GlobalEvent:AddEvent(GameEvent.Privilege.OnPrivilegeZeroUpdate, this.RefreshBuyNum)
Game.GlobalEvent:AddEvent(GameEvent.Privilege.OnPrivilegeUpdate, this.RefreshBuyNum)
-- Game.GlobalEvent:AddEvent(GameEvent.JumpServerHeightLadder.UpdateHeightLadderNum, this.RefreshBuyNum)
end
--移除事件监听(用于子类重写)
function JumpServerHightLadderPanel:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.JumpServerHeightLadder.UpdateHeightLadderPanel, this.OnShowPanel)
Game.GlobalEvent:RemoveEvent(GameEvent.Privilege.OnPrivilegeZeroUpdate, this.RefreshBuyNum)
Game.GlobalEvent:RemoveEvent(GameEvent.Privilege.OnPrivilegeUpdate, this.RefreshBuyNum)
-- Game.GlobalEvent:AddEvent(GameEvent.JumpServerHeightLadder.UpdateHeightLadderNum, this.RefreshBuyNum)
end
--跨服
function JumpServerHightLadderPanel:OnOpen()
FormationManager.GetFormationByID(FormationTypeDef.JUMPSERVER_HIGHTLADDER)
curPos = JumpServerManager.arenaType
if curPos == 0 then
curPos = 1
end
this.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.JumpServerHightLadder })
this.RefreshOnOpen()
isFirstRefresh = false
end
--界面打开时调用(用于子类重写)
function JumpServerHightLadderPanel:OnShow()
local timeStr = "后开始"
if stage == JumpServer_Stage.Attack then
timeStr = "后结束"
elseif stage == JumpServer_Stage.End then
timeStr = "后开始"
end
this.RemainTimeDown(this.timeText, this.timeText:GetComponent("Text"), JumpServerManager.GetHightLadderDataEndTime(),
timeStr)
end
function this.SetSelectPos()
this.selectObj.transform:SetParent(this.signBtnList[curPos].btn.transform)
this.selectObj.transform.localPosition = Vector3.zero
end
function this.SetSignBtnShow()
--攻击阶段不显示膜拜信息
this.signObj:SetActive(stage ~= JumpServer_Stage.Attack)
for i = 1, #this.signBtnList do
this.signBtnList[i].btn_sign:SetActive(JumpServerManager.arenaType == 0)
this.signBtnList[i].info.gameObject:SetActive(false)
if JumpServerManager.arenaType > 0 then
this.signBtnList[JumpServerManager.arenaType].info.gameObject:SetActive(true)
end
end
end
function JumpServerHightLadderPanel.RefreshOnOpen()
JumpServerManager.GetWorldArenaInfoRequest(curPos)
end
function this:OnSortingOrderChange()
-- Util.AddParticleSortLayer(this.effect, self.sortingOrder - orginLayer)
end
function this.OnShowPanel()
stage = JumpServerManager.GetHightLadderDatastage()
datas = JumpServerManager.GetHightLadderDataArenaInfo()
enterable = JumpServerManager.GetHightLadderDataEnterable()
LogError("datas.arenaEnemys " .. #datas.arenaEnemys)
for i = 1, 4 do
local curData = datas.arenaEnemys[i] or {}
this.ShowSingleData(goList[i], curData, i)
end
this.SetSignBtnShow()
this.SetSelectPos()
LogError("JumpServerManager.arenaType==" .. JumpServerManager.arenaType)
this.canPlayerTipText:SetActive(false)
this.mySortText:SetActive(false)
this.sdBtn:SetActive(false)
this.numInfo:SetActive(false)
local timeStr = ""
LogPink("stage " .. stage)
this.canPlayerTipText.transform.localPosition = Vector3.New(1.3, 46.5, 0)
this.canPlayerTipText:GetComponent("Text").text = "" -- "本服千战逐胜台前"..JoinRank.."名可以参加"
timeStr = "后开始"
--1 未开始 2 战斗阶段 3 膜拜阶段
if stage == JumpServer_Stage.NoStar then
this.canPlayerTipText:SetActive(true)
elseif stage == JumpServer_Stage.Attack then
timeStr = "后结束"
if enterable then
this.mySortText:SetActive(true)
this.sdBtn:SetActive(true)
this.numInfo:SetActive(true)
local myRank = JumpServerManager.GetHightLadderDataMyRank() <= 1000 and
JumpServerManager.GetHightLadderDataMyRank() or "1000+"
this.mySortText:GetComponent("Text").text = "我的排名:" .. myRank
this.RefreshBuyNum()
else
this.canPlayerTipText:SetActive(true)
end
elseif stage == JumpServer_Stage.End then
timeStr = "后开始"
if enterable then
if GetTimeStampCorrespondingWeekNum(GetTimeStamp()) >= 2 and GetTimeStampCorrespondingWeekNum(GetTimeStamp()) < 3 then --优化战斗阶段结束后的下个周二零点后本服竞技场重置不再显示上期排名和邮件提示改为显示本服千战逐胜台前100名可参加
this.canPlayerTipText:GetComponent("Text").text = "" --"本服千战逐胜台前"..JoinRank.."名可以参加"
else
this.canPlayerTipText.transform.localPosition = Vector3.New(1.3, 11.85, 0)
local myRank = JumpServerManager.GetHightLadderDataMyRank() <= 1000 and
JumpServerManager.GetHightLadderDataMyRank() or "1000+"
this.mySortText:GetComponent("Text").text = "我的排名:" .. myRank
if JumpServerManager.GetHightLadderDataMyRank() <= 1000 then
this.canPlayerTipText:GetComponent("Text").text = "已通过邮件发放排名奖励"
else
this.canPlayerTipText:GetComponent("Text").text = "无法获得排名奖励"
end
this.mySortText:SetActive(true)
end
else
end
this.canPlayerTipText:SetActive(true)
end
this.RemainTimeDown(this.timeText, this.timeText:GetComponent("Text"), JumpServerManager.GetHightLadderDataEndTime(),
timeStr)
end
function this.RefreshBuyNum()
LogGreen("JumpServerManager.GetCanBattleCount() " .. JumpServerManager.GetCanBattleCount())
LogGreen("JumpServerManager.GetCanBuyBattleCount() " .. JumpServerManager.GetCanBuyBattleCount())
this.mianfeiText.text = JumpServerManager.GetCanBattleCount()
this.buyText.text = JumpServerManager.GetCanBuyBattleCount()
end
function this.ShowSingleData(go, data, i)
if not data then return end
local playerInfo = Util.GetGameObject(go, "playerInfo")
local sdBtn = Util.GetGameObject(go, "sdBtn")
local cliclBtn = Util.GetGameObject(go, "click")
local sdBtnRedPoint = Util.GetGameObject(go, "sdBtn/redPoint")
local dianzanImage = Util.GetGameObject(go, "sdBtn/dianzanImage")
local liveDef = Util.GetGameObject(go, "liveDef")
playerInfo:SetActive(false)
sdBtn:SetActive(false)
liveDef:SetActive(false)
sdBtnRedPoint:SetActive(false)
dianzanImage:SetActive(false)
--1 未开始 2 战斗阶段 3 膜拜阶段
if stage == JumpServer_Stage.NoStar and data.personInfo == nil then
sdBtn:SetActive(true)
liveDef:SetActive(true)
Util.GetGameObject(go, "sdBtn/Text"):SetActive(true)
Util.GetGameObject(go, "sdBtn/Text"):GetComponent("Text").text = "虚以待位"
local str = "s_sanjiechumo_ren_1" --i % 2 > 0 and "s_sanjiechumo_ren_1" or "s_sanjiechumo_ren_2"
Util.GetGameObject(go, "liveDef"):GetComponent("Image").sprite = this.spLoader:LoadSprite(str)
Util.AddOnceClick(sdBtn, function()
end)
Util.AddOnceClick(cliclBtn, function()
end)
elseif stage == JumpServer_Stage.Attack and data and data.personInfo then
playerInfo:SetActive(true)
sdBtn:SetActive(true)
Util.GetGameObject(go, "sdBtn/Text"):SetActive(true)
Util.GetGameObject(go, "sdBtn/Text"):GetComponent("Text").text = "挑 战"
Util.GetGameObject(go, "playerInfo/name/nameText"):GetComponent("Text").text = data.personInfo.servername ..
" " .. data.personInfo.name
Util.GetGameObject(go, "playerInfo/warPower/powerBtn/value"):GetComponent("Text").text = data.personInfo
.totalForce
Util.GetGameObject(go, "playerInfo/warPower/Text"):GetComponent("Text").text = "" .. data.personInfo.rank .. ""
local live = Util.GetGameObject(go, "playerInfo/live")
this.LocadPersonInfoLive(go, data.personInfo, live) --NameManager.roleSex
sdBtnRedPoint:SetActive(JumpServerManager.GetCanBattleCount() > 0 and enterable)
Util.AddOnceClick(sdBtn, function()
if not enterable then
--PopupTipPanel.ShowTip("本服千战逐胜台前"..JoinRank.."名可以参加")
PopupTipPanel.ShowTip("本次赛季您并未报名,无法参战")
return
end
this.BuyVipFun(1, 1, function()
--直接战斗
JumpServerManager.StarFightHightLadder(data.personInfo, 0, function(msg)
if msg then
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.JUMPSERVER_GIGHTLADDER_MIANFEINUM, 1) --更新特权
this.OnShowPanel()
end
this.RefreshBuyNum()
end)
end)
end)
Util.AddOnceClick(cliclBtn, function()
JumpServerManager.SetCurPersonInfo(data.personInfo)
local formation = FormationTypeDef.LuoFuZhengFeng1
if JumpServerManager.arenaType ~= 0 and JumpServerManager.stage == 3 then
if JumpServerManager.arenaType == 1 then
formation = FormationTypeDef.LuoFuZhengFeng1
elseif JumpServerManager.arenaType == 2 then
formation = FormationTypeDef.LuoFuZhengFeng2
elseif JumpServerManager.arenaType == 3 then
formation = FormationTypeDef.LuoFuZhengFeng3
elseif JumpServerManager.arenaType == 4 then
formation = FormationTypeDef.LuoFuZhengFeng4
end
else
if curPos == 1 then
formation = FormationTypeDef.LuoFuZhengFeng1
elseif curPos == 2 then
formation = FormationTypeDef.LuoFuZhengFeng2
elseif curPos == 3 then
formation = FormationTypeDef.LuoFuZhengFeng3
elseif curPos == 4 then
formation = FormationTypeDef.LuoFuZhengFeng4
end
end
LogGreen("编队Id" .. formation)
JumpServerManager.showRankType = formation
UIManager.OpenPanel(UIName.PlayerInfoPopup, data.personInfo.uid, PLAYER_INFO_VIEW_TYPE.JUPMSERVER,
data.personInfo.servername, formation)
end)
elseif stage == JumpServer_Stage.NoStar and data and data.personInfo then
playerInfo:SetActive(true)
sdBtn:SetActive(true)
LogPink("data.personInfo.name " ..
data.personInfo.name ..
" data.personInfo.rank " .. data.personInfo.rank .. " data.hadProud " .. tostring(data.hadProud))
Util.GetGameObject(go, "playerInfo/name/nameText"):GetComponent("Text").text = data.personInfo.servername ..
" " .. data.personInfo.name
Util.GetGameObject(go, "playerInfo/warPower/powerBtn/value"):GetComponent("Text").text = data.personInfo
.totalForce
Util.GetGameObject(go, "playerInfo/warPower/Text"):GetComponent("Text").text = "" .. data.personInfo.rank .. ""
local live = Util.GetGameObject(go, "playerInfo/live")
this.LocadPersonInfoLive(go, data.personInfo, live)
sdBtnRedPoint:SetActive(not data.hadProud)
Util.GetGameObject(go, "sdBtn/Text"):GetComponent("Text").text = "膜 拜"
Util.GetGameObject(go, "sdBtn/Text"):SetActive(not data.hadProud)
Util.GetGameObject(go, "sdBtn/dianzanImage/Text"):GetComponent("Text").text = data.worshipTime
dianzanImage:SetActive(data.hadProud)
LogError("data.hadProud===" ..
tostring(data.hadProud) ..
" data.worshipTime==" .. data.worshipTime .. " personInfo.servername==" .. data.personInfo.servername)
if data.hadProud then
sdBtn:GetComponent("Image").sprite = this.spLoader:LoadSprite("X1_zhanling_pata_bt_03")
else
sdBtn:GetComponent("Image").sprite = this.spLoader:LoadSprite("X1_zhanling_pata_bt_03")
end
Util.AddOnceClick(sdBtn, function()
if not data.hadProud then
JumpServerManager.GetWorldArenaProudRequest(data.personInfo, function(msg)
this.RefreshOnOpen()
end)
end
end)
Util.AddOnceClick(cliclBtn, function()
JumpServerManager.SetCurPersonInfo(nil)
local formation = FormationTypeDef.LuoFuZhengFeng1
if JumpServerManager.arenaType ~= 0 and JumpServerManager.stage == 3 then
if JumpServerManager.arenaType == 1 then
formation = FormationTypeDef.LuoFuZhengFeng1
elseif JumpServerManager.arenaType == 2 then
formation = FormationTypeDef.LuoFuZhengFeng2
elseif JumpServerManager.arenaType == 3 then
formation = FormationTypeDef.LuoFuZhengFeng3
elseif JumpServerManager.arenaType == 4 then
formation = FormationTypeDef.LuoFuZhengFeng4
end
else
if curPos == 1 then
formation = FormationTypeDef.LuoFuZhengFeng1
elseif curPos == 2 then
formation = FormationTypeDef.LuoFuZhengFeng2
elseif curPos == 3 then
formation = FormationTypeDef.LuoFuZhengFeng3
elseif curPos == 4 then
formation = FormationTypeDef.LuoFuZhengFeng4
end
end
UIManager.OpenPanel(UIName.PlayerInfoPopup, data.personInfo.uid, PLAYER_INFO_VIEW_TYPE.JUPMSERVER,
data.personInfo.servername)
end)
end
end
function this.LocadPersonInfoLive(go, data, live)
-- if liveNodeList[go] then
-- poolManager:UnLoadLive(liveNodeList[go].name, liveNodeList[go].go, PoolManager.AssetType.GameObject)
-- end
-- local npc = roleSex == ROLE_SEX.BOY and "live2d_npc_map_boy" or "live2d_npc_map_nv"
-- local scale = roleSex == ROLE_SEX.BOY and Vector3.one * 0.26 or Vector3.one * 0.16
-- local live2d = poolManager:LoadLive(npc, live,scale, Vector3.zero)
-- local SkeletonGraphic = live2d:GetComponent("SkeletonGraphic")
-- if SkeletonGraphic then
-- SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true)
-- SkeletonGraphic.transform.localEulerAngles = Vector3.New(0, 0, 0)
-- end
-- liveNodeList[go] = {name=npc, go=live2d}
--local boyIconRes = data.sex == ROLE_SEX.BOY and "Dragon Ball- (21)" or "Dragon Ball- (586)1"
--local icon = Util.GetGameObject(live, "Image")
--icon:GetComponent("Image").sprite = this.spLoader:LoadSprite(boyIconRes)
local headFrame = CommonPool.CreateNode(POOL_ITEM_TYPE.PLAYER_HEAD, live)
headFrame:Reset()
headFrame:SetHead(data.head)
headFrame:SetFrame(data.headFrame)
headFrame:SetLevel(data.level)
headFrame:SetScale(Vector3.one * 1.4)
headFrame:SetLayer(this.sortingOrder)
headFrame:SetEffectScale(1.6)
--[[
if liveNodeList[go] then
liveNodeList[go]:OnClose()
liveNodeList[go] = nil
end
local curPlayerLiveViewData = {
skin = data.userSkin,
sex = data.gender,
ride = data.userMount,
designation = 0--data.userTitle,
}
liveNodeList[go] = PlayerLiveView:New(live.transform,2, curPlayerLiveViewData,this.sortingOrder)
liveNodeList[go]:SetNameHeight(-2.5)
if data.userMount and data.userMount > 0 and data.userMount ~= PlayerRide.YUJIAN then
liveNodeList[go]:OnOpen(GetPlayerRoleSingleConFig().Scale6,Vector3.New(0,-118.65,0),WALK_DIR.IDLE_LEFT)
else
liveNodeList[go]:OnOpen(GetPlayerRoleSingleConFig().Scale6,Vector3.New(0,-118.65,0),WALK_DIR.IDLE_FRONT)
end
]]
-- liveNodeList[go] = {name=npc, go=live2d}
end
--刷新倒计时显示
function this.RemainTimeDown(_timeTextExpertgo, _timeTextExpert, timeDown, str)
if timeDown - GetTimeStamp() > 0 then
if _timeTextExpertgo then
_timeTextExpertgo:SetActive(true)
end
if _timeTextExpert then
_timeTextExpert.text = this.TimeStampToDateString(timeDown - GetTimeStamp()) .. str
end
if this.timer then
this.timer:Stop()
this.timer = nil
end
this.timer = Timer.New(function()
if _timeTextExpert then
-- LogGreen(" 跨服天梯 "..this.TimeStampToDateString(timeDown)..str)
_timeTextExpert.text = this.TimeStampToDateString(timeDown - GetTimeStamp()) .. str
end
if timeDown - GetTimeStamp() < 0 then
if _timeTextExpertgo then
_timeTextExpertgo:SetActive(false)
end
this.timer:Stop()
this.timer = nil
if not isFirstRefresh then
Timer.New(function()
LogError("跨服天梯前端刷新")
JumpServerManager.GetWorldArenaInfoRequest(curPos)
isFirstRefresh = true
end, 2):Start()
end
end
-- timeDown = timeDown - 1
end, 1, -1, true)
this.timer:Start()
else
if _timeTextExpertgo then
_timeTextExpertgo:SetActive(false)
end
if not isFirstRefresh then
Timer.New(function()
LogError("跨服天梯前端刷新")
JumpServerManager.GetWorldArenaInfoRequest(curPos)
isFirstRefresh = true
end, 2):Start()
end
end
end
function this.TimeStampToDateString(second)
local day = math.floor(second / (24 * 3600))
local minute = math.floor(second / 60) % 60
local sec = second % 60
local hour = math.floor(math.floor(second - day * 24 * 3600 - sec - minute * 60) / 3600)
if day > 0 then
return string.format("%d天%02d时%02d分%02d秒", day, hour, minute, sec)
else
return string.format("%02d时%02d分%02d秒", hour, minute, sec)
end
end
function this.BuyVipFun(type, warOrSd, fun)
if type == 1 then
if JumpServerManager.GetCanBattleCount() <= 0 then --今日已无剩余次数!
if JumpServerManager.GetCanBuyBattleCount() <= 0 then
PopupTipPanel.ShowTip("今日已无挑战次数!")
else
--是否花费XX妖晶购买1次挑战次数并发起挑战
local costId, finalNum, oriCostNum = ShopManager.calculateBuyCost(SHOP_TYPE.FUNCTION_SHOP,
JumpServerManager.shopGoodId, 1)
local itemName = ConfigManager.GetConfigData(ConfigName.ItemConfig, costId).Name
local tipStr = warOrSd == 1 and "是否花费%s%s购买1次挑战次数并发起挑战" or "是否花费%s%s购买1次挑战次数并进行扫荡"
MsgPanel.ShowTwo(string.format(tipStr, finalNum, itemName), nil, function()
--买东西
if finalNum > BagManager.GetItemCountById(costId) then
PopupTipPanel.ShowTip(string.format("%s不足", itemName))
return
end
--买东西
ShopManager.RequestBuyShopItem(SHOP_TYPE.FUNCTION_SHOP, JumpServerManager.shopGoodId, 1, function()
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.JUMPSERVER_GIGHTLADDER_BUYNUM, 1) --更新特权
local tipStr2 = warOrSd == 1 and "挑战成功!" or "扫荡成功!"
if warOrSd == 2 then
PopupTipPanel.ShowTip(tipStr2)
end
if fun then
fun()
end
end)
end)
end
else
if warOrSd == 1 then
if fun then
fun()
end
else
MsgPanel.ShowTwo("扫荡后可直接获得挑战奖励并保持当前排名,确定消耗一次挑战次数进行扫荡?", nil, function()
if fun then
fun()
end
end)
end
end
elseif type == 2 then
if JumpServerManager.GetCanBuyBattleCount() <= 0 then
PopupTipPanel.ShowTip("今日已无购买剩余次数!")
else
local costId, finalNum, oriCostNum = ShopManager.calculateBuyCost(SHOP_TYPE.FUNCTION_SHOP,
JumpServerManager.shopGoodId, 1)
local itemName = ConfigManager.GetConfigData(ConfigName.ItemConfig, costId).Name
local tipStr = "是否花费%s%s购买1次挑战次数"
MsgPanel.ShowTwo(string.format(tipStr, finalNum, itemName), nil, function()
--买东西
if finalNum > BagManager.GetItemCountById(costId) then
PopupTipPanel.ShowTip(string.format(Language[11652], itemName))
return
end
ShopManager.RequestBuyShopItem(SHOP_TYPE.FUNCTION_SHOP, JumpServerManager.shopGoodId, 1, function()
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.JUMPSERVER_GIGHTLADDER_BUYNUM, 1) --更新特权
this.RefreshBuyNum()
end)
end)
end
end
end
--界面关闭时调用(用于子类重写)
function JumpServerHightLadderPanel:OnClose()
if this.timer then
this.timer:Stop()
this.timer = nil
end
end
--界面销毁时调用(用于子类重写)
function JumpServerHightLadderPanel:OnDestroy()
for key, value in pairs(liveNodeList) do
-- poolManager:UnLoadLive(value.name, value.go, PoolManager.AssetType.GameObject)
-- liveNodeList = {}
value:OnClose()
end
this.spLoader:Destroy()
end
return JumpServerHightLadderPanel