2025-06-04 05:02:57 +08:00

1361 lines
49 KiB
Plaintext

autoImport("GainWayTip")
autoImport("SystemUnLockView")
autoImport("TeamPwsMatchPopUp")
autoImport("TeamPwsPreparePopUp")
MainViewMenuPage = class("MainViewMenuPage", SubView)
autoImport("MainViewButtonCell");
autoImport("PersonalPicturePanel");
function MainViewMenuPage:Init()
self:InitUI();
self:MapViewInterests();
end
function MainViewMenuPage:InitUI()
self.moreBtn = self:FindGO("MoreButton");
self.moreBord = self:FindGO("MoreBord");
self.moreGrid = self:FindComponent("Grid", UIGrid, self.moreBord);
self.topRFuncGrid = self:FindComponent("TopRightFunc", UIGrid);
self.topRFuncGrid2 = self:FindComponent("TopRightFunc2", UIGrid);
self.rewardBtn = self:FindGO("RewardButton");
self.tempAlbumButton = self:FindGO("TempAlbumButton");
self.exchangeShopPos = self:FindGO("ExchangeShopPos")
self.exchangeShopButton = self:FindGO("ExchangeShopBtn")
self.exchangeShopEffCtn = self:FindGO("exchangeBtnEffectContainer")
self.exchangeShopLabel = self:FindGO("Label",self.exchangeShopButton):GetComponent(UILabel);
self.exchangeShopLabel.text = ZhString.MainviewMenu_ExchangeShop
local exchangeImg = self:FindGO("Sprite",self.exchangeShopButton):GetComponent(UISprite)
IconManager:SetUIIcon("Kafra_shop",exchangeImg)
self.bagBtn = self:FindGO("BagButton");
self.autoBattleButton = self:FindGO("AutoBattleButton");
self.glandStatusButton = self:FindGO("GlandStatusButton");
self:AddClickEvent(self.glandStatusButton, function (go)
self:ToView(PanelConfig.GLandStatusListView);
end);
self:InitEmojiButton();
self:InitCameraButtons();
self:InitVoiceButton();
self:InitMenuButton();
self:InitActivityButton();
self:InitTeamPwsMatchButton();
self:InitYundingShop();
self:AddClickEvent(self.rewardBtn, function (go)
self:ToView(PanelConfig.PostView);
end);
self:AddClickEvent(self.tempAlbumButton, function (go)
self:ToView(PanelConfig.TempPersonalPicturePanel);
end);
self:AddClickEvent(self.exchangeShopButton, function (go)
GameFacade.Instance:sendNotification(UIEvent.JumpPanel,{view = PanelConfig.ExchangeShopView})
end);
self:AddButtonEvent("CloseMore",nil,{hideClickSound = true})
self:AddButtonEvent("CloseMap",nil,{hideClickSound = true})
self:AddButtonEvent("BagButton",function () self:ToView(PanelConfig.Bag); end)
self:AddOrRemoveGuideId(self.moreBtn, 102)
self:AddOrRemoveGuideId(self.bagBtn, 103)
self.tempBagButton = self:FindGO("TempBagButton");
self.tempBagWarning = self:FindGO("Warning", self.tempBagButton);
self:RegisterRedTipCheck(SceneTip_pb.EREDSYS_PACK_TEMP, self.tempBagButton, 42)
self:AddClickEvent(self.tempBagButton, function (go)
self:ToView(PanelConfig.TempPackageView);
end);
local hkBtn = self:FindGO("HouseKeeperButton")
self:RegisterRedTipCheck(SceneTip_pb.EREDSYS_SERVANT_RECOMMNED, hkBtn, 42)
self:RegisterRedTipCheck(SceneTip_pb.EREDSYS_SERVANT_GROWTH, hkBtn, 42)
local hkLabel = self:FindComponent("Label",UILabel,hkBtn)
hkLabel.text = ZhString.MainviewMenu_HouseKeeper
local data = FunctionUnLockFunc.Me():GetMenuDataByPanelID(1620, MenuUnlockType.View);
if(data)then
FunctionUnLockFunc.Me():RegisteEnterBtn(FunctionUnLockFunc.Me():GetMenuId(data), hkBtn)
end
self:AddButtonEvent("HouseKeeperButton",function ()
local curImageId = ServicePlayerProxy.Instance:GetCurMapImageId() or 0;
local currentMapID = Game.MapManager:GetMapID()
local isRaid = ( Game.MapManager:IsRaidMode() and currentMapID ~= 10001 ) or curImageId > 0;
if(isRaid)then
MsgManager.ShowMsgByID(25417)
return
end
local myServantid = Game.Myself.data.userdata:Get(UDEnum.SERVANTID) or 0
if(myServantid ~= 0)then
self:ToView(PanelConfig.ServantMainView);
else
MsgManager.ConfirmMsgByID(25405,function ( )
-- body
FuncShortCutFunc.Me():CallByID(1005);
end)
end
end)
self:InitActivityBtn()
self:InitBooth()
local cameraMode = FunctionPerformanceSetting.Me():GetCameraMode()
self:ApplyCameraMode(cameraMode);
end
function MainViewMenuPage:InitActivityBtn()
--同人
self.TopRightFunc = self:FindGO("TopRightFunc");
self.DoujinshiButton = self:FindGO("DoujinshiButton",self.TopRightFunc);
self.ActivityNode = self:FindGO("ActivityNode",self.TopRightFunc);
if GameConfig.System.ShieldMaskDoujinshi==1 then
self:Hide(self.DoujinshiButton)
self:Show(self.ActivityNode)
return
else
self:Hide(self.ActivityNode)
self:Show(self.DoujinshiButton)
end
self.DoujinshiSprite_UISpirte = self:FindGO("Sprite",self.DoujinshiButton):GetComponent(UISprite);
IconManager:SetUIIcon("huodongbd", self.DoujinshiSprite_UISpirte)
self.Label_UILabel = self:FindGO("Label",self.DoujinshiButton):GetComponent(UILabel);
self.Label_UILabel.text = ZhString.MainviewMenu_ChuXinSheQu
self.DoujinshiNode = self:FindGO("DoujinshiNode");
self.DoujinshiNode.gameObject:SetActive(false)
self:AddClickEvent(self.DoujinshiButton, function (go)
if self.DoujinshiNode.gameObject.activeInHierarchy then
self.DoujinshiNode.gameObject:SetActive(false)
else
self.DoujinshiNode.gameObject:SetActive(true)
end
end);
-- 同人
self.DoujinshiWorkBtnButton = self:FindGO("DoujinshiWorkBtnButton",self.DoujinshiNode);
self.DoujinshiWorkBtnButtonSprite_UISprite = self:FindGO("Sprite",self.DoujinshiWorkBtnButton):GetComponent(UISprite);
IconManager:SetUIIcon("Fellow", self.DoujinshiWorkBtnButtonSprite_UISprite)
self.Label_UILabel = self:FindGO("Label",self.DoujinshiWorkBtnButton):GetComponent(UILabel);
self.Label_UILabel.text = ZhString.MainviewMenu_TongRen
self:AddClickEvent(self.DoujinshiWorkBtnButton, function (go)
self.DoujinshiNode.gameObject:SetActive(false)
if(ApplicationInfo.IsIOSVersionUnder8())then
MsgManager.ShowMsgByID(25717);
return;
end
local functionSdk = FunctionLogin.Me():getFunctionSdk()
if functionSdk and functionSdk:getToken() then
helplog("抓到token")
helplog("functionSdk:getToken():"..functionSdk:getToken())
GameFacade.Instance:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.WebviewPanel, viewdata = {token = functionSdk:getToken()}})
else
helplog("沒有抓到token")
GameFacade.Instance:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.WebviewPanel, viewdata = {token = nil}})
end
end);
end
function MainViewMenuPage:InitMenuButton()
self.menuCtl = UIGridListCtrl.new(self.moreGrid, MainViewButtonCell, "MainViewButtonCell");
self.menuCtl:AddEventListener(MouseEvent.MouseClick, self.ClickButton, self);
self.menuCtl:AddEventListener(MainViewButtonEvent.ResetPosition, self.ResetMenuButtonPosition, self);
self:UpdateMenuDatas();
end
function MainViewMenuPage:InitEmojiButton()
local emojiButton = self:FindGO("EmojiButton");
FunctionUnLockFunc.Me():RegisteEnterBtnByPanelID(PanelConfig.ChatEmojiView.id, emojiButton)
self:AddClickEvent(emojiButton, function ()
if(not self.isEmojiShow)then
self:ToView(PanelConfig.ChatEmojiView);
else
self:sendNotification(UIEvent.CloseUI, UIViewType.ChatLayer);
end
end);
end
--云顶商店
function MainViewMenuPage:InitYundingShop()
local YundingShopButton = self:FindGO("YundingShopBtn");
FunctionUnLockFunc.Me():RegisteEnterBtnByPanelID(PanelConfig.YundingShop.id, YundingShopButton)
self:AddClickEvent(YundingShopButton, function ()
self:ToView(FunctionUnLockFunc.Me():GetPanelConfigById(PanelConfig.YundingShop.id));
end);
end
function MainViewMenuPage:InitCameraButtons()
local cameraButton = self:FindGO("CameraButton");
local spirte2D = self:FindGO("Sprite2D",cameraButton);
local spirte3D = self:FindGO("Sprite3D",cameraButton);
self:AddClickEvent(cameraButton, function ()
local setting = FunctionPerformanceSetting.Me()
setting:SetBegin()
local cameraMode = FunctionPerformanceSetting.Me():GetCameraMode()
if cameraMode == 0 then
self:ApplyCameraMode(1);
setting:SetCameraMode(1)
else
self:ApplyCameraMode(0);
setting:SetCameraMode(0)
end
setting:SetEnd()
setting:Save()
end);
end
function MainViewMenuPage:ApplyCameraMode(cameraMode)
local cameraButton = self:FindGO("CameraButton");
local spirte2D = self:FindGO("Sprite2D",cameraButton);
local spirte3D = self:FindGO("Sprite3D",cameraButton);
if cameraMode == 1 then
Game.InputManager.model = InputManager.Model.FREE;
spirte2D:SetActive(true);
spirte3D:SetActive(false);
elseif cameraMode == 0 then
Game.InputManager.model = InputManager.Model.DEFAULT;
spirte2D:SetActive(false);
spirte3D:SetActive(true);
end
end
function MainViewMenuPage:InitSetView()
self.SetView_CloseButton = self:FindGO("CloseButton",self.SetView);
self.SetView_MainBoard = self:FindGO("MainBoard",self.SetView);
self.SetView_MainBoard_MainPage = self:FindGO("MainPage",self.SetView_MainBoard);
self.SetView_MainBoard_MainPage_CloseBtn = self:FindGO("CloseBtn",self.SetView_MainBoard_MainPage);
self.TeamChannelToggle = self:FindGO("TeamChannelToggle");
self.TeamChannelToggle_UIToggle = self:FindGO("TeamChannelToggle"):GetComponent(UIToggle);
self.GuildChannelToggle = self:FindGO("GuildChannelToggle");
self.GuildChannelToggle_UIToggle = self:FindGO("GuildChannelToggle"):GetComponent(UIToggle);
self:AddClickEvent(self.SetView_CloseButton, function ()
self.SetView.gameObject:SetActive(false)
end);
self:AddClickEvent(self.SetView_MainBoard_MainPage_CloseBtn, function ()
self.SetView.gameObject:SetActive(false)
end);
self:AddClickEvent(self.TeamChannelToggle_UIToggle.gameObject,function(obj)
if self.LastToggleIsTeamToggle == true then
do return end
end
self.LastToggleIsTeamToggle = true
GVoiceProxy.Instance:SwitchChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index)
end)
self:AddClickEvent(self.GuildChannelToggle_UIToggle.gameObject,function(obj)
if self.LastToggleIsTeamToggle == false then
do return end
end
self.LastToggleIsTeamToggle =false
GVoiceProxy.Instance:SwitchChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index)
end)
end
function MainViewMenuPage:InitVoiceButton()
self.SetView = self:FindGO("SetView");
if self.SetView then
self.SetView.gameObject:SetActive(false)
self:InitSetView()
self.ButtonGrid = self:FindGO("ButtonGrid");
self.ButtonGrid_UIGrid = self:FindGO("ButtonGrid"):GetComponent(UIGrid);
self.TeamVoice = self:FindGO("TeamVoice",self.ButtonGrid);
self.GuildVoice = self:FindGO("GuildVoice",self.ButtonGrid);
self.VoiceFunc = self:FindGO("VoiceFunc",self.ButtonGrid);
self.TeamVoiceSprite_UISprite = self:FindGO("Sprite",self.TeamVoice):GetComponent(UISprite)
self.GuildVoiceSprite_UISprite = self:FindGO("Sprite",self.GuildVoice):GetComponent(UISprite)
if GameConfig.OpenVoice~=nil and GameConfig.OpenVoice == false then
self.TeamVoice.gameObject:SetActive(false)
self.GuildVoice.gameObject:SetActive(false)
do return end
else
self.TeamVoice.gameObject:SetActive(false)
self.GuildVoice.gameObject:SetActive(false)
self.VoiceFunc.gameObject:SetActive(true)
if TeamProxy.Instance:IHaveTeam() then
self.VoiceFunc.gameObject:SetActive(true)
end
if GuildProxy.Instance:IHaveGuild() then
self.VoiceFunc.gameObject:SetActive(true)
end
end
if self.ButtonGrid_UIGrid then
self.ButtonGrid_UIGrid:Reposition()
end
self.TeamVoice_VoiceOption = self:FindGO("VoiceOption",self.TeamVoice);
self.GuildVoice_VoiceOption = self:FindGO("VoiceOption",self.GuildVoice);
self.VoiceFunc_VoiceOption = self:FindGO("VoiceOption",self.VoiceFunc);
self.VoiceFunc_VoiceOption.gameObject:SetActive(false)
self.TeamVoice_VoiceOption_State_a = self:FindGO("State_a",self.TeamVoice_VoiceOption);
self.TeamVoice_VoiceOption_State_b = self:FindGO("State_b",self.TeamVoice_VoiceOption);
self.TeamVoice_VoiceOption_State_c = self:FindGO("State_c",self.TeamVoice_VoiceOption);
self.TeamVoice_VoiceOption_State_d = self:FindGO("State_d",self.TeamVoice_VoiceOption);
self.GuildVoice_VoiceOption_State_a = self:FindGO("State_a",self.GuildVoice_VoiceOption);
self.GuildVoice_VoiceOption_State_b = self:FindGO("State_b",self.GuildVoice_VoiceOption);
self.GuildVoice_VoiceOption_State_c = self:FindGO("State_c",self.GuildVoice_VoiceOption);
self.GuildVoice_VoiceOption_State_d = self:FindGO("State_d",self.GuildVoice_VoiceOption);
self.VoiceFunc_VoiceOption_State_a = self:FindGO("State_a",self.VoiceFunc_VoiceOption);
self.VoiceFunc_VoiceOption_State_b = self:FindGO("State_b",self.VoiceFunc_VoiceOption);
self.VoiceFunc_VoiceOption_State_c = self:FindGO("State_c",self.VoiceFunc_VoiceOption);
self.VoiceFunc_VoiceOption_State_d = self:FindGO("State_d",self.VoiceFunc_VoiceOption);
self.TeamVoiceSprite_UISprite.spriteName = "ui_microphone_a_JM"
self.GuildVoiceSprite_UISprite.spriteName = "ui_microphone_a_JM"
self:AddClickEvent(self.TeamVoice, function ()
self.TeamVoice_VoiceOption.gameObject:SetActive(not self.TeamVoice_VoiceOption.gameObject.activeInHierarchy);
GVoiceProxy.Instance:ActiveEnterChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index)
end);
self:AddClickEvent(self.TeamVoice_VoiceOption_State_a, function ()
end);
self:AddClickEvent(self.TeamVoice_VoiceOption_State_b, function ()
end);
self:AddClickEvent(self.TeamVoice_VoiceOption_State_c, function ()
end);
self:AddClickEvent(self.TeamVoice_VoiceOption_State_d, function ()
self.TeamVoice_VoiceOption.gameObject:SetActive(false);
end);
self:AddClickEvent(self.VoiceFunc, function ()
self.VoiceFunc_VoiceOption.gameObject:SetActive(not self.VoiceFunc_VoiceOption.gameObject.activeInHierarchy);
end);
self:AddClickEvent(self.VoiceFunc_VoiceOption_State_a, function ()
self.VoiceFunc_VoiceOption.gameObject:SetActive(not self.VoiceFunc_VoiceOption.gameObject.activeInHierarchy);
GVoiceProxy.Instance:QuitVoice()
end);
self:AddClickEvent(self.VoiceFunc_VoiceOption_State_b, function ()
self.VoiceFunc_VoiceOption.gameObject:SetActive(not self.VoiceFunc_VoiceOption.gameObject.activeInHierarchy);
if GVoiceProxy.Instance.curChannel == nil then
GVoiceProxy.Instance:SwitchChannel(nil)
else
self.SetView.gameObject:SetActive(true)
end
--
end);
self:AddClickEvent(self.VoiceFunc_VoiceOption_State_c, function ()
self.VoiceFunc_VoiceOption.gameObject:SetActive(not self.VoiceFunc_VoiceOption.gameObject.activeInHierarchy);
GVoiceProxy.Instance:CloseMicEnterChannel()
end);
self:AddClickEvent(self.VoiceFunc_VoiceOption_State_d, function ()
self.VoiceFunc_VoiceOption.gameObject:SetActive(not self.VoiceFunc_VoiceOption.gameObject.activeInHierarchy);
GVoiceProxy.Instance:OpenMicEnterChannel()
end);
self:AddClickEvent(self.GuildVoice, function ()
self.GuildVoice_VoiceOption.gameObject:SetActive(not self.GuildVoice_VoiceOption.gameObject.activeInHierarchy);
GVoiceProxy.Instance:ActiveEnterChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index)
end);
self:AddClickEvent(self.GuildVoice_VoiceOption_State_a, function ()
end);
self:AddClickEvent(self.GuildVoice_VoiceOption_State_b, function ()
end);
self:AddClickEvent(self.GuildVoice_VoiceOption_State_c, function ()
end);
self:AddClickEvent(self.GuildVoice_VoiceOption_State_d, function ()
self.TeamVoice_VoiceOption.gameObject:SetActive(false);
end);
GVoiceProxy.Instance:TimeTickTest()
self:AddClickEvent(self.GuildVoice_VoiceOption_State_d, function ()
self.TeamVoice_VoiceOption.gameObject:SetActive(false);
end);
else
self.TeamVoice = self:FindGO("TeamVoice",self.ButtonGrid);
self.GuildVoice = self:FindGO("GuildVoice",self.ButtonGrid);
self.TeamVoice.gameObject:SetActive(false)
self.GuildVoice.gameObject:SetActive(false)
end
if self.ButtonGrid_UIGrid then
self.ButtonGrid_UIGrid:Reposition()
end
self.TeamVoice_VoiceOption = self:FindGO("VoiceOption",self.TeamVoice);
self.GuildVoice_VoiceOption = self:FindGO("VoiceOption",self.GuildVoice);
self.VoiceFunc_VoiceOption = self:FindGO("VoiceOption",self.VoiceFunc);
self.VoiceFunc_VoiceOption.gameObject:SetActive(false)
self.TeamVoice_VoiceOption_State_a = self:FindGO("State_a",self.TeamVoice_VoiceOption);
self.TeamVoice_VoiceOption_State_b = self:FindGO("State_b",self.TeamVoice_VoiceOption);
self.TeamVoice_VoiceOption_State_c = self:FindGO("State_c",self.TeamVoice_VoiceOption);
self.TeamVoice_VoiceOption_State_d = self:FindGO("State_d",self.TeamVoice_VoiceOption);
self.GuildVoice_VoiceOption_State_a = self:FindGO("State_a",self.GuildVoice_VoiceOption);
self.GuildVoice_VoiceOption_State_b = self:FindGO("State_b",self.GuildVoice_VoiceOption);
self.GuildVoice_VoiceOption_State_c = self:FindGO("State_c",self.GuildVoice_VoiceOption);
self.GuildVoice_VoiceOption_State_d = self:FindGO("State_d",self.GuildVoice_VoiceOption);
self.VoiceFunc_VoiceOption_State_a = self:FindGO("State_a",self.VoiceFunc_VoiceOption);
self.VoiceFunc_VoiceOption_State_a_Sprite1 = self:FindGO("Sprite1",self.VoiceFunc_VoiceOption_State_a);
self.VoiceFunc_VoiceOption_State_a_Sprite2 = self:FindGO("Sprite2",self.VoiceFunc_VoiceOption_State_a);
self.VoiceFunc_VoiceOption_State_a_quan = self:FindGO("quan",self.VoiceFunc_VoiceOption_State_a);
self.VoiceFunc_VoiceOption_State_b = self:FindGO("State_b",self.VoiceFunc_VoiceOption);
self.VoiceFunc_VoiceOption_State_b_Sprite1 = self:FindGO("Sprite1",self.VoiceFunc_VoiceOption_State_b);
self.VoiceFunc_VoiceOption_State_b_Sprite2 = self:FindGO("Sprite2",self.VoiceFunc_VoiceOption_State_b);
self.VoiceFunc_VoiceOption_State_b_quan = self:FindGO("quan",self.VoiceFunc_VoiceOption_State_b);
self.VoiceFunc_VoiceOption_State_c = self:FindGO("State_c",self.VoiceFunc_VoiceOption);
self.VoiceFunc_VoiceOption_State_c_Sprite1 = self:FindGO("Sprite1",self.VoiceFunc_VoiceOption_State_c);
self.VoiceFunc_VoiceOption_State_c_Sprite2 = self:FindGO("Sprite2",self.VoiceFunc_VoiceOption_State_c);
self.VoiceFunc_VoiceOption_State_c_quan = self:FindGO("quan",self.VoiceFunc_VoiceOption_State_c);
self.VoiceFunc_VoiceOption_State_d = self:FindGO("State_d",self.VoiceFunc_VoiceOption);
self.VoiceFunc_VoiceOption_State_d_Sprite1 = self:FindGO("Sprite1",self.VoiceFunc_VoiceOption_State_d);
self.VoiceFunc_VoiceOption_State_d_Sprite2 = self:FindGO("Sprite2",self.VoiceFunc_VoiceOption_State_d);
self.VoiceFunc_VoiceOption_State_d_quan = self:FindGO("quan",self.VoiceFunc_VoiceOption_State_d);
self.VoiceFunc_VoiceOption_State_a_UISprite = self:FindGO("State_a",self.VoiceFunc_VoiceOption):GetComponent(UISprite)
self.VoiceFunc_VoiceOption_State_b_UISprite = self:FindGO("State_b",self.VoiceFunc_VoiceOption):GetComponent(UISprite)
self.VoiceFunc_VoiceOption_State_c_UISprite = self:FindGO("State_c",self.VoiceFunc_VoiceOption):GetComponent(UISprite)
self.VoiceFunc_VoiceOption_State_d_UISprite = self:FindGO("State_d",self.VoiceFunc_VoiceOption):GetComponent(UISprite)
if self.VoiceFunc_VoiceOption_State_b_Sprite1 then
self.VoiceFunc_VoiceOption_State_b_Sprite1:GetComponent(UISprite).spriteName = "ui_microphone_set"
self.VoiceFunc_VoiceOption_State_b_Sprite2.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_d_Sprite1:GetComponent(UISprite).spriteName = "ui_microphone_b_JM"
self.VoiceFunc_VoiceOption_State_d_Sprite1:GetComponent(UISprite):MakePixelPerfect()
self.VoiceFunc_VoiceOption_State_d_Sprite2.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_a_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_b_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_c_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_d_quan.gameObject:SetActive(false)
self.TeamVoiceSprite_UISprite.spriteName = "ui_microphone_a_JM"
self.GuildVoiceSprite_UISprite.spriteName = "ui_microphone_a_JM"
self.VoiceFuncSprite1=self:FindGO("Sprite1",self.VoiceFunc);
self.VoiceFuncSprite2=self:FindGO("Sprite2",self.VoiceFunc);
self.VoiceFuncSprite1_UISprite=self.VoiceFuncSprite1:GetComponent(UISprite)
self.VoiceFuncSprite2_UISprite=self.VoiceFuncSprite2:GetComponent(UISprite)
self:AddClickEvent(self.VoiceFunc, function ()
self.VoiceFunc_VoiceOption.gameObject:SetActive(not self.VoiceFunc_VoiceOption.gameObject.activeInHierarchy);
if GVoiceProxy.Instance.curChannel == ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index or GVoiceProxy.Instance.curChannel == ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index then
if GVoiceProxy.Instance.LastMicState_IsMicOpen == true then
self.VoiceFunc_VoiceOption_State_a_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_b_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_c_quan.gameObject:SetActive(true)
self.VoiceFunc_VoiceOption_State_d_quan.gameObject:SetActive(false)
else
self.VoiceFunc_VoiceOption_State_a_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_b_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_c_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_d_quan.gameObject:SetActive(true)
end
end
end);
self:AddClickEvent(self.VoiceFunc_VoiceOption_State_a, function ()
self.VoiceFunc_VoiceOption_State_a_quan.gameObject:SetActive(true)
self.VoiceFunc_VoiceOption_State_b_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_c_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_d_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption.gameObject:SetActive(not self.VoiceFunc_VoiceOption.gameObject.activeInHierarchy);
GVoiceProxy.Instance:QuitVoice(
function ()
end
)
MsgManager.FloatMsg(nil, ZhString.VoiceString.YouHaveAlreadyQuit)
if self.VoiceFuncSprite1_UISprite then
self.VoiceFuncSprite1_UISprite.spriteName = "ui_microphone_a_JM"
end
end);
self:AddClickEvent(self.VoiceFunc_VoiceOption_State_b, function ()
self.VoiceFunc_VoiceOption_State_a_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_b_quan.gameObject:SetActive(true)
self.VoiceFunc_VoiceOption_State_c_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_d_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption.gameObject:SetActive(not self.VoiceFunc_VoiceOption.gameObject.activeInHierarchy);
if GVoiceProxy.Instance.curChannel == nil then
GVoiceProxy.Instance:SwitchChannel(nil)
self.SetView.gameObject:SetActive(true)
if GVoiceProxy.Instance.curChannel == ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index then
self.GuildChannelToggle_UIToggle:Set(true)
self.LastToggleIsTeamToggle = false
elseif GVoiceProxy.Instance.curChannel == ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index then
self.TeamChannelToggle_UIToggle:Set(true)
self.LastToggleIsTeamToggle = true
end
end
end);
self:AddClickEvent(self.VoiceFunc_VoiceOption_State_c, function ()
self.VoiceFunc_VoiceOption_State_a_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_b_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_c_quan.gameObject:SetActive(true)
self.VoiceFunc_VoiceOption_State_d_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption.gameObject:SetActive(not self.VoiceFunc_VoiceOption.gameObject.activeInHierarchy);
GVoiceProxy.Instance:OpenMicEnterChannel()
self.VoiceFuncSprite1_UISprite.spriteName = "ui_microphone_c_JM"
end);
self:AddClickEvent(self.VoiceFunc_VoiceOption_State_d, function ()
self.VoiceFunc_VoiceOption_State_a_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_b_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_c_quan.gameObject:SetActive(false)
self.VoiceFunc_VoiceOption_State_d_quan.gameObject:SetActive(true)
self.VoiceFunc_VoiceOption.gameObject:SetActive(not self.VoiceFunc_VoiceOption.gameObject.activeInHierarchy);
GVoiceProxy.Instance:CloseMicEnterChannel()
self.VoiceFuncSprite1_UISprite.spriteName = "ui_microphone_b_JM"
end);
GVoiceProxy.Instance:TimeTickTest()
EventManager.Me():AddEventListener(MyselfEvent.EnterVoiceChannel,self.EnterVoiceChannel, self)
end
self.worldBossBtn = self:FindGO("WorldBossBtn")
self.worldBossTipAnchor = self:FindGO("WorldbossTipAnchor"):GetComponent(UIWidget)
self.str = ""
self.worldBossMap = ""
self.time = self:FindGO("worldBossCd"):GetComponent(UILabel)
self.worldBossTime = 0
end
function MainViewMenuPage:UpdateWorldBossTip(note)
if note and note.body then
local worldBossData = note.body
if not worldBossData.open then
self.worldBossBtn:SetActive(false)
else
self.worldBossBtn:SetActive(true)
if worldBossData.mapid and Table_Map[worldBossData.mapid] then
self.worldBossMap = Table_Map[worldBossData.mapid].NameZh
end
self.str = string.format(ZhString.MVP_WorldBoss_Tip,self.worldBossMap)
self:AddClickEvent(self.worldBossBtn,function ()
self.normalTip = TipManager.Instance:ShowNormalTip(self.str, self.worldBossTipAnchor, NGUIUtil.AnchorSide.Center, {-135, 62})
end)
if worldBossData.time then
self.worldBossTime = worldBossData.time
if(self.bosstimeTick == nil)then
self.bosstimeTick = TimeTickManager.Me():CreateTick(0, 1000, self.UpdateWorldbossTick, self, 11)
end
end
end
self.topRFuncGrid2:Reposition()
end
end
function MainViewMenuPage:UpdateWorldbossTick()
local time = self.worldBossTime
if(time == 0)then
if(self.bosstimeTick ~= nil)then
TimeTickManager.Me():ClearTick(self, 11)
self.bosstimeTick = nil
self.time.text = ZhString.Boss_Show
end
return
end
local deltaTime = ServerTime.ServerDeltaSecondTime(time*1000)
local min,sec = ClientTimeUtil.GetFormatSecTimeStr(deltaTime)
if(deltaTime <= 0)then
if(self.bosstimeTick ~= nil)then
TimeTickManager.Me():ClearTick(self, 11)
self.bosstimeTick = nil
self.time.text = ZhString.Boss_Show
end
else
self.time.text = string.format("%02d:%02d", min , sec)
end
end
function MainViewMenuPage:EnterVoiceChannel(data)
if GVoiceProxy.Instance.LastMicState_IsMicOpen == false then
self.VoiceFuncSprite1_UISprite.spriteName= "ui_microphone_b_JM"
else
self.VoiceFuncSprite1_UISprite.spriteName= "ui_microphone_c_JM"
end
if GVoiceProxy.Instance.curChannel == ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index then
self.VoiceFuncSprite2_UISprite.spriteName= "com_txt2_voice2"
self.VoiceFuncSprite2_UISprite.gameObject:SetActive(true)
elseif GVoiceProxy.Instance.curChannel == ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index then
self.VoiceFuncSprite2_UISprite.spriteName= "com_txt_voice2"
self.VoiceFuncSprite2_UISprite.gameObject:SetActive(true)
else
self.VoiceFuncSprite2_UISprite.gameObject:SetActive(false)
end
end
function MainViewMenuPage:InitActivityButton()
self.activityCtl = UIGridListCtrl.new(self.moreGrid, MainViewButtonCell, "MainViewButtonCell");
self.activityCtl:AddEventListener(MouseEvent.MouseClick, self.ClickButton, self);
self.activityCtl:AddEventListener(MainViewButtonEvent.ResetPosition, self.ResetMenuButtonPosition, self);
self:UpdateActivityDatas();
end
function MainViewMenuPage:InitBooth()
self.boothBtn = self:FindGO("BoothShoppingBtn")
self.boothSprite = self:FindGO("Sprite", self.boothBtn):GetComponent(UIMultiSprite)
self:AddClickEvent(self.boothBtn, function ()
if self:_TryGetMainViewBooth() == 1 then
local id = 25821
local dont = LocalSaveProxy.Instance:GetDontShowAgain(id)
if dont == nil then
MsgManager.DontAgainConfirmMsgByID(id, function ()
self:_StartBooth(0)
end)
else
self:_StartBooth(0)
end
else
self:_StartBooth(1)
end
end)
local _Booth = GameConfig.Booth
FunctionSceneFilter.Me():StartFilter(_Booth.booth_screenFilterID)
local currentState, time = self:_TryGetMainViewBooth()
if currentState ~= 1 and ServerTime.CurServerTime() > time + _Booth.shoppingMode_reset then
LocalSaveProxy.Instance:SetMainViewBooth(1)
end
self:UpdateBoothInfo()
end
function MainViewMenuPage:UpdateMenuDatas()
self.mainButtonDatas = {};
for k,v in pairs(Table_MainViewButton)do
local data = {};
data.type = MainViewButtonType.Menu;
data.staticData = v;
table.insert(self.mainButtonDatas, data);
end
table.sort(self.mainButtonDatas, function (a,b)
return a.staticData.id < b.staticData.id;
end)
self.menuCtl:ResetDatas(self.mainButtonDatas);
local cells = self.menuCtl:GetCells();
for i=1,#cells do
local cdata = cells[i].data;
if(cdata.type == MainViewButtonType.Menu)then
local go = cells[i].gameObject;
local data = cdata.staticData;
if(data)then
-- 註冊紅點
if(data.redtiptype and #data.redtiptype>0)then
self:RegisterRedTipCheckByIds(data.redtiptype, self.moreBtn, 42)
self:RegisterRedTipCheckByIds(data.redtiptype, go, 42)
end
if(data.GroupID and #data.GroupID > 0)then
for i=1,#data.GroupID do
local groupId = data.GroupID[i];
RedTipProxy.Instance:RegisterUIByGroupID(groupId ,self.moreBtn, 42);
RedTipProxy.Instance:RegisterUIByGroupID(groupId ,go, 42);
end
end
-- 註冊功能開放按鈕
FunctionUnLockFunc.Me():RegisteEnterBtnByPanelID(data.panelid, go)
local guideId = data.guideiconID
if(guideId)then
self:AddOrRemoveGuideId(go,guideId)
end
end
end
end
self:ResetMenuButtonPosition();
end
function MainViewMenuPage:UpdateActivityDatas()
self.activityDatas = {};
for _, aData in pairs(Table_OperationActivity)do
if(aData.Type == 1)then
local data = {};
data.type = MainViewButtonType.Activity;
data.staticData = aData;
table.insert(self.activityDatas, data);
end
end
self.activityCtl:ResetDatas(self.activityDatas);
self:ResetMenuButtonPosition();
end
function MainViewMenuPage:ClickButton(cellctl)
local data = cellctl.data;
if(data)then
if(data.type == MainViewButtonType.Menu)then
local sData = data.staticData;
if(sData.panelid == PanelConfig.PhotographPanel.id)then
-- 拍照
if(self.isEmojiShow)then
self.isEmojiShow = false;
self:sendNotification(UIEvent.CloseUI, UIViewType.ChatLayer);
end
self:ToView(FunctionUnLockFunc.Me():GetPanelConfigById(sData.panelid));
elseif(sData.panelid == PanelConfig.CreateChatRoom.id)then
local handed,handowner = Game.Myself:IsHandInHand();
if(handed and not handowner)then
MsgManager.ShowMsgByIDTable(824);
return;
end
if Game.Myself:IsInBooth() then
MsgManager.ShowMsgByID(25708)
return
end
self:ToView(FunctionUnLockFunc.Me():GetPanelConfigById(sData.panelid));
elseif sData.panelid == PanelConfig.PvpMainView.id then
if PvpProxy.Instance:IsSelfInPvp() then
MsgManager.ShowMsgByID(951)
elseif PvpProxy.Instance:IsSelfInGuildBase() then
MsgManager.ShowMsgByID(983)
elseif Game.Myself:IsDead() then
MsgManager.ShowMsgByID(2500)
elseif Game.Myself:IsInBooth() then
MsgManager.ShowMsgByID(25708)
else
self:ToView(FunctionUnLockFunc.Me():GetPanelConfigById(sData.panelid), {ButtonConfig = sData})
end
else
self:ToView(FunctionUnLockFunc.Me():GetPanelConfigById(sData.panelid), {ButtonConfig = sData});
end
self:Hide(self.moreBord);
elseif(data.type == MainViewButtonType.Activity)then
local sData = data.staticData;
self:ToView(PanelConfig.TempActivityView, {Config = sData});
end
end
end
function MainViewMenuPage:ResetMenuButtonPosition()
self.moreGrid.repositionNow = true;
if self.ButtonGrid_UIGrid then
self.ButtonGrid_UIGrid.repositionNow = true
end
end
function MainViewMenuPage:HandleUpdatetemScene()
local bRet = AdventureDataProxy.Instance:HasTempSceneryExsit()
if(bRet)then
self:Show(self.tempAlbumButton)
else
self:Hide(self.tempAlbumButton)
end
end
function MainViewMenuPage:HandleExchangeShopBtnEffect()
self.exchangeShopPos:SetActive(ExchangeShopProxy.Instance:CanOpen())
self.topRFuncGrid2.repositionNow = true;
end
function MainViewMenuPage:UpdateRewardButton()
local rewardList = PostProxy.Instance:GetPostList();
self.rewardBtn:SetActive(#rewardList>0);
self.topRFuncGrid2:Reposition();
end
function MainViewMenuPage:UpdateBagNum()
if(not self.bagNum)then
self.bagNum = self:FindComponent("BagNum", UILabel, self.bagBtn);
end
local bagData = BagProxy.Instance.bagData;
local bagItems = bagData:GetItems();
local uplimit = bagData:GetUplimit();
-- if(uplimit > 0 and #bagItems >= uplimit)then
self.bagNum.gameObject:SetActive(true);
self.bagNum.text = #bagItems.."/"..uplimit;
-- else
--self.bagNum.gameObject:SetActive(false);
-- self.bagNum.gameObject:SetActive(true);
-- end
end
function MainViewMenuPage:UpdateTempBagButton()
local tempBagdatas = BagProxy.Instance.tempBagData:GetItems();
local hasDelWarnning = false;
for i=1,#tempBagdatas do
if( tempBagdatas[i]:GetDelWarningState() )then
hasDelWarnning = true;
break;
end
end
self.tempBagWarning:SetActive(hasDelWarnning);
self.tempBagButton:SetActive(#tempBagdatas>0);
-- self.tempBagButton:SetActive(true);
end
function MainViewMenuPage:HandleTowerSummaryCmd(note)
if EndlessTowerProxy.Instance:IsTeamMembersFighting() then
MsgManager.ConfirmMsgByID(1312,function ()
ServiceInfiniteTowerProxy.Instance:CallEnterTower(0,Game.Myself.data.id)
end , nil , nil)
else
self:ToView(PanelConfig.EndlessTower)
end
end
function MainViewMenuPage:HandleEnterTower(note)
ServiceInfiniteTowerProxy.Instance:CallEnterTower(note.body.layer,Game.Myself.data.id)
end
function MainViewMenuPage:HandleTowerInfo(note)
self:ToView(PanelConfig.EndlessTower)
end
function MainViewMenuPage:ToView(viewconfig,viewdata)
if(viewconfig and viewconfig.id == 83)then
PersonalPicturePanel.ViewType = UIViewType.NormalLayer
end
self:sendNotification(UIEvent.JumpPanel,{view = viewconfig, viewdata = viewdata});
end
function MainViewMenuPage:MapViewInterests()
self:AddListenEvt(MainViewEvent.EmojiViewShow, self.HandleEmojiShowSync);
self:AddListenEvt(ServiceEvent.InfiniteTowerTeamTowerSummaryCmd,self.HandleTowerSummaryCmd);
self:AddListenEvt(MyselfEvent.DeathStatus,self.HandleDeathBegin);
self:AddListenEvt(MyselfEvent.ReliveStatus,self.HandleReliveStatus);
self:AddListenEvt(ServiceEvent.InfiniteTowerEnterTower,self.HandleEnterTower);
self:AddListenEvt(ServiceEvent.InfiniteTowerTowerInfoCmd,self.HandleTowerInfo);
self:AddListenEvt(ServiceEvent.SessionMailQueryAllMail, self.UpdateRewardButton);
self:AddListenEvt(ServiceEvent.SessionMailMailUpdate, self.UpdateRewardButton);
self:AddListenEvt(ServiceEvent.SceneManualUpdateSolvedPhotoManualCmd,self.HandleUpdatetemScene);
self:AddListenEvt(UIMenuEvent.UnRegisitButton, self.UnLockMenuButton);
self:AddListenEvt(UIMenuEvent.UnRegisitButton, self.UnLockMenuButton);
self:AddListenEvt(ItemEvent.TempBagUpdate, self.UpdateTempBagButton);
self:AddListenEvt(TempItemEvent.TempWarnning, self.UpdateTempBagButton);
self:AddListenEvt(ItemEvent.ItemUpdate, self.UpdateBagNum);
self:AddListenEvt(ServiceEvent.ItemPackSlotNtfItemCmd, self.UpdateBagNum);
self:AddListenEvt(MainViewEvent.MenuActivityOpen, self.HandleUpdateActivity);
self:AddListenEvt(MainViewEvent.MenuActivityClose, self.HandleUpdateActivity);
self:AddListenEvt(ServiceUserProxy.RecvLogin, self.HandleUpdateMatchInfo);
self:AddListenEvt(ServiceEvent.MatchCCmdNtfMatchInfoCCmd, self.HandleUpdateMatchInfo);
self:AddListenEvt(MainViewEvent.UpdateMatchBtn, self.HandleUpdateMatchInfo)
self:AddListenEvt(PVPEvent.PVP_MVPFightLaunch, self.CloseMatchInfo)
self:AddListenEvt(PVPEvent.PVP_MVPFightShutDown,self.HandleUpdateMatchInfo)
self:AddListenEvt(ServiceEvent.MatchCCmdTeamPwsPreInfoMatchCCmd, self.HandleUpdateMatchInfo)
self:AddListenEvt(PVPEvent.TeamPws_Launch, self.CloseTeamPwsInfo)
self:AddListenEvt(PVPEvent.TeamPws_ShutDown,self.HandleUpdateMatchInfo)
self:AddListenEvt(LoadSceneEvent.FinishLoad, self.HandleMapLoaded);
self:AddListenEvt(ServiceEvent.GuildCmdGvgOpenFireGuildCmd, self.HandleGvgOpenFireGuildCmd);
self:AddListenEvt(GVGEvent.GVG_FinalFightLaunch, self.UpdateGvgOpenFireButton);
self:AddListenEvt(GVGEvent.GVG_FinalFightShutDown, self.UpdateGvgOpenFireButton);
self:AddListenEvt(MainViewEvent.UpdateTutorMatchBtn,self.UpdateTutorMatchInfo)
self:AddListenEvt(ServiceEvent.ChatCmdQueryRealtimeVoiceIDCmd, self.RecvChatCmdQueryRealtimeVoiceIDCmd)
self:AddListenEvt(ServiceEvent.SessionTeamExitTeam, self.RecvSessionTeamExitTeam)
self:AddListenEvt(ServiceEvent.GuildCmdExitGuildGuildCmd , self.RecvGuildCmdExitGuildGuildCmd)
-- WORLD BOSS NOTIFY
self:AddListenEvt(ServiceEvent.BossCmdWorldBossNtf, self.UpdateWorldBossTip);
self:AddListenEvt(ExchangeShopEvent.ExchangeShopShow,self.HandleExchangeShopBtnEffect)
self:AddListenEvt(ServiceEvent.SessionShopUpdateExchangeShopData , self.HandleExchangeShopBtnEffect)
self:AddListenEvt(ServiceEvent.SessionShopResetExchangeShopDataShopCmd , self.HandleExchangeShopBtnEffect)
end
function MainViewMenuPage:RecvGuildCmdExitGuildGuildCmd(data)
self.GuildVoice.gameObject:SetActive(false)
end
function MainViewMenuPage:RecvSessionTeamExitTeam(data)
self.TeamVoice.gameObject:SetActive(false)
end
function MainViewMenuPage:RecvChatCmdQueryRealtimeVoiceIDCmd(data)
if GameConfig.OpenVoice~=nil and GameConfig.OpenVoice == false then
if self.TeamVoice~=nil and self.GuildVoice~=nil then
self.TeamVoice.gameObject:SetActive(false)
self.GuildVoice.gameObject:SetActive(false)
end
do return end
else
end
self.curChannel = data.body.channel
self.roomid = data.body.id
if self.curChannel ==nil then
elseif self.curChannel ==ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index then
--self.TeamVoice.gameObject:SetActive(false)
elseif self.curChannel ==ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index then
--self.GuildVoice.gameObject:SetActive(true)
end
if self.ButtonGrid_UIGrid then
self.ButtonGrid_UIGrid:Reposition()
self.ButtonGrid_UIGrid.repositionNow = true
else
end
end
function MainViewMenuPage:HandleMapLoaded(note)
self:UpdateMatchInfo()
self:UpdateTutorMatchInfo()
self:UpdateBoothInfo()
if(self.matchInfo_cancelBord == nil)then
return;
end
self.matchInfo_cancelBord:SetActive(false);
end
function MainViewMenuPage:HandleGvgOpenFireGuildCmd(note)
self:UpdateGvgOpenFireButton();
end
function MainViewMenuPage:UpdateGvgOpenFireButton()
-- gvg決戰副本中遮蔽gvg戰況按鈕
if(Game.MapManager:IsGvgMode_Droiyan())then
self.glandStatusButton:SetActive(false);
self.topRFuncGrid2:Reposition();
return;
end
local b = GvgProxy.Instance:GetGvgOpenFireState();
self.glandStatusButton:SetActive(b == true);
self.topRFuncGrid2:Reposition();
end
-- MatchInfo Begin
local tempV3 = LuaVector3();
function MainViewMenuPage:InitMatchInfo()
if(self.matchInfoButton == nil)then
self.matchInfoButton = self:FindGO("MatchInfoButton");
self.matchInfoIcon = self:FindComponent("Sprite", UISprite, self.matchInfoButton);
self.inMatchLabel = self:FindGO("Label",self.matchInfoButton):GetComponent(UILabel)
self.matchInfo_cancelBord = self:FindGO("CancelBord");
self.matchInfo_cancelBord_Bg = self:FindComponent("Bg", UISprite, self.matchInfo_cancelBord);
self.matchInfo_cancelBord = self:FindGO("CancelBord");
self:AddClickEvent(self.matchInfoButton, function ()
local etype, matchStatus = PvpProxy.Instance:GetNowMatchInfo()
local isMatching = nil
local isfighting = nil
if matchStatus then
isMatching = matchStatus.ismatch
isfighting = matchStatus.isfighting
redlog("matchStatus",matchStatus.ismatch,matchStatus.isfighting)
else
redlog("matchStatus nil")
end
if isMatching then
tempV3:Set(LuaGameObject.GetPosition(self.matchInfoButton.transform))
self.matchInfo_cancelBord.transform.position = tempV3;
tempV3:Set(LuaGameObject.GetLocalPosition(self.matchInfo_cancelBord.transform));
tempV3:Set(tempV3[1], tempV3[2]-115, tempV3[3]);
self.matchInfo_cancelBord.transform.localPosition = tempV3;
self.matchInfo_cancelBord:SetActive(true);
self.inMatchLabel.gameObject:SetActive(true)
self.inMatchLabel.text = ZhString.MVPMatch_InMatch
elseif isfighting then
ServiceMatchCCmdProxy.Instance:CallJoinFightingCCmd(PvpProxy.Type.MvpFight)
self.inMatchLabel.gameObject:SetActive(true)
self.inMatchLabel.text = ZhString.MVPMatch_JoinTeam
else
self.matchInfo_cancelBord:SetActive(false)
self.inMatchLabel.gameObject:SetActive(false)
GameFacade.Instance:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.MvpMatchView})
end
end);
self.matchInfo_cancelButton = self:FindGO("CancelMatchButton", self.matchInfo_cancelBord);
self:AddClickEvent(self.matchInfo_cancelButton, function (go)
self:ClickCancelMatch();
end);
self.matchInfo_gotoButton = self:FindGO("GotoButton", self.matchInfo_cancelBord);
self:AddClickEvent(self.matchInfo_gotoButton, function (go)
self:ClickMatchGotoButton();
end);
end
end
local Match_CancelMsgId_Map =
{
[PvpProxy.Type.PoringFight] = 3610,
[PvpProxy.Type.MvpFight] = 7311,
}
function MainViewMenuPage:InitTeamPwsMatchButton()
self.teamPwsMatchButton = self:FindGO("TeamPwsMatchBtn")
self.labTeamPwsMatchBtn = self:FindComponent("Label", UILabel, self.teamPwsMatchButton)
self.sprTeamPwsPreCountDown = self:FindComponent("CountDownCircle", UISprite, self.teamPwsMatchButton)
TeamPwsMatchPopUp.Anchor = self.teamPwsMatchButton.transform
TeamPwsPreparePopUp.Anchor = self.teamPwsMatchButton.transform
self:AddClickEvent(self.teamPwsMatchButton, function()
local etype = PvpProxy.Type.TeamPws
local status = PvpProxy.Instance:GetMatchState(etype)
if (not status or not status.ismatch) then
etype = PvpProxy.Type.FreeBattle
status = PvpProxy.Instance:GetMatchState(etype)
end
if (status) then
if (status.isprepare) then
TeamPwsPreparePopUp.Show(etype)
elseif (status.ismatch) then
TeamPwsMatchPopUp.Show(etype)
end
else
LogUtility.Error("未找到匹配狀態資訊!")
self:CloseTeamPwsInfo()
end
end)
end
function MainViewMenuPage:ClickCancelMatch()
if(self.matchType == nil)then
return;
end
local msgId = Match_CancelMsgId_Map[ self.matchType ];
if(msgId == nil)then
return;
end
MsgManager.ConfirmMsgByID(msgId, function ()
ServiceMatchCCmdProxy.Instance:CallLeaveRoomCCmd(self.matchType);
end, nil, nil)
self.matchInfo_cancelBord:SetActive(false);
end
function MainViewMenuPage:ClickMatchGotoButton()
local actData = FunctionActivity.Me():GetActivityData( GameConfig.PoliFire.PoringFight_ActivityId or 111 );
if(actData)then
FuncShortCutFunc.Me():CallByID(actData.traceId);
end
self.matchInfo_cancelBord:SetActive(false);
end
function MainViewMenuPage:HandleUpdateMatchInfo(note)
self:UpdateMatchInfo();
end
function MainViewMenuPage:CloseMatchInfo()
self.matchInfoButton:SetActive(false)
end
function MainViewMenuPage:CloseTeamPwsInfo()
TimeTickManager.Me():ClearTick(self, 1)
self.teamPwsMatchButton:SetActive(false)
self.topRFuncGrid2:Reposition()
PvpProxy.Instance:ClearTeamPwsPreInfo()
PvpProxy.Instance:ClearTeamPwsMatchInfo()
end
local MatchInfoSprite_Map =
{
[PvpProxy.Type.PoringFight] = "main_icon_chaos",
[PvpProxy.Type.MvpFight] = "main_icon_mvp2",
}
function MainViewMenuPage:UpdateMatchInfo(activityType)
TimeTickManager.Me():ClearTick(self, 1)
if Game.MapManager:IsPVPMode_MvpFight() then
self.matchInfoButton:SetActive(false)
self.topRFuncGrid2:Reposition()
return
end
if Game.MapManager:IsPVPMode_TeamPws() then
self.teamPwsMatchButton:SetActive(false)
self.topRFuncGrid2:Reposition()
return
end
local etype, matchStatus = PvpProxy.Instance:GetNowMatchInfo();
local active = nil
local isfighting = nil
if matchStatus then
active = matchStatus.ismatch
isfighting = matchStatus.isfighting
redlog("matchStatus",matchStatus.ismatch,matchStatus.isfighting)
else
redlog("matchStatus nil")
end
if (etype == PvpProxy.Type.TeamPws or etype == PvpProxy.Type.FreeBattle) then
local btnActive = matchStatus.ismatch or matchStatus.isprepare or false
if (self.teamPwsMatchButton.activeSelf ~= btnActive) then self.teamPwsMatchButton:SetActive(btnActive) end
self.sprTeamPwsPreCountDown.gameObject:SetActive(matchStatus.isprepare or false)
self.labTeamPwsMatchBtn.text = matchStatus.isprepare and ZhString.TeamPws_Preparing or ZhString.TeamPws_InMatch
if (matchStatus.isprepare) then
self.maxTeamPwsPrepareTime = GameConfig.teamPVP.Countdown
self.teamPwsStartPrepareTime = PvpProxy.Instance:GetTeamPwsPreStartTime()
if (self.teamPwsStartPrepareTime) then
TimeTickManager.Me():CreateTick(0, 33, self.UpdateTeamPwsPrepareTime, self, 1)
else
self.sprTeamPwsPreCountDown.fillAmount = 0
end
end
else
self.teamPwsMatchButton:SetActive(false)
self.matchType = etype;
self:InitMatchInfo();
self.matchInfoIcon.spriteName = MatchInfoSprite_Map[ etype ] or ""
local actData = FunctionActivity.Me():GetActivityData(GameConfig.MvpBattle.ActivityID)
if actData then
self.matchInfoButton:SetActive(true);
self.matchInfoIcon.spriteName = "main_icon_mvp2"
elseif activityType == GameConfig.MvpBattle.ActivityID then
self.matchInfoButton:SetActive(false)
else
self.matchInfoButton:SetActive(active == true)
end
self.inMatchLabel.gameObject:SetActive(active == true or isfighting == true)
if active then
self.inMatchLabel.text = ZhString.MVPMatch_InMatch
elseif isfighting then
self.inMatchLabel.text = ZhString.MVPMatch_JoinTeam
end
if(etype == PvpProxy.Type.MvpFight)then
self.matchInfo_gotoButton:SetActive(false);
self.matchInfo_cancelBord_Bg.height = 106;
else
self.matchInfo_gotoButton:SetActive(true);
self.matchInfo_cancelBord_Bg.height = 166;
end
end
self.topRFuncGrid2:Reposition()
end
function MainViewMenuPage:UpdateTeamPwsPrepareTime()
local curTime = (ServerTime.CurServerTime() - self.teamPwsStartPrepareTime) / 1000
local leftTime = math.max(self.maxTeamPwsPrepareTime - curTime, 0)
self.sprTeamPwsPreCountDown.fillAmount = leftTime / self.maxTeamPwsPrepareTime
if (leftTime == 0) then
TimeTickManager.Me():ClearTick(self, 1)
end
end
-- MatchInfo End
function MainViewMenuPage:HandleUpdateActivity(note)
local activityType = note.body;
if(not activityType)then
return;
end
local cells = self.activityCtl:GetCells();
for i=1,#cells do
local data = cells[i].data;
if(data.type == MainViewButtonType.Activity and
data.staticData.id == activityType)then
cells[i]:UpdateActivityState();
break;
end
end
self:ResetMenuButtonPosition();
end
function MainViewMenuPage:GetSkillButton()
if(not self.skillButton)then
local buttons = self.activityCtl:GetCells();
for i=1,#buttons do
local buttonData = buttons[i].data;
if(buttonData.panelid == PanelConfig.CharactorProfessSkill.id)then
self.skillButton = buttons[i].gameObject;
end
end
end
return self.skillButton;
end
function MainViewMenuPage:HandleDeathBegin(note)
self:SetTextureGrey(self.bagBtn);
self.bagBtn:GetComponent(BoxCollider).enabled = false;
local skillButton = self:GetSkillButton();
if(skillButton)then
self:SetTextureGrey(skillButton);
skillButton:GetComponent(BoxCollider).enabled = false;
end
end
function MainViewMenuPage:HandleReliveStatus(note)
self:SetTextureColor(self.bagBtn, Color(1,1,1), true);
self.bagBtn:GetComponent(BoxCollider).enabled = true;
self:FindComponent("Label", UILabel, self.bagBtn).effectColor = Color(9/255,27/255,90/255);
local skillButton = self:GetSkillButton();
if(skillButton)then
self:SetTextureColor(skillButton, Color(1,1,1), true);
skillButton:GetComponent(BoxCollider).enabled = true;
self:FindComponent("Label", UILabel, skillButton).effectColor = Color(9/255,27/255,90/255);
end
end
function MainViewMenuPage:HandleEmojiShowSync(note)
self.isEmojiShow = note.body;
end
function MainViewMenuPage:UnLockMenuButton(id)
self.moreGrid.repositionNow = true;
self.topRFuncGrid.repositionNow = true;
if self.ButtonGrid_UIGrid then
self.ButtonGrid_UIGrid:Reposition()
self.ButtonGrid_UIGrid.repositionNow = true
end
end
function MainViewMenuPage:OnEnter()
MainViewMenuPage.super.OnEnter(self);
self:UpdateRewardButton();
self:UpdateTempBagButton();
self:UpdateBagNum();
self:RegisterPetAdvRedTip()
self:HandleUpdatetemScene()
-- 上線更新波利匹配資訊
self:UpdateMatchInfo();
self:UpdateGvgOpenFireButton();
self:HandleExchangeShopBtnEffect()
end
function MainViewMenuPage:OnShow()
self.topRFuncGrid2:Reposition()
end
function MainViewMenuPage:RegisterPetAdvRedTip()
self:RegisterRedTipCheck(SceneTip_pb.EREDSYS_PET_ADVENTURE,self.bagBtn,42)
end
function MainViewMenuPage:OnExit()
MainViewMenuPage.super.OnExit(self);
end
function MainViewMenuPage:UpdateTutorMatchInfo()
if not self.tutorMatchInfoBtn then
self.tutorMatchInfoBtn = self:FindGO("TutorMatchInfoBtn")
end
if not self.tutorMatchInfoBtn then
return
end
local status = TutorProxy.Instance:GetTutorMatStatus()
if status == TutorProxy.TutorMatchStatus.Start then
self.tutorMatchInfoBtn:SetActive(true)
else
self.tutorMatchInfoBtn:SetActive(false)
end
self.topRFuncGrid2:Reposition()
self:AddClickEvent(self.tutorMatchInfoBtn, function ()
if TutorProxy.Instance:CanAsStudent() then
GameFacade.Instance:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.TutorMatchView, viewdata = TutorType.Tutor})
elseif TutorProxy.Instance:CanAsTutor() then
GameFacade.Instance:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.TutorMatchView, viewdata = TutorType.Student})
end
end)
end
function MainViewMenuPage:UpdateBoothInfo()
local isShow = BoothProxy.Instance:CanMapBooth()
self.boothBtn:SetActive(isShow)
self.topRFuncGrid2.repositionNow = true
if isShow then
local currentState = self:_TryGetMainViewBooth()
self.boothSprite.CurrentState = currentState
if currentState == 1 then
FunctionSceneFilter.Me():EndFilter(GameConfig.Booth.screenFilterID)
else
FunctionSceneFilter.Me():StartFilter(GameConfig.Booth.screenFilterID)
end
end
end
function MainViewMenuPage:_TryGetMainViewBooth()
local info = LocalSaveProxy.Instance:GetMainViewBooth()
local split = string.split(info, "_")
if #split > 1 then
return tonumber(split[1]), tonumber(split[2])
end
return 1, ServerTime.CurServerTime()
end
function MainViewMenuPage:_StartBooth(currentState)
LocalSaveProxy.Instance:SetMainViewBooth(currentState)
self:UpdateBoothInfo()
end