From b71547126a7678ae73acb2be21ce8a287b33f84e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E5=AE=B6=E7=82=9C?= <2029049582@qq.com> Date: Tue, 20 May 2025 16:51:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=B2=E5=8F=8B=E5=9C=88?= =?UTF-8?q?=E9=99=90=E5=88=B6=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Game/Controller/NewGroupController.lua | 18 ++++ lua_probject/base_project/Game/Protocol.lua | 5 +- .../Game/View/Family/FamilyChooseTimeView.lua | 0 .../Game/View/Family/FamilyNumberRecord.lua | 82 +++++++++++++++--- .../ART/base/Family/ui/Family_fui.bytes | Bin 55265 -> 58204 bytes 5 files changed, 90 insertions(+), 15 deletions(-) create mode 100644 lua_probject/base_project/Game/View/Family/FamilyChooseTimeView.lua diff --git a/lua_probject/base_project/Game/Controller/NewGroupController.lua b/lua_probject/base_project/Game/Controller/NewGroupController.lua index 6a2f4804..8c3f05f3 100644 --- a/lua_probject/base_project/Game/Controller/NewGroupController.lua +++ b/lua_probject/base_project/Game/Controller/NewGroupController.lua @@ -1482,3 +1482,21 @@ function M:FG_UpdatePlay(group_id, game_id, config_data, name, hpData, hpOnOff, callback(res) end) end + +---comments +---@param group_id number 亲友圈id +---@param playerId number 如果是亲友圈设置为0 否则为玩家的 +---@param mj_score number 麻将限制分 +---@param pk_score number 扑克限制分 +---@param callback function 回调函数 +function M:FG_SetJoinScore(group_id, playerId, mj_score, pk_score, callback) + local _client = ControllerManager.GroupClient + local _data = {} + _data.id = group_id + _data.playerId = playerId + _data.mj_score = mj_score + _data.pk_score = pk_score + _client:send(Protocol.WEB_FG_SET_JOIN_SCORE, _data, function(res) + callback(res) + end) +end diff --git a/lua_probject/base_project/Game/Protocol.lua b/lua_probject/base_project/Game/Protocol.lua index 1c416cf1..e53a7600 100644 --- a/lua_probject/base_project/Game/Protocol.lua +++ b/lua_probject/base_project/Game/Protocol.lua @@ -258,6 +258,9 @@ Protocol = { GET_BANK_HP = "group/get_bank_hp", --获取银行信息 TAKE_BANK_HP = "group/take_bank_hp", SAVE_BANK_HP = "group/save_bake_hp", + + -- 亲友圈限制分 + WEB_FG_SET_JOIN_SCORE = "group/update_join_score", -------------- group-log--------------------- -- 获取奖励日志 WEB_FG_GET_REWARDS_LOG = "group/log/get_reward_log", @@ -449,5 +452,5 @@ Protocol = { GAME_EVT_CANCEL_READY_ENTRUST = "22011", --关闭托管倒计时 - GAME_AUTO_CARD = "1303", --开启游戏托管 + GAME_AUTO_CARD = "1303", --开启游戏托管 } diff --git a/lua_probject/base_project/Game/View/Family/FamilyChooseTimeView.lua b/lua_probject/base_project/Game/View/Family/FamilyChooseTimeView.lua new file mode 100644 index 00000000..e69de29b diff --git a/lua_probject/base_project/Game/View/Family/FamilyNumberRecord.lua b/lua_probject/base_project/Game/View/Family/FamilyNumberRecord.lua index 203253c6..9ca0c8e0 100644 --- a/lua_probject/base_project/Game/View/Family/FamilyNumberRecord.lua +++ b/lua_probject/base_project/Game/View/Family/FamilyNumberRecord.lua @@ -1,5 +1,8 @@ +local FamilyChooseTimeView = import(".FamilyChooseTimeView") + local FamilyNumberRecord = { - military = { size = 0, list = {} } + military = { size = 0, list = {} }, + rankNumber = {}, } local M = FamilyNumberRecord @@ -19,15 +22,24 @@ function FamilyNumberRecord.New(root) -- end self.familyType.selectedIndex = 5 + local group_id = self._group.id + local MJScore = 0 + local PKScore = 0 local fgCtr = ControllerManager.GetController(NewGroupController) local comp_gameTypeList = self._view:GetChild('comp_gameTypeList'):GetChild('n0') local input_IDSerach = self._view:GetChild('input_numberID') - local ctr_numberRecordRank = self._view:GetController('numberRecordRank') local text_recordGameType = self._view:GetChild('text_recordGameType') local text_recordSortType = self._view:GetChild('text_recordSortType') local text_allRound = self._view:GetChild('text_allRound') local text_winNum = self._view:GetChild('text_winNum') local text_useDiamond = self._view:GetChild('text_useDiamond') + local btn_chooseTimeBegin = self._view:GetChild('btn_chooseTimeBegin') + local btn_chooseTimeEnd = self._view:GetChild('btn_chooseTimeEnd') + local text_score_poker = self._view:GetChild('text_score_poker') + local text_score_majiang = self._view:GetChild('text_score_majiang') + local ctr_numberRecordRank = self._view:GetController('numberRecordRank') + local ctr_chooseTime = self._view:GetController('showChooseTime') + self._viewList_numberRankRead = self._view:GetChild('comp_numberRecordByGameTypelooked'):GetChild('n3') @@ -39,20 +51,30 @@ function FamilyNumberRecord.New(root) self.ctr_numberRecord = self._view:GetController('numberRecord') - self._text_groupTitle = string.format("%s(%s)", self._group.name, self._group.id) + self._text_groupTitle = string.format("%s(%s)", self._group.name, group_id) + btn_chooseTimeBegin.text = os.date('%Y-%m-%d', os.time()) + btn_chooseTimeEnd.text = os.date('%Y-%m-%d', os.time()) + text_score_majiang.text = MJScore + text_score_poker.text = PKScore self._viewText_titleRecord.text = string.format("%s 成员记录", self._text_groupTitle) self._view:GetChild('text_residueDiamond').text = self._group.diamo self._view:GetChild('text_timeRecord').text = os.date('%Y-%m-%d %H:%M', os.time()) - self:NumverRecordRenderer(self._group.id) - self:NumverRankRenderer(self._group.id) + self:NumverRecordRenderer(group_id) + self:NumverRankRenderer(group_id) self:GameTypeListRenderer(comp_gameTypeList) self:NumberRecordDetailRender() + btn_chooseTimeBegin.onClick:Set(function() + ctr_chooseTime.selectedIndex = 1 + end) + btn_chooseTimeEnd.onClick:Set(function() + ctr_chooseTime.selectedIndex = 1 + end) comp_gameTypeList.onClickItem:Set(function(context) input_IDSerach.text = "" - self:OnClickSortType(self._group.id, context.data.data.id) + self:OnClickSortType(group_id, context.data.data.id) ctr_numberRecordRank.selectedIndex = 0 text_recordGameType.text = context.data.title end) @@ -94,24 +116,46 @@ function FamilyNumberRecord.New(root) end end) self._view:GetChild('btn_changeMJScore').onClick:Set(function() - ViewUtil.ShowOneChooose("该功能还未开放") + ViewUtil.ShowOneInput("修改麻将进入限制分", function(text) + print("lingmeng修改扑克进入限制分", text) + fgCtr:FG_SetJoinScore(group_id, 0, tonumber(text), MJScore, function(res) + if res.ReturnCode ~= 0 then + ViewUtil.ShowOneChooose("修改限制分失败" .. res.ReturnCode) + else + MJScore = tonumber(text) + text_score_majiang.text = MJScore + end + end) + end) end) self._view:GetChild('btn_changePKScore').onClick:Set(function() - ViewUtil.ShowOneChooose("该功能还未开放") + ViewUtil.ShowOneInput("修改扑克进入限制分", function(text) + print("lingmeng修改扑克进入限制分", text) + fgCtr:FG_SetJoinScore(group_id, 0, MJScore, tonumber(text), function(res) + if res.ReturnCode ~= 0 then + ViewUtil.ShowOneChooose("修改限制分失败" .. res.ReturnCode) + else + PKScore = tonumber(text) + text_score_poker.text = PKScore + end + end) + end) end) self._view:GetChild('btn_allChoose').onClick:Set(function() self._flag_allChoose = self.records[self.gameTypeNum][self.readStatusNum].childNum self._viewlist_numberRecordDetail:RefreshVirtualList() end) self._view:GetChild('btn_allChooseRead').onClick:Set(function() - fgCtr:FG_SetGroupRecordReadStatus(self._group.id, GetPlatform(), self.military.list, 2 - self.readStatusNum, + local newReadType = 3 - self.readStatusNum + fgCtr:FG_SetGroupRecordReadStatus(group_id, GetPlatform(), self.military.list, newReadType - 1, function(res) pt(res) if res.ReturnCode ~= 0 then - ViewUtil.ShowOneChooose("获取排行榜失败" .. res.ReturnCode) + ViewUtil.ShowOneChooose("修改战绩阅读状态失败" .. res.ReturnCode) else - + self.ctr_numberRecord.selectedIndex = 1 + self:OnClickNumberRank(group_id, self.rankNumber.uid, self.rankNumber.round) end end) end) @@ -122,15 +166,23 @@ function FamilyNumberRecord.New(root) self._view:GetChild('comp_sortTypeList'):GetChild('n0').onClickItem:Set(function(context) input_IDSerach.text = "" local sortType = tonumber(context.data.text) - self:OnClickSortType(self._group.id, 0, sortType) + self:OnClickSortType(group_id, 0, sortType) ctr_numberRecordRank.selectedIndex = 0 text_recordSortType.text = sortType == 1 and "正数榜" or "负数榜" end) - self:OnClickSortType(self._group.id) + self:OnClickSortType(group_id) - fgCtr:FG_GetConsumeStat(self._group.id, os.time() - 3600 * 1200, os.time(), function(res) + fgCtr:FG_GetConsumeStat(group_id, os.time() - 3600 * 1200, os.time(), function(res) pt(res) + if res.ReturnCode ~= 0 then + ViewUtil.ShowOneChooose("获取总信息失败" .. res.ReturnCode) + else + MJScore = tonumber(res.Data.mj_score) + PKScore = tonumber(res.Data.pk_score) + text_score_majiang.text = MJScore + text_score_poker.text = PKScore + end end) return self end @@ -262,6 +314,8 @@ function M:NumverRankRenderer(groupId) self._view:GetChild('text_numberRecordName').text = info.nick self._view:GetChild('text_numberRecordID').text = info.uid ImageLoad.Load(info.portrait, self._view:GetChild('btn_numberRecordHead')._iconObject) + self.rankNumber.uid = info.uid + self.rankNumber.round = info.round end) end end diff --git a/wb_unity_pro/Assets/ART/base/Family/ui/Family_fui.bytes b/wb_unity_pro/Assets/ART/base/Family/ui/Family_fui.bytes index 25f8ac761050bf4299ba90185dd284b7032aa64b..0d198ee1be9a3c889edb456f86fc9493e4edc71f 100644 GIT binary patch delta 8636 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 delta 7400 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