From 0626f2441fb507b40110529b3f9ba4fb3f32ffc5 Mon Sep 17 00:00:00 2001 From: notify Date: Sun, 2 Jul 2023 22:39:01 +0800 Subject: [PATCH] fix observe --- Fk/Pages/Room.qml | 1 + lua/server/request.lua | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Fk/Pages/Room.qml b/Fk/Pages/Room.qml index 10fd3237..59436e7f 100644 --- a/Fk/Pages/Room.qml +++ b/Fk/Pages/Room.qml @@ -99,6 +99,7 @@ Item { Button { id: surrenderButton + enabled: !config.observing text: Backend.translate("Surrender") onClicked: { if (isStarted && !getPhoto(Self.id).dead) { diff --git a/lua/server/request.lua b/lua/server/request.lua index 954ee131..ef99949d 100644 --- a/lua/server/request.lua +++ b/lua/server/request.lua @@ -13,7 +13,7 @@ local function tellRoomToObserver(self, player) player:doNotify("StartGame", "") -- send player data - for _, p in ipairs(self:getOtherPlayers(observee, true, true)) do + for _, p in ipairs(self:getOtherPlayers(observee, false, true)) do player:doNotify("AddPlayer", json.encode{ p.id, p._splayer:getScreenName(), @@ -85,7 +85,9 @@ end request_handlers["prelight"] = function(room, id, reqlist) local p = room:getPlayerById(id) - p:prelightSkill(reqlist[3], reqlist[4] == "true") + if p then + p:prelightSkill(reqlist[3], reqlist[4] == "true") + end end request_handlers["luckcard"] = function(room, id, reqlist) @@ -136,12 +138,13 @@ request_handlers["changeself"] = function(room, id, reqlist) end request_handlers["surrender"] = function(room, id, reqlist) + local player = room:getPlayerById(id) + if not player then return end local logic = room.logic local curEvent = logic:getCurrentEvent() if curEvent then curEvent:addExitFunc( function() - local player = room:getPlayerById(id) player.surrendered = true room:broadcastProperty(player, "surrendered") room:gameOver(Fk.game_modes[room.settings.gameMode]:getWinner(player))