From 809fa8e608c28e3c69e5566471d05575aee24b3e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 19 May 2023 15:30:25 +0800 Subject: [PATCH] 1 --- server/gameserver/room.h | 1 + server/gameserver/sandtable.cc | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/server/gameserver/room.h b/server/gameserver/room.h index acebcabb..553667a4 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -242,6 +242,7 @@ public: bool SupportSandTable(); std::shared_ptr GetSandTable() { return sand_table_; } bool IsSandTableRoom(); + void LockRoom() { lock_room_ = true; } private: void ShuaAndroid(); diff --git a/server/gameserver/sandtable.cc b/server/gameserver/sandtable.cc index b2a6d73f..f006f6ad 100644 --- a/server/gameserver/sandtable.cc +++ b/server/gameserver/sandtable.cc @@ -1,8 +1,18 @@ #include "precompile.h" #include "sandtable.h" +#include "room.h" SandTable::SandTable(Room* room): room_(room) { - + int lock_time = std::max(0, (int)room->GetGasInactiveTime() - 10); + room->xtimer.SetTimeoutEx + (SERVER_FRAME_RATE * lock_time, + [room = room] (int event, const a8::Args* args) + { + if (a8::TIMER_EXEC_EVENT == event) { + room->LockRoom(); + } + }, + &room->xtimer_attacher_); }