diff --git a/lua_probject/base_project/Game/Controller/GameController.lua b/lua_probject/base_project/Game/Controller/GameController.lua index fe52013c..ab2d2b1e 100644 --- a/lua_probject/base_project/Game/Controller/GameController.lua +++ b/lua_probject/base_project/Game/Controller/GameController.lua @@ -37,7 +37,10 @@ GameEvent = { AddScore = "AddScore", --推送道具互动 - MISSILE = "MISSILE" + MISSILE = "MISSILE", + + --Home状态推送 + HOMESTATE = "HOMESTATE", } --- Base GameController @@ -89,6 +92,8 @@ function M:init(name) self._eventmap[Protocol.GAME_GANGFEN] = self.OnEvtGANGFEN self._eventmap[Protocol.GAME_MISSILE] = self.OnEvtMISSILE + self._eventmap[Protocol.GAME_HOME_STATE] = self.OnEvtHomeState + --self._eventmap[Protocol.GAME_AUTO_CARD] = self.OnEvtOpenGameHuTuoGtips end @@ -657,6 +662,20 @@ function M:OnEvtMISSILE(msg) DispatchEvent(self._dispatcher, GameEvent.MISSILE, nil, msg) end +-- 按home建 out在程序外 enter在程序内 +function M:FG_Set_Home(gameStatus) + local _client = ControllerManager.GameNetClinet + if not _client then + return + end + local _data = {} + _data.uid = DataManager.SelfUser.account_id + _data.gameStatus = gameStatus + _client:send(Protocol.GAME_SET_HOME, _data, function(res) + callback(res) + end) +end + function M:DispatchEventTuoGuan(p, isShow, t) DispatchEvent(self._dispatcher, GameEvent.TupGuanOpen, p, isShow, t) end @@ -682,3 +701,7 @@ end function M:OnEventFzAction(msg) DispatchEvent(self._dispatcher, GameEvent.FangziAnimation, msg) end + +function M:OnEvtHomeState(msg) + DispatchEvent(self._dispatcher, GameEvent.HOMESTATE, msg) +end diff --git a/lua_probject/base_project/Game/DataManager.lua b/lua_probject/base_project/Game/DataManager.lua index 89d04db3..94b51c8d 100644 --- a/lua_probject/base_project/Game/DataManager.lua +++ b/lua_probject/base_project/Game/DataManager.lua @@ -9,6 +9,7 @@ DataManager= { SelfUser = User.new(), CurrenRoom = nil, + CurrenGroup = nil, -- 互动表情时间,控制cd InteractTime = 0, -- 记录各游戏使用牌型的列表,现暂时只保存了麻将的数据. diff --git a/lua_probject/base_project/Game/Protocol.lua b/lua_probject/base_project/Game/Protocol.lua index e36d7795..56d7c26b 100644 --- a/lua_probject/base_project/Game/Protocol.lua +++ b/lua_probject/base_project/Game/Protocol.lua @@ -510,4 +510,10 @@ Protocol = { --发送道具互动 GAME_SENDMISSILE = "?", + + -- 按home建 在游戏里1 不在游戏里0 + GAME_SET_HOME = "3009", + + -- home状态推送 + GAME_HOME_STATE = "3010", } diff --git a/lua_probject/base_project/Game/View/FGAssistView.lua b/lua_probject/base_project/Game/View/FGAssistView.lua index 543c9957..84146684 100644 --- a/lua_probject/base_project/Game/View/FGAssistView.lua +++ b/lua_probject/base_project/Game/View/FGAssistView.lua @@ -62,7 +62,6 @@ function M:FillData() end function M:ReFalsh(...) - local arg = { ... } local group = DataManager.groups:get(self.group_id) @@ -70,7 +69,7 @@ function M:ReFalsh(...) local player = group.memberMap[player] if player then - player.online = 0 + player.online = 0 end end @@ -78,7 +77,7 @@ function M:ReFalsh(...) local player = group.memberMap[player] if player then - player.online = 1 + player.online = 1 end end @@ -92,7 +91,11 @@ function M:PlayerRenderer(index, obj) local btn_invite = obj:GetChild('btn_invite') btn_invite:GetController('online').selectedIndex = self._data_number[i].uid == DataManager.SelfUser.account_id and 0 or self._data_number[i].online - obj:GetController('type').selectedIndex = self._data_number[i].online + local state = self._data_number[i].online + if self._data_number[i].playing == "startPlaying" then + state = 2 + end + obj:GetController('type').selectedIndex = state local loader = obj:GetChild("btn_head"):GetChild("icon") ImageLoad.Load(self._data_number[i].portrait, loader) btn_invite.onClick:Set(function() diff --git a/lua_probject/base_project/Game/View/FamilyView.lua b/lua_probject/base_project/Game/View/FamilyView.lua index 1cfc913a..6f9c9733 100644 --- a/lua_probject/base_project/Game/View/FamilyView.lua +++ b/lua_probject/base_project/Game/View/FamilyView.lua @@ -330,6 +330,9 @@ function M:ChangeNumber(fgCtr, group_id, limit, num, minus_only, sort_type) obj:GetChild('title').emojies = EmojiDitc.EmojiesDitc obj:GetChild('title').text = members[index + 1].nick obj:GetController('type').selectedIndex = members[index + 1].online and members[index + 1].online or 0 + if members[index + 1].playing == "startPlaying" then + obj:GetController('type').selectedIndex = 2 + end local loader_icon = obj:GetChild("btn_head"):GetChild("icon") ImageLoad.Load(members[index + 1].portrait, loader_icon) end @@ -570,6 +573,7 @@ function M:ConnetFamily(index, groups, isCreate) local list_family = self._view:GetChild('list_family') list_family:SetVirtual() self._group = DataManager.groups:get(groups[index].id) + DataManager.CurrenGroup = self._group self._view:GetChild('text_familyId').text = self._group.id self._view:GetController('lev').selectedIndex = self._group.lev - 1 print("===================================self._group") @@ -673,13 +677,11 @@ function M:OnUpdate() self:UpdateFamilyRoom(fgCtr, self._group.id) end - local HeartbeatTime = 5 + local HeartbeatTime = 30 if newTime - self.lastTime > HeartbeatTime then fgCtr:FG_SetFamilyHeartbeat(self._group.id, DataManager.SelfUser.account_id, function(res) print(res) end) - - self:ChangeNumber(fgCtr, self._group.id, 0, self._group.total_member_num, false, 1) --[[ fgCtr:FG_SetFamilyHeartbeat(self._group.id, DataManager.SelfUser.account_id, function(res) self:ChangeNumber(fgCtr, self._group.id, 0, self._group.total_member_num, false, diff --git a/lua_probject/base_project/Game/View/MainView.lua b/lua_probject/base_project/Game/View/MainView.lua index 018d1a8b..96d353cd 100644 --- a/lua_probject/base_project/Game/View/MainView.lua +++ b/lua_probject/base_project/Game/View/MainView.lua @@ -7,8 +7,8 @@ local PlayerDistanceView = import('.PlayerDistanceView') local FGAssistView = import('.FGAssistView') local MissileSender = import(".MissileSender") -local function GetSeat(data, uId) - for _, player in pairs(data.player_list) do +local function GetSeat(self, uId) + for _, player in pairs(self._room.player_list) do if player.self_user.account_id == uId then return player.seat end @@ -873,6 +873,22 @@ function M:EventInit() _room._flag_updateWitness = true end ) + + _gamectr:AddEventListener(GameEvent.HOMESTATE, function(...) + local arg = {...} + local uid = arg[1].uid + local setHome = arg[1].setHome + local gameStatus = arg[1].gameStatus + + local seat = GetSeat(self, uid) + local info = self._player_info[self:GetPos(seat)] + + if gameStatus == "out" then + info:UpdateLineState(0) + elseif gameStatus == "enter" then + info:UpdateLineState(1) + end + end) end -- 设置能否互动,1允许,0禁止 diff --git a/lua_probject/base_project/Game/View/playerDetailView.lua b/lua_probject/base_project/Game/View/playerDetailView.lua index b9048ee2..3cbc74f1 100644 --- a/lua_probject/base_project/Game/View/playerDetailView.lua +++ b/lua_probject/base_project/Game/View/playerDetailView.lua @@ -37,6 +37,10 @@ function playerDetailView:Init() self.loader_icon = self._view:GetChild("loader_icon") self.btn_boom.onClick:Set(function() + + local _gamectr = ControllerManager.GetController(GameController) + _gamectr:SendInteraction(DataManager.SelfUser.account_id, 1, "") + local mainView = BaseView.FindView("MainView") if mainView then mainView:Missile(1, self.player.seat, "ui://Common/boom", "ui://Main_Majiang/Missile_boom") diff --git a/lua_probject/base_project/Main.lua b/lua_probject/base_project/Main.lua index 125e79ca..33fa1095 100644 --- a/lua_probject/base_project/Main.lua +++ b/lua_probject/base_project/Main.lua @@ -15,6 +15,7 @@ require "Game.ExtendHotupdate" require "TableData" local EmojiLuaHelper = import("Game.View.Common.EmojiLuaHelper") +import("Game.GroupUpdataHelper") MsgParser = require("MsgParser") @@ -40,14 +41,14 @@ oldGameVersion = 2 --1 原始 2 老游戏新加功能 function Main() -- EmmyluaDebug - if true then + if true then local suc = pcall(function() local path = Application.streamingAssetsPath .. "/../../.." package.cpath = package.cpath .. ";" .. path .. "/?.dll" local dbg = require("emmy_core") dbg.tcpConnect('localhost', 9966) end) - if suc then + if suc then print("=============================调试连接成功!===========================") end end @@ -64,17 +65,32 @@ function Main() FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("SIYUAN", "base/static/fonts/SIYUAN.TTF"), null) FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("方正胖娃_GBK", "base/static/fonts/方正胖娃_GBK.ttf"), null) FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("方正粗圆_GBK", "base/static/fonts/方正粗圆_GBK.ttf"), null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("FZCuYuan-M03","base/static/fonts/FZCuYuan-M03.TTF"),null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-35-Thin","base/static/fonts/AlibabaPuHuiTi-3-35-Thin.ttf"),null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-45-Light","base/static/fonts/AlibabaPuHuiTi-3-45-Light.ttf"),null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-55-Regular","base/static/fonts/AlibabaPuHuiTi-3-55-Regular.ttf"),null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-55-RegularL3","base/static/fonts/AlibabaPuHuiTi-3-55-RegularL3.ttf"),null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-65-Medium","base/static/fonts/AlibabaPuHuiTi-3-65-Medium.ttf"),null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-75-SemiBold","base/static/fonts/AlibabaPuHuiTi-3-75-SemiBold.ttf"),null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-85-Bold","base/static/fonts/AlibabaPuHuiTi-3-85-Bold.ttf"),null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-95-ExtraBold","base/static/fonts/AlibabaPuHuiTi-3-95-ExtraBold.ttf"),null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-105-Heavy","base/static/fonts/AlibabaPuHuiTi-3-105-Heavy.ttf"),null) - FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-115-Black","base/static/fonts/AlibabaPuHuiTi-3-115-Black.ttf"),null) + FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("FZCuYuan-M03", "base/static/fonts/FZCuYuan-M03.TTF"), + null) + FairyGUI.FontManager.RegisterFont( + FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-35-Thin", "base/static/fonts/AlibabaPuHuiTi-3-35-Thin.ttf"), null) + FairyGUI.FontManager.RegisterFont( + FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-45-Light", "base/static/fonts/AlibabaPuHuiTi-3-45-Light.ttf"), null) + FairyGUI.FontManager.RegisterFont( + FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-55-Regular", "base/static/fonts/AlibabaPuHuiTi-3-55-Regular.ttf"), + null) + FairyGUI.FontManager.RegisterFont( + FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-55-RegularL3", "base/static/fonts/AlibabaPuHuiTi-3-55-RegularL3.ttf"), + null) + FairyGUI.FontManager.RegisterFont( + FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-65-Medium", "base/static/fonts/AlibabaPuHuiTi-3-65-Medium.ttf"), null) + FairyGUI.FontManager.RegisterFont( + FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-75-SemiBold", "base/static/fonts/AlibabaPuHuiTi-3-75-SemiBold.ttf"), + null) + FairyGUI.FontManager.RegisterFont( + FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-85-Bold", "base/static/fonts/AlibabaPuHuiTi-3-85-Bold.ttf"), null) + FairyGUI.FontManager.RegisterFont( + FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-95-ExtraBold", "base/static/fonts/AlibabaPuHuiTi-3-95-ExtraBold.ttf"), + null) + FairyGUI.FontManager.RegisterFont( + FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-105-Heavy", "base/static/fonts/AlibabaPuHuiTi-3-105-Heavy.ttf"), null) + FairyGUI.FontManager.RegisterFont( + FairyGUI.DynamicFont.New("AlibabaPuHuiTi-3-115-Black", "base/static/fonts/AlibabaPuHuiTi-3-115-Black.ttf"), null) --FairyGUI.FontManager.RegisterFont(FairyGUI.DynamicFont.New("HYFangLiJ","base/static/fonts/HYFangLiJ.ttf"),null) _game_info = json.decode(GameApplication.Instance.GameInfo) --_game_info["login_url"]="http://8.134.59.224:8101/" @@ -283,11 +299,21 @@ end function OnApplicationPause() -- ViewUtil.CloseModalWait() ViewManager.OnApplicationPause() + + local _gamectr = ControllerManager.GetController(GameController) + if _gamectr then + _gamectr:FG_Set_Home("out") + end end --程序从后台切回 function OnApplicationActive() ViewManager.OnApplicationActive() + + local _gamectr = ControllerManager.GetController(GameController) + if _gamectr then + _gamectr:FG_Set_Home("enter") + end end function pt(...) diff --git a/lua_probject/main_project/main/majiang/MJPlayerCardInfoView.lua b/lua_probject/main_project/main/majiang/MJPlayerCardInfoView.lua index 179b6087..7174c2e4 100644 --- a/lua_probject/main_project/main/majiang/MJPlayerCardInfoView.lua +++ b/lua_probject/main_project/main/majiang/MJPlayerCardInfoView.lua @@ -460,6 +460,11 @@ function M:ResetCardType() end function M:ShowHand(cards) + + --local verticalList = + + --if + self._view_handCardList:RemoveChildren() for _,card in pairs(cards) do local obj = self._view_handCardList:AddItemFromPool()