From 6ab70e6e8dbc817817c5ddacba50c139bc7fbe85 Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Fri, 21 May 2021 14:47:04 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E3=80=91=3D=3D=3D?= =?UTF-8?q?=3D=3D=3D=3D=3D=3D=3D=E5=85=AC=E4=BC=9A=E7=BA=A2=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GuildAtlas/ArtFont/g_ghhb_ming_04.png | Bin 0 -> 14446 bytes .../ArtFont/g_ghhb_ming_04.png.meta | 99 + .../Atlas/GuildAtlas/g_ghhb_hongbaotukou.png | Bin 0 -> 12712 bytes .../GuildAtlas/g_ghhb_hongbaotukou.png.meta | 99 + .../Guild/RedPacketView/RedPacketPanel.prefab | 1705 ++++++++++++++++- .../Prefabs/UI/View/ChatTipView.prefab | 168 ++ .../~Lua/Common/GlobalDefine.lua | 2 + .../ManagedResources/~Lua/Logic/GameEvent.lua | 2 + .../Battle/Logic/HardStageCondition.lua | 12 +- .../Battle/Logic/HardStageEventManager.lua | 1 - .../~Lua/Modules/Chat/ChatManager.lua | 1 + .../~Lua/Modules/Guild/GuildFindPopup.lua | 3 + .../~Lua/Modules/Guild/MyGuildManager.lua | 47 + .../RedPacketView/GuildRedPacketManager.lua | 42 +- .../Guild/RedPacketView/RedPacketPanel.lua | 42 +- .../Guild/RedPacketView/RedPacketPopup.lua | 16 +- .../Guild/RedPacketView/RedPacket_GetView.lua | 81 +- .../RedPacketView/RedPacket_SendView.lua | 1 + .../RedPacketView/RedPacket_SendWealView.lua | 151 ++ .../RedPacket_SendWealView.lua.meta | 7 + .../~Lua/Modules/Login/LoginPanel.lua | 3 +- .../~Lua/Modules/Net/IndicationManager.lua | 18 + .../~Lua/Modules/Net/NetManager.lua | 23 +- .../~Lua/Modules/Player/PlayerManager.lua | 13 +- .../~Lua/Modules/Player/RedpotManager.lua | 7 +- .../~Lua/View/ChatTipView.lua | 22 +- 26 files changed, 2485 insertions(+), 80 deletions(-) create mode 100644 Assets/ManagedResources/Atlas/GuildAtlas/ArtFont/g_ghhb_ming_04.png create mode 100644 Assets/ManagedResources/Atlas/GuildAtlas/ArtFont/g_ghhb_ming_04.png.meta create mode 100644 Assets/ManagedResources/Atlas/GuildAtlas/g_ghhb_hongbaotukou.png create mode 100644 Assets/ManagedResources/Atlas/GuildAtlas/g_ghhb_hongbaotukou.png.meta create mode 100644 Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendWealView.lua create mode 100644 Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendWealView.lua.meta diff --git a/Assets/ManagedResources/Atlas/GuildAtlas/ArtFont/g_ghhb_ming_04.png b/Assets/ManagedResources/Atlas/GuildAtlas/ArtFont/g_ghhb_ming_04.png new file mode 100644 index 0000000000000000000000000000000000000000..b0aeeeae6f14fd3e88f74663310726545cf71a9c GIT binary patch literal 14446 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 then return 1 end @@ -63,7 +63,7 @@ local _ConditionConfig = { --不上阵[a]职能神将通过关卡 [7]=function(condition) local v1 = condition[1] - local list = RoleManager.Query(function(v) return v.camp == 0 and v.professionId==v1 end) + local list = RoleManager.Query(function(v) return v.camp == 0 and v.professionId==v1 end,true) if BattleUtil.LengthOfTable(list)==0 then return 1 end @@ -72,7 +72,7 @@ local _ConditionConfig = { --不上阵[a]阵营神将通过关卡 [8]=function(condition) local v1 = condition[1] - local list = RoleManager.Query(function(v) return v.camp == 0 and v.element==v1 end) + local list = RoleManager.Query(function(v) return v.camp == 0 and v.element==v1 end,true) if BattleUtil.LengthOfTable(list)==0 then return 1 end @@ -81,7 +81,7 @@ local _ConditionConfig = { --佩戴xxxid被动通过关卡 [9]=function(condition) local v1 = condition[1] - local list = RoleManager.Query(function(v) return v.camp == 0 end) + local list = RoleManager.Query(function(v) return v.camp == 0 end,true) if not list or #list==0 then return 0 end @@ -105,7 +105,7 @@ local _ConditionConfig = { --全部上阵[a]职业神将通过关卡 [11]=function(condition) local v1 = condition[1] - local list = RoleManager.Query(function(v) return v.camp == 0 and v.professionId~=v1 end) + local list = RoleManager.Query(function(v) return v.camp == 0 and v.professionId~=v1 end,true) if BattleUtil.LengthOfTable(list)==0 then return 1 end diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/HardStageEventManager.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/HardStageEventManager.lua index 35ad25e918..f85e856df1 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/HardStageEventManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/HardStageEventManager.lua @@ -38,7 +38,6 @@ function this.OnBuffAdd(caster,target,buff) if caster and target and buff then if caster.camp==0 and buff.type==BuffName.Control then local type=buff.ctrlType - LogError("ctrltype=="..type) if ctrlNumList[type] then ctrlNumList[type]=ctrlNumList[type]+1 else diff --git a/Assets/ManagedResources/~Lua/Modules/Chat/ChatManager.lua b/Assets/ManagedResources/~Lua/Modules/Chat/ChatManager.lua index b3d8032c7d..7f6eff91b9 100644 --- a/Assets/ManagedResources/~Lua/Modules/Chat/ChatManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Chat/ChatManager.lua @@ -263,6 +263,7 @@ function this.ChatDataAdapter(channel, data) GuildRedPacketManager.isCheck = true CheckRedPointStatus(RedPointType.Guild_RedPacket) + CheckRedPointStatus(RedPointType.Guid_GetPackage) end end end diff --git a/Assets/ManagedResources/~Lua/Modules/Guild/GuildFindPopup.lua b/Assets/ManagedResources/~Lua/Modules/Guild/GuildFindPopup.lua index 5c8815e74f..37551c7c15 100644 --- a/Assets/ManagedResources/~Lua/Modules/Guild/GuildFindPopup.lua +++ b/Assets/ManagedResources/~Lua/Modules/Guild/GuildFindPopup.lua @@ -258,6 +258,9 @@ function this.JoinGuildSuccess() UIManager.OpenPanel(UIName.GuildMainCityPanel) -- PopupTipPanel.ShowTip(Language[10377]) + MyGuildManager.ReuqsetRedPackage(function() + CheckRedPointStatus(RedPointType.Guid_GetPackage) + end) end -- 设置数据类型 diff --git a/Assets/ManagedResources/~Lua/Modules/Guild/MyGuildManager.lua b/Assets/ManagedResources/~Lua/Modules/Guild/MyGuildManager.lua index 6b11d7f3b7..2a8f3ba569 100644 --- a/Assets/ManagedResources/~Lua/Modules/Guild/MyGuildManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Guild/MyGuildManager.lua @@ -10,6 +10,8 @@ function this.Initialize() this.MyGuildLogList = {} this._MemWalkData = {} this.MyFeteInfo={} + this.MyGuidRedPackage={} + this.PackageNum=0 end -- 登录初始化数据 @@ -167,6 +169,32 @@ function MyGuildManager.RequestChangeLogo(logoId, func) Game.GlobalEvent:DispatchEvent(GameEvent.Guild.DataUpdate) end) end +--请求可以领取红包数据 +function MyGuildManager.ReuqsetRedPackage(func) + NetManager.GetAllRedPacketResponse(function(msg) + local num=0 + local SpecialConfig=ConfigManager.GetConfigData(ConfigName.SpecialConfig,115) + for i = 1, #msg.info do + local config=ConfigManager.GetConfigData(ConfigName.GuildRedPackConfig,msg.info[i].redType) + + if msg.info[i].isGet==0 and (config.Num-msg.info[i].getCount)>0 then + if config.BaseType~=2 or PlayerManager.dailyRedPack< tonumber(SpecialConfig.Value) then + LogError("红包id:"..config.Id) + num=num+1 + end + end + end + this.PackageNum=num + if func then + func(msg) + end + end) + +end +--获取红包数据 +function MyGuildManager.GetRedPackageNum() + return this.PackageNum +end -- 获取我的公会信息 function MyGuildManager.GetMyGuildInfo() @@ -177,6 +205,25 @@ end function MyGuildManager.GetMyGuildMemList() return this.MyGuildMemList end +--获取福利红包数据 +function MyGuildManager.GetMyGuidRedPackage() + return this.MyGuidRedPackage +end +--设置福利红包数据 +function MyGuildManager.SetMyGuidRedPackage(data) + local list={} + if data then + for key, value in pairs(data) do + if value.id then + LogError(" package id =="..value.id.." num=="..value.num) + local data={} + data.num=value.num + list[value.id]=data + end + end + end + this.MyGuidRedPackage=list +end -- 获取我的公会的会长信息 function MyGuildManager.GetMyGuildMasterInfo() diff --git a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/GuildRedPacketManager.lua b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/GuildRedPacketManager.lua index 5ccdf6054f..0f91181b4d 100644 --- a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/GuildRedPacketManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/GuildRedPacketManager.lua @@ -11,11 +11,49 @@ end -- 检查公会红包红点 function this.CheckGuildRedPacketRedPoint() -- Log(""..tostring(this.isCheck).."") - if this.isCheck then - return this.isCheck + -- if this.isCheck then + -- return this.isCheck + -- else + -- return false + -- end + LogError("检测发红包红点") + local list=MyGuildManager.GetMyGuidRedPackage() + if list then + for key, value in pairs(list) do + if value.num>0 then + return true + end + end + end + return false +end +function this.CheckIsCanGetPackage() + + -- NetManager.GetAllRedPacketResponse(function(msg) + + -- -- local data={} + -- -- for i,v in ipairs(msg.info) do + -- -- table.insert(data,v) + -- -- end + + -- local dataLength=#msg.info + -- LogError("+++++++++++++++ "..dataLength ) + -- if dataLength>0 then + -- return true + -- end + + -- return false + -- end) + LogError("can send package num:"..MyGuildManager.PackageNum) + if MyGuildManager.PackageNum>0 then + Game.GlobalEvent:DispatchEvent(GameEvent.Chat.OnRedPackageNumChanged) + return true else + Game.GlobalEvent:DispatchEvent(GameEvent.Chat.OnRedPackageNumChanged) return false end + end + return this \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacketPanel.lua b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacketPanel.lua index 59ef51acb2..78051dc6cb 100644 --- a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacketPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacketPanel.lua @@ -9,25 +9,29 @@ local _TabFontColor = { default = Color.New(130 / 255, 128 / 255, 120 / 255, 1), select = Color.New(243 / 255, 235 / 255, 202 / 255, 1) } local _TabData = { [1]= {txt = Language[11037]}, - [2]= {txt = Language[11038]}, - [3]= {txt = Language[11039]}, + [2]= {txt = "发福利红包"}, + [3]= {txt = Language[11038]}, + [4]= {txt = Language[11039]}, } --子模块脚本 this.contents = { --主面板 [1] = {view = require("Modules/Guild/RedPacketView/RedPacket_SendView"), panelName = "SendView"}, + --发送福利红包 + [2] = {view = require("Modules/Guild/RedPacketView/RedPacket_SendWealView"), panelName = "SendWealView"}, --天官赐福 - [2] = {view = require("Modules/Guild/RedPacketView/RedPacket_GetView"), panelName = "GetView"}, + [3] = {view = require("Modules/Guild/RedPacketView/RedPacket_GetView"), panelName = "GetView"}, --每日仙缘礼 - [3] = {view = require("Modules/Guild/RedPacketView/RedPacket_RankView"), panelName = "RankView"}, + [4] = {view = require("Modules/Guild/RedPacketView/RedPacket_RankView"), panelName = "RankView"}, } -- this.contentPanel={} this.sortingOrder = 0 +this.curIndex=1 --初始化组件(用于子类重写) function RedPacketPanel:InitComponent() this.panel=Util.GetGameObject(self.gameObject, "Panel") this.backBtn=Util.GetGameObject(this.panel,"BackBtn") - this.tabbox = Util.GetGameObject(this.panel, "TabBox") + this.tabbox = Util.GetGameObject(this.panel, "Contents/TabBox") this.content=Util.GetGameObject(this.panel,"Contents") this.contentPanel={} @@ -69,21 +73,39 @@ function RedPacketPanel:RemoveListener() end --界面打开时调用(用于子类重写) -function RedPacketPanel:OnOpen() - +function RedPacketPanel:OnOpen(index) + if index then + this.curIndex=index + end end +local redPointList --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function RedPacketPanel:OnShow() - BindRedPointObject(RedPointType.Guild_RedPacket,this.redPoint) - CheckRedPointStatus(RedPointType.Guild_RedPacket) + -- BindRedPointObject(RedPointType.Guild_RedPacket,this.redPoint) + this.tabbox:SetActive(true) this.TabCtrl = TabBox.New() this.TabCtrl:SetTabAdapter(this.TabAdapter) this.TabCtrl:SetChangeTabCallBack(this.OnTabChange) - this.TabCtrl:Init(this.tabbox, _TabData) + this.TabCtrl:Init(this.tabbox, _TabData,this.curIndex) + + redPointList = {} + for i = 1, Util.GetGameObject(this.tabbox,"box").transform.childCount do + redPointList[i] =Util.GetGameObject(Util.GetGameObject(this.tabbox,"box").transform:GetChild(i-1).gameObject,"RedPoint") + redPointList[i]:SetActive(false) + end + + if redPointList[2] and redPointList[3] then + BindRedPointObject(RedPointType.Guid_SendPackage, redPointList[2]) + BindRedPointObject(RedPointType.Guid_GetPackage, redPointList[3]) + end + CheckRedPointStatus(RedPointType.Guid_SendPackage) + CheckRedPointStatus(RedPointType.Guid_GetPackage) end + + --重设层级 function RedPacketPanel:OnSortingOrderChange() this.sortingOrder = self.sortingOrder diff --git a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacketPopup.lua b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacketPopup.lua index 11d166b761..7591d058f4 100644 --- a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacketPopup.lua +++ b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacketPopup.lua @@ -4,7 +4,7 @@ local this=RedPacketPopup this.playerScrollHead={}--滚动条头像 this.sendPlayerHead={}--发送者头像 --红包资源名 -local RedPacketName={"g_ghhb_ming_01_zh","g_ghhb_ming_02_zh","g_ghhb_ming_03_zh"} +local RedPacketName={"g_ghhb_ming_01_zh","g_ghhb_ming_02_zh","g_ghhb_ming_03_zh","g_ghhb_ming_04_zh"} --红包按钮状态图片 local BtnStateImage={"g_ghhb_qiang","g_ghhb_lingqu","g_ghhb_lingwan"}--抢 已领取 已领完 @@ -71,9 +71,17 @@ end --初始化面板 function this.InitView(redId,id) local config=ConfigManager.GetConfigData(ConfigName.GuildRedPackConfig,id) - - this.title.sprite=Util.LoadSprite(RedPacketName[id]) - this.titleTip.text=GetLanguageStrById(config.SendWord) + local index=id + if index>3 then + index=4 + end + this.title.sprite=Util.LoadSprite(RedPacketName[index]) + if config.BaseType==1 then + this.titleTip.text=GetLanguageStrById(config.SendWord) + elseif config.BaseType==2 then + this.titleTip.text=GetLanguageStrById(config.RuleDes) + end + NetManager.GetRedPackageDetailRequest(redId,function(msg) -- logWarnTrance(TimeToDHMS(msg.remainTime)) diff --git a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_GetView.lua b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_GetView.lua index 534d423db1..dd2f687b96 100644 --- a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_GetView.lua +++ b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_GetView.lua @@ -1,11 +1,12 @@ ----- 公会红包-抢红包 ----- -local this = {} +this={} local sortingOrder=0 --红包资源名 -local RedPacketName={"g_ghhb_ming_01_zh","g_ghhb_ming_02_zh","g_ghhb_ming_03_zh"} +local RedPacketName={"g_ghhb_ming_01_zh","g_ghhb_ming_02_zh","g_ghhb_ming_03_zh","g_ghhb_ming_04_zh"} --红包按钮状态图片 local BtnStateImage={"g_ghhb_qiang_zh","g_ghhb_lingqu_zh","g_ghhb_lingwan_zh"}--抢 已领取 已领完 + function this:InitComponent(gameObject) this.group=Util.GetGameObject(gameObject,"Root/Group")--红包父节点 this.noInfo=Util.GetGameObject(gameObject,"NoInfo")--无红包提示 @@ -20,16 +21,26 @@ end function this:BindEvent() + end function this:AddListener() Game.GlobalEvent:AddEvent(GameEvent.GuildRedPacket.OnRefreshGetRedPacket, this.InitGetView) + Game.GlobalEvent:AddEvent(GameEvent.GuildRedPacket.AuoGetRedPackage, this.AutoGetRedPackage) end function this:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.GuildRedPacket.OnRefreshGetRedPacket, this.InitGetView) + Game.GlobalEvent:RemoveEvent(GameEvent.GuildRedPacket.AuoGetRedPackage, this.AutoGetRedPackage) end +local isAuto=false +--自动抢红包 +function this:AutoGetRedPackage() + isAuto=true +end + + function this:OnShow(_sortingOrder) -- logWarnTrance("打开抢红包") sortingOrder=_sortingOrder @@ -38,6 +49,7 @@ end function this:OnClose() -- logWarnTrance("关闭抢红包") + isAuto=false end function this:OnDestroy() @@ -47,6 +59,7 @@ end --初始化抢红包面板 function this:InitGetView() local dataLength=0 + isAuto=false NetManager.GetAllRedPacketResponse(function(msg) -- logWarnTrance(#msg.info) -- for index, value in ipairs(msg.info) do @@ -57,19 +70,58 @@ function this:InitGetView() for i,v in ipairs(msg.info) do table.insert(data,v) end + LogError("len=========="..LengthOfTable(data)) this:DataSort(data) dataLength=#msg.info this.noInfo:SetActive(dataLength==0) - this.scrollView:SetData(data,function(index,root) this:SetView(root,data[index]) end) this.scrollView:SetIndex(1) + if isAuto then + local SpecialConfig=ConfigManager.GetConfigData(ConfigName.SpecialConfig,115) + for key, value in pairs(data) do + local config=ConfigManager.GetConfigData(ConfigName.GuildRedPackConfig,value.redType) + if value.isGet==0 and (config.Num-value.getCount)>0 and isAuto then + if config.BaseType~=2 or PlayerManager.dailyRedPack< tonumber(SpecialConfig.Value) then + isAuto=false + LogError("redid============"..value.redId) + NetManager.GetRobRedPackageRequest(value.redId,function(msg) + local success=msg.isSuccess + local itemId=msg.itemId + local count=msg.count + if success==1 then--红包抢成功 + local itemName=GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.ItemConfig,itemId).Name) + UIManager.OpenPanel(UIName.RedPacketPopup,config.Id,value.redType) + --红包类型大于3的是福利红包 + if value.redType>3 then + PlayerManager.SettDailyRedPackageTime(PlayerManager.dailyRedPack+1) + end + MyGuildManager.ReuqsetRedPackage(function() + CheckRedPointStatus(RedPointType.Guid_GetPackage) + end) + PopupTipPanel.ShowTip(string.format(Language[11046],itemName,count)) + else--抢红包失败 + LogError(Language[11047]) + PopupTipPanel.ShowTip(Language[11047]) + end + this:InitGetView() + --检测可领取红包的数量 + end) + return + end + end + end + end end) end + + + function this:SetView(root,data) + LogError("-------------------") local nameImage=Util.GetGameObject(root,"NameImage"):GetComponent("Image")--红包名 local fromPlayer=Util.GetGameObject(root,"FromPlayer"):GetComponent("Text")--红包来自玩家名 local getBtn=Util.GetGameObject(root,"GetBtn")--抢红包按钮 @@ -77,10 +129,20 @@ function this:SetView(root,data) local getBtnImage=Util.GetGameObject(root,"GetBtn/Image"):GetComponent("Image")--按钮状态图片 local numOrRecordBtn=Util.GetGameObject(root,"NumOrRecord") local numOrRecordText=Util.GetGameObject(root,"NumOrRecord/Text"):GetComponent("Text")--剩余礼包数或查看记录 + local getInfo=Util.GetGameObject(root,"GetInfo"):GetComponent("Text")--获取信息 local redId=data.redId + local redType=data.redType + if redType>3 then + redType=4 + end local config=ConfigManager.GetConfigData(ConfigName.GuildRedPackConfig,data.redType) - - nameImage.sprite=Util.LoadSprite(RedPacketName[data.redType]) + if config.BaseType==1 then + getInfo.gameObject:SetActive(false) + else + getInfo.gameObject:SetActive(true) + getInfo.text=config.RuleDes + end + nameImage.sprite=Util.LoadSprite(RedPacketName[redType]) fromPlayer.text=Language[11042]..data.userName.."" getBtn:GetComponent("Button").interactable=(config.Num-data.getCount)~=0 and data.isGet==0 --抢红包按钮开关 @@ -92,6 +154,7 @@ function this:SetView(root,data) numOrRecordText.text=Language[11043] getBtnImage.sprite=Util.LoadSprite(BtnStateImage[2]) --Language[10101] else + LogError("redid"..redId) numOrRecordText.text=Language[10580]..(config.Num-data.getCount).."/"..config.Num getBtnImage.sprite=Util.LoadSprite(BtnStateImage[1]) --Language[11044] end @@ -109,12 +172,20 @@ function this:SetView(root,data) if success==1 then--红包抢成功 local itemName=GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.ItemConfig,itemId).Name) UIManager.OpenPanel(UIName.RedPacketPopup,redId,data.redType) + --红包类型大于3的是福利红包 + if data.redType>3 then + PlayerManager.SettDailyRedPackageTime(PlayerManager.dailyRedPack+1) + end PopupTipPanel.ShowTip(string.format(Language[11046],itemName,count)) + MyGuildManager.ReuqsetRedPackage(function() + CheckRedPointStatus(RedPointType.Guid_GetPackage) + end) else--抢红包失败 PopupTipPanel.ShowTip(Language[11047]) end this:InitGetView() end) + end) Util.AddOnceClick(numOrRecordBtn,function()--查看记录 NetManager.GetRedPackageDetailRequest(redId,function(msg) diff --git a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendView.lua b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendView.lua index 112096e5c2..9e7a9083d0 100644 --- a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendView.lua +++ b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendView.lua @@ -260,6 +260,7 @@ function this.RechargeSuccessFunc(id) this.SetInfo(curIndex) --PopupTipPanel.ShowTip(string.format( Language[11051],GetLanguageStrById(redpack.Name))) ChatManager.RequestSendRedPacket(curIndex) + CheckRedPointStatus(RedPointType.Guid_GetPackage) end return this \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendWealView.lua b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendWealView.lua new file mode 100644 index 0000000000..552e5e7a7e --- /dev/null +++ b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendWealView.lua @@ -0,0 +1,151 @@ +----- 公会红包-发红包 ----- +local this = {} +local sortingOrder=0 +local packageConfig=nil + +function this:InitComponent(gameObject) + this.itemPre=Util.GetGameObject(gameObject,"Item") + this.scrollRoot=Util.GetGameObject(gameObject,"scrollRect") + this.scrollView=SubUIManager.Open(SubUIConfig.ScrollCycleView,this.scrollRoot.transform,this.itemPre, nil, + Vector2.New(this.scrollRoot.transform.rect.width,this.scrollRoot.transform.rect.height),1,2,Vector2.New(80,100)) + this.scrollView.moveTween.MomentumAmount = 1 + this.scrollView.moveTween.Strength = 2 + this.scrollView.gameObject:GetComponent("RectTransform").anchoredPosition= Vector2.New(0,0) + this.scrollView.gameObject:GetComponent("RectTransform").anchorMin = Vector2.New(0.5, 0.5) + this.scrollView.gameObject:GetComponent("RectTransform").anchorMax = Vector2.New(0.5, 0.5) + this.scrollView.gameObject:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5) + + this.infoTitle=Util.GetGameObject(gameObject,"infoPanel/Content/Title/Text"):GetComponent("Text") + this.infoTitle.text="福利红包" + Util.GetGameObject(gameObject,"infoPanel/Content/Text1"):GetComponent("Text").text="红包个数:" + Util.GetGameObject(gameObject,"infoPanel/Content/Text2"):GetComponent("Text").text="红包金额:" + this.numTxt=Util.GetGameObject(gameObject,"infoPanel/Content/numTxt"):GetComponent("Text") + this.sumTxt=Util.GetGameObject(gameObject,"infoPanel/Content/num2Txt"):GetComponent("Text") + this.rewardImg=Util.GetGameObject(gameObject,"infoPanel/Content/Image"):GetComponent("Image") + this.infoObj=Util.GetGameObject(gameObject,"infoPanel") + Util.AddClick(this.infoObj,function() + this.infoObj.gameObject:SetActive(false) + end) +end + + + +function this:OnShow(_sortingOrder) + sortingOrder=_sortingOrder + this:InitView() +end + +function this:BindEvent() + +end + +function this:AddListener() + +end + +function this:RemoveListener() + +end + +function this:OnClose() + +end + +function this:OnDestroy() + +end + +---初始化面板 +function this:InitView() + packageConfig=ConfigManager.GetConfig(ConfigName.GuildRedPackConfig) + if not packageConfig then + return + end + local packages=MyGuildManager.GetMyGuidRedPackage() + local showList={} + + for key, value in pairs(packages) do + local config=packageConfig[key] + --福利红包并且在限定等级 + if config and config.BaseType == 2 and PlayerManager.level>=config.Level then + -- if packages[i] then + value.config=config + table.insert(showList,value) + --end + end + end + if LengthOfTable(showList)==0 then + return + end +table.sort(showList,function(a,b) + if a.num==b.num then + return a.config.Sortb.num -- body + end +end) +--设置滚动区信息 +this.scrollView:SetData(showList,function(index,root) + this:ShowItemInfo(root,showList[index]) +end) +end +--显示红包数据 +function this:ShowItemInfo(go,data) + if not data then + return + end + local nameImage=Util.GetGameObject(go,"NameImage"):GetComponent("Image") + local icon=Util.GetGameObject(go,"Icon"):GetComponent("Image") + local desTxt=Util.GetGameObject(go,"Desc"):GetComponent("Text") + local numTxt=Util.GetGameObject(go,"numTxt"):GetComponent("Text") + local btn_send=Util.GetGameObject(go,"btn_send") + local sendTxt=Util.GetGameObject(go,"btn_send/Text"):GetComponent("Text") + nameImage.sprite=Util.LoadSprite("g_ghhb_ming_04_zh") + icon.sprite=Util.LoadSprite(GetResourcePath(data.config.IconId)) + desTxt.text= data.config.RuleDes + local num=data.num + numTxt.text="数量:"..data.num + btn_send:GetComponent("Button").interactable=num>0 + Util.SetGray(btn_send,num<1) + + --发红包按钮 + Util.AddOnceClick(btn_send,function() + NetManager.RequestWelfareRedPacket(data.config.Id,function() + PopupTipPanel.ShowTip("成功发送福利红包!") + this:InitView() + --刷新发送福利红包按钮红点 + CheckRedPointStatus(RedPointType.Guid_SendPackage) + MyGuildManager.ReuqsetRedPackage() + CheckRedPointStatus(RedPointType.Guid_GetPackage) + --发送公会信息 + local redpack=ConfigManager.GetConfigData(ConfigName.GuildRedPackConfig,data.config.Id) + if not PlayerManager.familyId then return end + -- 构建字符串 + local channel = CHAT_CHANNEL.FAMILY + + local content = string.format( + "%d#%s#%s",--"%d#%d#%d#%s#%d#%d|", + GLOBAL_CHAT_TYPE.GUILD_REDPACKET, + PlayerManager.nickName, + redpack.Name + ) + -- 发送消息 + NetManager.RequestSendChatMsg(channel, content, 0, function() + local msgId = ChatManager.GetMsgIdFlag(channel) + NetManager.RequestChatMsg(channel, msgId, function(data) + end) + end) + end) + end) + + --显示红包信息 + Util.AddOnceClick(go,function() + this.infoObj.gameObject:SetActive(true) + this.numTxt.text=data.config.TotalMoney[1] + this.sumTxt.text=data.config.TotalMoney[2] + this.rewardImg.sprite=Util.LoadSprite(GetResourcePath(data.config.IconId)) + end) + + +end +return this \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendWealView.lua.meta b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendWealView.lua.meta new file mode 100644 index 0000000000..9228cccb96 --- /dev/null +++ b/Assets/ManagedResources/~Lua/Modules/Guild/RedPacketView/RedPacket_SendWealView.lua.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d2eae81c520066e44bb39c7bba196373 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua b/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua index f322126f69..bb1df81cc5 100644 --- a/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua @@ -464,7 +464,8 @@ function this.ExecuteLoading() function() NetManager.GetHeroSkinData(LoadingPanel.OnStep) end, function() NetManager.HongMengInfoResponse(LoadingPanel.OnStep) end, function() NetManager.AllBookEnableResponse(LoadingPanel.OnStep) end, - function() NetManager.HardStageRequest(LoadingPanel.OnStep) end, + function() MyGuildManager.ReuqsetRedPackage(LoadingPanel.OnStep) end, + --function() NetManager.HardStageRequest(LoadingPanel.OnStep) end, --[[[35] =]] function() -- 登录请求最终接口,所有请求放在此接口之前 -- 登录成功确认 NetManager.LoginConfimRequest() diff --git a/Assets/ManagedResources/~Lua/Modules/Net/IndicationManager.lua b/Assets/ManagedResources/~Lua/Modules/Net/IndicationManager.lua index 86b35705bd..06dbb64197 100644 --- a/Assets/ManagedResources/~Lua/Modules/Net/IndicationManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Net/IndicationManager.lua @@ -53,6 +53,8 @@ function this.RegisterMessage(network) socket:RegistNetMessage(MessageTypeProto_pb.DEATH_PATH_STATUS_CHANGE_INDICATION, this.GuildRefreshDeathPosStatus) socket:RegistNetMessage(MessageTypeProto_pb.DEATH_PATH_DO_REWARD_INDICATION, this.GuildDoRewardIndication) socket:RegistNetMessage(MessageTypeProto_pb.DEATH_PATH_FIRST_CHANGE_INDICATION, this.GuildFirstChangeIndication) + --福利红包推送 + socket:RegistNetMessage(MessageTypeProto_pb.WELFARE_RED_PACKET_INFO, this.WelfareRedPacketPush) -- socket:RegistNetMessage(MessageTypeProto_pb.UPDATE_USER_EXP_INDICATION, this.UpdateUserExp) --秘盒跨季度刷新 @@ -130,7 +132,22 @@ function this.RegisterMessage(network) socket:RegistNetMessage(MessageTypeProto_pb.HARD_STAGE_INFO_RESPONSE, this.HardStageResponse) -- 神印信息推送 socket:RegistNetMessage(MessageTypeProto_pb.PurpleMansionSealIndication, this.PracticeImprintData) + end + +--后端推送福利红包数据 +function this.WelfareRedPacketPush(buffer) + local data = buffer:DataByte() + local msg = PlayerInfoProto_pb.WelfareRedPacketPush() + msg:ParseFromString(data) + LogError("推送过来红包数据") + if msg.redpacket then + MyGuildManager.SetMyGuidRedPackage(msg.redpacket) + CheckRedPointStatus(RedPointType.Guid_SendPackage) + end + -- BagManager.BagIndicationRefresh(msg) +end + function this.OpenHongMengTowerGuideIndication(buffer) local data = buffer:DataByte() local msg = HeroInfoProto_pb.HongmengSteleNewHandIndication() @@ -754,6 +771,7 @@ end -- 更新关卡ID function this.FreshFightId(buffer) Log("后端推送关卡状态!") + LogError("==============") local data=buffer:DataByte() local msg=FightInfoProto_pb.MainLevelFightUpdateIndication() msg:ParseFromString(data) diff --git a/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua b/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua index a5cc10dd1a..f886589f28 100644 --- a/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua @@ -120,6 +120,7 @@ function this.PlayerInfoRequest(func) PlayerManager.skin = msg.player.decrotion--皮肤 PlayerManager.ride = msg.player.ride--坐骑 PlayerManager.rideLevel = msg.player.rideLevel + PlayerManager.dailyRedPack=msg.dailyredpack HeadManager.SetHeadFrameAllData(msg.headFrameBag) if msg.player.sex then NameManager.SetRoleSex(msg.player.sex) @@ -1931,6 +1932,7 @@ end -- 请求发送聊天数据 function this.RequestSendChatMsg(type, msg, friend, func) + LogError(tostring(msg)) if string.utf8len(msg) > 140 then PopupTipPanel.ShowTip(Language[11345]) return @@ -2514,6 +2516,23 @@ function this.RequestDismissGuild(dType, func) end) end +-- 发送福利红包 +function this.RequestWelfareRedPacket(_id,func) + local data = PlayerInfoProto_pb.WelfareRedPacketSendRequest() + LogError("redpacket id==".._id) + data.id=_id + local msg = data:SerializeToString() + Network:SendMessageWithCallBack(MessageTypeProto_pb.WELFARE_RED_PACKET_SEND_REQUEST, MessageTypeProto_pb.WELFARE_RED_PACKET_SEND_RESPONSE, msg, function(buffer) + local data = buffer:DataByte() + local msg = PlayerInfoProto_pb.WelfareRedPacketSendResponse() + msg:ParseFromString(data) + MyGuildManager.SetMyGuidRedPackage(msg.redpacket) + if func then + func() + end + end) +end + --请求公会行走 function this.GuildWalkRequest(pathList, func) Log("FAMILY_WALK_REQUEST") @@ -5068,7 +5087,7 @@ end function NetManager.HardStageRequest(func) local data = PlayerInfoProto_pb.HardStageRequest() local msg = data:SerializeToString() - Network:SendMessageWithCallBack(MessageTypeProto_pb.HARD_STAGE_INFO_REQUEST, MessageTypeProto_pb.HARD_STAGE_INFO_RESPONSE, msg, function(buffer) + Network:SendMessageWithCallBack(MessageTypeProto_pb.HARD_STAGE_INFO_REQUEST, MessageTypeProto_pb.HARD_STAGE_INFO_RESPONSE, msg, function(buffer) local data = buffer:DataByte() local msg = PlayerInfoProto_pb.HardStageResponse() msg:ParseFromString(data) @@ -5076,7 +5095,7 @@ function NetManager.HardStageRequest(func) if func then func(msg) end - end) + end) end --山河社稷图领取宝箱奖励 function NetManager.GetHardStageChapterReward(_chapterId,_rewradId,func) diff --git a/Assets/ManagedResources/~Lua/Modules/Player/PlayerManager.lua b/Assets/ManagedResources/~Lua/Modules/Player/PlayerManager.lua index 1a878df5cc..57b839311e 100644 --- a/Assets/ManagedResources/~Lua/Modules/Player/PlayerManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Player/PlayerManager.lua @@ -41,7 +41,8 @@ this.isRefreshMainPanelNpc = true this.userSkinList = {}--[id] = {skinId , overTime} this.userTitleList = {}--[id] = {titleId , overTime} this.userMountList = {}--[id] = {mountId , overTime} - +--每日福利红包抢夺次数 +this.dailyRedPack = 0 local update = function() local dt = Time.unscaledDeltaTime this.serverTime = this.serverTime + dt @@ -60,6 +61,16 @@ end function this.InitServerTime() UpdateBeat:Add(update, this) end +--获取公会福利红包抢夺次数 +function this.GetDailyRedPackageTime() + return this.dailyRedPack +end + +--获取公会福利红包抢夺次数 +function this.SettDailyRedPackageTime(time) + this.dailyRedPack=time + LogError("time=="..this.dailyRedPack) +end function this.ResetLocalData(var)--初始化所有本地的每日一刷--1是五点推送、2是登陆检测 local func1 = function () diff --git a/Assets/ManagedResources/~Lua/Modules/Player/RedpotManager.lua b/Assets/ManagedResources/~Lua/Modules/Player/RedpotManager.lua index 382083164a..ae6a3fb430 100644 --- a/Assets/ManagedResources/~Lua/Modules/Player/RedpotManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Player/RedpotManager.lua @@ -251,7 +251,7 @@ function this.InitRedPointAllRelate() RPData:SetParent(RedPointType.Guild_Apply, RedPointType.Guild_House_Apply) RPData:SetParent(RedPointType.Guild_Shop, RedPointType.Guild) RPData:SetParent(RedPointType.Guild_Boss, RedPointType.Guild) - --RPData:SetParent(RedPointType.Guild_RedPacket, RedPointType.Guild) + RPData:SetParent(RedPointType.Guild_RedPacket, RedPointType.Guild) RPData:SetParent(RedPointType.Guild_Fete, RedPointType.Guild) RPData:SetParent(RedPointType.Guild_Aid, RedPointType.Guild) RPData:SetParent(RedPointType.Guild_AidMy, RedPointType.Guild_Aid) @@ -260,7 +260,8 @@ function this.InitRedPointAllRelate() RPData:SetParent(RedPointType.Guild_Transcript, RedPointType.Guild) RPData:SetParent(RedPointType.Guild_Skill, RedPointType.Guild) RPData:SetParent(RedPointType.Guild_DeathPos, RedPointType.Guild) - + RPData:SetParent(RedPointType.Guid_SendPackage, RedPointType.Guild_RedPacket) + RPData:SetParent(RedPointType.Guid_GetPackage, RedPointType.Guild_RedPacket) RPData:SetParent(RedPointType.Chat_Friend, RedPointType.Chat) -- 东海寻仙 RPData:SetParent(RedPointType.FindFairy_OneView, RedPointType.FindFairy) @@ -446,6 +447,8 @@ function this.RegisterRedCheckFunc() RPData:AddCheckFunc(RedPointType.Guild_Skill, GuildSkillManager.RefreshAllGuildSkillRedPoint) -- 公会红包 --RPData:AddCheckFunc(RedPointType.Guild_RedPacket,GuildRedPacketManager.CheckGuildRedPacketRedPoint) + RPData:AddCheckFunc(RedPointType.Guid_SendPackage,GuildRedPacketManager.CheckGuildRedPacketRedPoint) + RPData:AddCheckFunc(RedPointType.Guid_GetPackage,GuildRedPacketManager.CheckIsCanGetPackage) --公会祭祀 RPData:AddCheckFunc(RedPointType.Guild_Fete,MyGuildManager.CheckGuildFeteRedPoint) --公会十绝阵 diff --git a/Assets/ManagedResources/~Lua/View/ChatTipView.lua b/Assets/ManagedResources/~Lua/View/ChatTipView.lua index eef1b2a65a..f4bb5a6132 100644 --- a/Assets/ManagedResources/~Lua/View/ChatTipView.lua +++ b/Assets/ManagedResources/~Lua/View/ChatTipView.lua @@ -24,6 +24,7 @@ function ChatTipView:InitComponent() self.btn = Util.GetGameObject(self.transform, "button") self.content = Util.GetGameObject(self.transform, "content"):GetComponent("Text") self.redpot = Util.GetGameObject(self.transform, "icon/redpot") + self.redPackage = Util.GetGameObject(self.transform, "Image") end --绑定事件(用于子类重写) @@ -35,25 +36,42 @@ function ChatTipView:BindEvent() UIManager.OpenPanel(UIName.ChatPanel, 2, 2) end end) + Util.AddClick(self.redPackage,function() + UIManager.OpenPanel(UIName.RedPacketPanel,3) + Game.GlobalEvent:DispatchEvent(GameEvent.GuildRedPacket.AuoGetRedPackage) + end) end --添加事件监听(用于子类重写) function ChatTipView:AddListener() Game.GlobalEvent:AddEvent(GameEvent.Chat.OnMainChatChanged, self.RefreshChatShow, self) - + Game.GlobalEvent:AddEvent(GameEvent.Chat.OnRedPackageNumChanged, self.CheckRedPackageShow, self) BindRedPointObject(RedPointType.Chat, self.redpot) end --移除事件监听(用于子类重写) function ChatTipView:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.Chat.OnMainChatChanged, self.RefreshChatShow, self) - + Game.GlobalEvent:RemoveEvent(GameEvent.Chat.OnRedPackageNumChanged, self.CheckRedPackageShow, self) ClearRedPointObject(RedPointType.Chat, self.redpot) end +function ChatTipView:CheckRedPackageShow() + if MyGuildManager.PackageNum>0 then + self.redPackage.gameObject:SetActive(true) + self.freeBtnAnim.enabled=true + else + self.redPackage.gameObject:SetActive(false) + end +end --界面打开时调用(用于子类重写) function ChatTipView:OnOpen(viewType) self._ViewType = viewType or VIEW_TYPE.MAIN + if MyGuildManager.PackageNum>0 then + self.redPackage.gameObject:SetActive(true) + else + self.redPackage.gameObject:SetActive(false) + end self:RefreshChatShow() end