Merge branch 'master_develop' of http://60.1.1.230/gaoxin/JL_Client into master_develop

dev_chengFeng
jiaoyangna 2020-08-27 22:23:09 +08:00
commit 7aff7b3c5c
6 changed files with 97 additions and 108 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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