game2006/server/gameserver/sandtable.cc
aozhiwei 1f1b1e596a 1
2023-05-31 14:31:12 +08:00

54 lines
1.6 KiB
C++

#include "precompile.h"
#include "sandtable.h"
#include "room.h"
#include "mt/Param.h"
SandTable::SandTable(Room* room): room_(room)
{
if (room_->IsNewBieRoom()) {
return;
}
room->OpenRoomSwitch(kRoomSwitchDisableUseSkill);
room->OpenRoomSwitch(kRoomSwitchDisableUseItem);
room->OpenRoomSwitch(kRoomSwitchDisableShot);
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();
#if 0
room->CombineTeam();
room->FillTeam();
#endif
}
},
&room->xtimer_attacher_);
}
void SandTable::OnGameStart()
{
if (room_->IsNewBieRoom()) {
return;
}
room_->OpenRoomSwitch(kRoomSwitchDisableMove);
room_->OpenRoomSwitch(kRoomSwitchDisableUseSkill);
room_->OpenRoomSwitch(kRoomSwitchDisableUseItem);
room_->OpenRoomSwitch(kRoomSwitchDisableShot);
room_->xtimer.SetTimeoutEx
(SERVER_FRAME_RATE * mt::Param::s().wait_cloud_time,
[room = room_] (int event, const a8::Args* args)
{
if (a8::TIMER_EXEC_EVENT == event) {
room->CloseRoomSwitch(kRoomSwitchDisableMove);
room->CloseRoomSwitch(kRoomSwitchDisableUseSkill);
room->CloseRoomSwitch(kRoomSwitchDisableUseItem);
room->CloseRoomSwitch(kRoomSwitchDisableShot);
}
},
&room_->xtimer_attacher_);
}