天宫秘宝报错修改

dev_chengFeng
ZhangBiao 2020-08-27 22:10:08 +08:00
parent 51abf7d496
commit 4a452addd1
6 changed files with 99 additions and 104 deletions

View File

@ -189,8 +189,8 @@ end
--大闹天宫入口是否开启
function ExpeditionMainPanel:IsTreasureOpen()
self.Btn4:SetActive(TreasureOfHeavenManger.GetLimitTime() ~= -1)
Util.GetGameObject(self.parent, "upLeftGo/Image"):SetActive(TreasureOfHeavenManger.GetLimitTime() ~= -1)
self.Btn4:SetActive(TreasureOfHeavenManger.resetTime ~= -1)
Util.GetGameObject(self.parent, "upLeftGo/Image"):SetActive(TreasureOfHeavenManger.resetTime ~= -1)
end
--实例化层数信息

View File

@ -765,11 +765,9 @@ function this.TreasureStateIndicaion(buffer)
local msg = Expedition_pb.TreasureStateIndicaion()--ExpeditionResetIndication()
msg:ParseFromString(data)
-- LogGreen("msg.score :"..msg.score.." msg.resetTime:"..msg.resetTime)
TreasureOfHeavenManger.SetScore(msg.score)
TreasureOfHeavenManger.SetLimitTime(msg.resetTime)
for i = 1, #msg.treasureRewardState do
TreasureOfHeavenManger. SetSingleRewardState(msg.treasureRewardState[i].id,msg.treasureRewardState[i].state)
end
TreasureOfHeavenManger.UpdateData(msg)
LogPink("推回来的数据长度"..#msg.treasureRewardState)
end
function this.GuildTranscriptIndication(buffer)
local data = buffer:DataByte()

View File

@ -4189,9 +4189,7 @@ function NetManager.TreasureOfHeavenScoreRequest(func)
local data = buffer:DataByte()
local msg = Expedition_pb.ExpeditionTreasureInfoResponse()
msg:ParseFromString(data)
TreasureOfHeavenManger.SetScore(msg.score)
TreasureOfHeavenManger.SetLimitTime(msg.resetTime)
TreasureOfHeavenManger.SetState(msg.treasureRewardState)
TreasureOfHeavenManger.UpdateData(msg)
if func then
func(msg)
end

View File

@ -54,7 +54,7 @@ function this:OnShow(_parent,...)
local temp = {...}
curType = temp[1]
if curType == 1 then
rewardStateData = TreasureOfHeavenManger.GetState()
rewardStateData = TreasureOfHeavenManger.rewardStateData
rewardData = TreasureOfHeavenManger.GetAllRewardData()
this:showRewardTianGong()
this.tip.text = Language[12366]
@ -84,8 +84,10 @@ function this:showRewardTianGong()
local direct = {}
local indirect ={}
local curScore = TreasureOfHeavenManger.GetScore()--当前分数
local curScore = TreasureOfHeavenManger.curScore--当前分数
LogPink("sssss"..#rewardData)
LogBlue("aaaaaa"..#rewardStateData)
for i = 1, #rewardData do
if curScore >= rewardData[i].Integral then
if rewardStateData[i].state == 1 or rewardStateData[i].state == 0 then--已达成但不能领取的

View File

@ -1,23 +1,36 @@
TreasureOfHeavenManger = {}
local this = TreasureOfHeavenManger
local WorldBossTreasureConfig = ConfigManager.GetConfig(ConfigName.WorldBossTreasureConfig)
local ConfigData = ConfigManager.GetConfig(ConfigName.WorldBossTreasureConfig)
local curScore--当前分数
local limitTime--倒计时
local rewardStateData = {}--各个任务状态数据
local rewardData = {}--表内活动任务数据
this.curScore = 0--当前分数
this.resetTime = 0--倒计时
this.rewardStateData = {}--各个任务状态数据
-- local rewardData = {}--表内活动任务数据
this.TreasrueState = nil--礼包购买状态
function this.Initialize()
rewardData = {}
for i, v in ConfigPairs(WorldBossTreasureConfig) do
table.insert(rewardData, v)
function this.UpdateData(msg)
-- rewardData = {}
-- for i, v in ConfigPairs(ConfigData) do
-- table.insert(rewardData, v)
-- end
if msg.score then
this.curScore = msg.score
end
if msg.resetTime then
this.resetTime = msg.resetTime
end
if msg.treasureRewardState then
if #msg.treasureRewardState == 1 then
for i = 1, #this.rewardStateData do
if this.rewardStateData[i].id == msg.treasureRewardState.id then
this.rewardStateData[i].state = msg.treasureRewardState.state
end
end
elseif #msg.treasureRewardState > 1 then
this.rewardStateData = msg.treasureRewardState
end
end
end
function this.GetTreasureState()
this.TreasrueState = OperatingManager.GetGoodsBuyTime(GoodsTypeDef.TreasureOfHeaven,106)
return this.TreasrueState
end
function this.SetTreasureState()
@ -25,45 +38,29 @@ function this.SetTreasureState()
return this.TreasrueState
end
function this.SetScore(score)
curScore = score
end
function this.GetScore()
return curScore
end
function this.SetLimitTime(time)
limitTime = time
end
function this.GetLimitTime()
return limitTime
end
function this.SetState(treasureRewardState)
rewardStateData = {}
for i, v in ipairs(treasureRewardState) do
table.insert(rewardStateData, v)
end
end
function this.GetState()
return rewardStateData
end
function this.SetSingleRewardState(id,state)
for i = 1, #rewardStateData do
if(rewardStateData[i].id == id)then
rewardStateData[i].state = state
for i = 1, #this.rewardStateData do
if(this.rewardStateData[i].id == id)then
this.rewardStateData[i].state = state
end
end
CheckRedPointStatus(RedPointType.Expedition_Treasure)
end
function this.GetAllRewardData()
return rewardData
local data={}
for i = 1, #this.rewardStateData do
for k, v in ConfigPairs(ConfigData) do
if this.rewardStateData[i].id == v.Id then
table.insert(data, v)
end
end
end
return data
end
--红点检测
function this.RedPointState(singleRewardData,TreasrueState)
if curScore >= rewardData[singleRewardData.id].Integral then
if this.curScore >= ConfigData[singleRewardData.id].Integral then
if singleRewardData.state==0 and this.TreasrueState==1 or
singleRewardData.state==1 and this.TreasrueState==1 or
singleRewardData.state==0 and this.TreasrueState==0 then
@ -75,12 +72,16 @@ function this.RedPointState(singleRewardData,TreasrueState)
end
function this.RedPoint()
for i =1, #rewardStateData do
local data={}
for i, v in ConfigPairs(ConfigData) do
table.insert(data, v)
end
for i =1, #this.rewardStateData do
local curTreasrueState = OperatingManager.GetGoodsBuyTime(GoodsTypeDef.TreasureOfHeaven,106)
if curScore >= rewardData[rewardStateData[i].id].Integral then
if rewardStateData[i].state==0 and curTreasrueState==1 or
rewardStateData[i].state==1 and curTreasrueState==1 or
rewardStateData[i].state==0 and curTreasrueState==0 then
if this.curScore >= ConfigData[this.rewardStateData[i].id].Integral then
if this.rewardStateData[i].state==0 and curTreasrueState==1 or
this.rewardStateData[i].state==1 and curTreasrueState==1 or
this.rewardStateData[i].state==0 and curTreasrueState==0 then
return true
end
end

View File

@ -1,10 +1,11 @@
require("Base/BasePanel")
local TreasureOfHeavenPanel = Inherit(BasePanel)
local this = TreasureOfHeavenPanel
local curScore = 0--当前分数
local rewardStateData = {}
-- local curScore = 0--当前分数
-- local rewardStateData = {}
local treasureState = nil
local rewardData--表内活动数据
local rewardData--后端活动数据
local ConfigData = ConfigManager.GetConfig(ConfigName.WorldBossTreasureConfig)
--初始化组件(用于子类重写)
function TreasureOfHeavenPanel:InitComponent()
@ -67,23 +68,19 @@ end
-- 打开,重新打开时回调
function TreasureOfHeavenPanel:OnShow()
this.tips.text = Language[11988]
this.time.text=TimeToDHMS(TreasureOfHeavenManger.GetLimitTime()-GetTimeStamp())
this.time.text=TimeToDHMS(TreasureOfHeavenManger.resetTime - GetTimeStamp())
TreasureOfHeavenPanel:ShowTime()
TreasureOfHeavenPanel:refresh()
end
function TreasureOfHeavenPanel:refresh()
rewardData = TreasureOfHeavenManger.GetAllRewardData()
treasureState = TreasureOfHeavenManger.GetTreasureState()--秘宝礼包状态 0:可购买 1:已购买
rewardStateData = TreasureOfHeavenManger.GetState()--任务状态
if #rewardStateData <= 0 then
curScore = TreasureOfHeavenManger.GetScore()--当前分数
rewardStateData = TreasureOfHeavenManger.GetState()--任务状态
treasureState = TreasureOfHeavenManger.TreasrueState
rewardData = TreasureOfHeavenManger.rewardStateData
LogGreen("#rewardData长度"..#rewardData)
if #TreasureOfHeavenManger.rewardStateData <= 0 then
TreasureOfHeavenPanel:topBar()
TreasureOfHeavenPanel:showTaskList()
else
curScore = TreasureOfHeavenManger.GetScore()--当前分数
TreasureOfHeavenPanel:topBar()
TreasureOfHeavenPanel:showTaskList()
end
@ -101,8 +98,7 @@ function TreasureOfHeavenPanel:topBar()
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.HeavenUnlockExtraRewardPanel,1)
end)
end
this.scoreText.text = curScore
this.scoreText.text = TreasureOfHeavenManger.curScore
end
@ -114,16 +110,16 @@ function TreasureOfHeavenPanel:showTaskList()
--定位打开界面时位置
local t = 0
if treasureState == 0 then
for i = 1, #rewardStateData do
if rewardStateData[i].state == 0 then
if TreasureOfHeavenManger.TreasrueState == 0 then
for i = 1, #rewardData do
if rewardData[i].state == 0 then
t = i
break
end
end
elseif treasureState == 1 then
for i = 1, #rewardStateData do
if rewardStateData[i].state == 1 or rewardStateData[i].state == 0 then
elseif TreasureOfHeavenManger.TreasrueState == 1 then
for i = 1, #rewardData do
if rewardData[i].state == 1 or rewardData[i].state == 0 then
t = i
break
end
@ -134,7 +130,7 @@ end
local itemsList={}
--单个任务
function TreasureOfHeavenPanel:SingleTask(rewardItem, rewardSingleData)
function TreasureOfHeavenPanel:SingleTask(rewardItem, singleData)
local scoreLevel = Util.GetGameObject(rewardItem, "scoreLevel"):GetComponent("Text")
local pos1 = Util.GetGameObject(rewardItem, "itemPos_1")
local pos3 = Util.GetGameObject(rewardItem, "itemPos_3")
@ -147,16 +143,16 @@ function TreasureOfHeavenPanel:SingleTask(rewardItem, rewardSingleData)
itemsList[rewardItem] ={item1,item3,item4}
end
scoreLevel.text = rewardSingleData.Integral
itemsList[rewardItem][1]:OnOpen(false, {rewardSingleData.Reward[1][1], rewardSingleData.Reward[1][2]}, 0.8, false)
itemsList[rewardItem][2]:OnOpen(false, {rewardSingleData.TreasureReward[1][1], rewardSingleData.TreasureReward[1][2]}, 0.8, false)
itemsList[rewardItem][3]:OnOpen(false, {rewardSingleData.TreasureReward[2][1], rewardSingleData.TreasureReward[2][2]}, 0.8, false)
scoreLevel.text = ConfigData[singleData.id].Integral
itemsList[rewardItem][1]:OnOpen(false, {ConfigData[singleData.id].Reward[1][1], ConfigData[singleData.id].Reward[1][2]}, 0.8, false)
itemsList[rewardItem][2]:OnOpen(false, {ConfigData[singleData.id].TreasureReward[1][1], ConfigData[singleData.id].TreasureReward[1][2]}, 0.8, false)
itemsList[rewardItem][3]:OnOpen(false, {ConfigData[singleData.id].TreasureReward[2][1], ConfigData[singleData.id].TreasureReward[2][2]}, 0.8, false)
--初始化按钮状态
TreasureOfHeavenPanel:InitButtonState(rewardItem, rewardSingleData)
TreasureOfHeavenPanel:InitButtonState(rewardItem, singleData)
end
--初始化按钮状态
function TreasureOfHeavenPanel:InitButtonState(rewardItem, rewardSingleData)
function TreasureOfHeavenPanel:InitButtonState(rewardItem, singleData)
local btnDeal = Util.GetGameObject(rewardItem, "btnDeal")
local get = Util.GetGameObject(rewardItem, "btnDeal/get")
@ -165,9 +161,9 @@ function TreasureOfHeavenPanel:InitButtonState(rewardItem, rewardSingleData)
local finished = Util.GetGameObject(rewardItem, "finished")
local redPoint = Util.GetGameObject(rewardItem, "btnDeal/redPoint")
--当前任务领取情况
local state = rewardStateData[rewardSingleData.Id].state
local state = singleData.state
--判断
if curScore >= rewardSingleData.Integral then
if TreasureOfHeavenManger.curScore >= ConfigData[singleData.id].Integral then
if (state == -1) then
btnDeal.gameObject:SetActive(false)
get.gameObject:SetActive(false)
@ -196,17 +192,17 @@ function TreasureOfHeavenPanel:InitButtonState(rewardItem, rewardSingleData)
end
--添加点击事件
Util.AddOnceClick(btnDeal,function()
TreasureOfHeavenPanel:OnBtnDealClicked(rewardItem,rewardSingleData)
TreasureOfHeavenPanel:OnBtnDealClicked(rewardItem,singleData)
end)
--红点状态
redPoint:SetActive(TreasureOfHeavenManger.RedPointState(rewardStateData[rewardSingleData.Id],treasureState))
redPoint:SetActive(TreasureOfHeavenManger.RedPointState(singleData,treasureState))
end
--按钮事件
function TreasureOfHeavenPanel:OnBtnDealClicked(rewardItem,rewardSingleData)
function TreasureOfHeavenPanel:OnBtnDealClicked(rewardItem,singleData)
local btnDeal = Util.GetGameObject(rewardItem, "btnDeal")
local get = Util.GetGameObject(rewardItem, "btnDeal/get")
@ -214,21 +210,21 @@ function TreasureOfHeavenPanel:OnBtnDealClicked(rewardItem,rewardSingleData)
local unfinished = Util.GetGameObject(rewardItem, "btnDeal/unfinished")
local finished = Util.GetGameObject(rewardItem, "btnDeal/finished")
if curScore >= rewardSingleData.Integral then--分数达到要求
if (rewardStateData[rewardSingleData.Id].state == 0 and treasureState == 0) or--任务未领取+礼包未购买
(rewardStateData[rewardSingleData.Id].state == 1 and treasureState == 1) or--任务已领取+礼包已购买
(rewardStateData[rewardSingleData.Id].state == 0 and treasureState == 1)then--任务未领取+礼包已购买
NetManager.GetTreasureOfHeavenRewardRequest(rewardStateData[rewardSingleData.Id].id,function(msg)
if TreasureOfHeavenManger.curScore >= ConfigData[singleData.id].Integral then--分数达到要求
if (singleData.state == 0 and treasureState == 0) or--任务未领取+礼包未购买
(singleData.state == 1 and treasureState == 1) or--任务已领取+礼包已购买
(singleData.state == 0 and treasureState == 1)then--任务未领取+礼包已购买
NetManager.GetTreasureOfHeavenRewardRequest(singleData.id,function(msg)
UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1)
--需要刷新界面
if treasureState == 0 then--判断是否已经购买了礼包
TreasureOfHeavenManger.SetSingleRewardState(rewardStateData[rewardSingleData.Id].id,1)
TreasureOfHeavenManger.SetSingleRewardState(singleData.id,1)
else
TreasureOfHeavenManger.SetSingleRewardState(rewardStateData[rewardSingleData.Id].id,-1)
TreasureOfHeavenManger.SetSingleRewardState(singleData.id,-1)
end
TreasureOfHeavenPanel:refresh()--刷新界面
end)
elseif rewardStateData[rewardSingleData.Id].state == 1 and treasureState == 0 then----任务已领取+礼包未购买(弹出购买界面)
elseif singleData.state == 1 and treasureState == 0 then----任务已领取+礼包未购买(弹出购买界面)
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.HeavenUnlockExtraRewardPanel,1)
end
else--分数未达到要求
@ -241,13 +237,13 @@ function TreasureOfHeavenPanel:ShowTime()
self.localTimer:Stop()
self.localTimer = nil
end
local t = TreasureOfHeavenManger.GetLimitTime()
local t = TreasureOfHeavenManger.resetTime
local time
self.localTimer = Timer.New(function()
time = t-GetTimeStamp()
if t-GetTimeStamp() <= 0 then
time = t - GetTimeStamp()
if t - GetTimeStamp() <= 0 then
time = 0
t = TreasureOfHeavenManger.GetLimitTime()
t = TreasureOfHeavenManger.resetTime
treasureState = nil
TreasureOfHeavenPanel:refresh()
end
@ -266,7 +262,7 @@ end
--界面销毁时调用(用于子类重写)
function TreasureOfHeavenPanel:OnDestroy()
rewardStateData = {}
rewardData = {}
end
return TreasureOfHeavenPanel