diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index d5123c5..b71cc16 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -763,6 +763,25 @@ void Room::UpdateGas() gas_data.gas_start_frameno = frame_no; ShuaPlane(); RoomMgr::Instance()->RemoveFromInactiveRoomHash(room_uuid); + xtimer.AddDeadLineTimerAndAttach(SERVER_FRAME_RATE * 3, + a8::XParams() + .SetSender(this), + [] (const a8::XParams& param) + { + Room* room = (Room*)param.sender.GetUserData(); + room->TouchHumanList( + a8::XParams() + .SetSender(room), + [] (Human* hum, a8::XParams& param) -> bool + { + if (a8::HasBitFlag(hum->status, HS_Fly)) { + hum->DoJump(); + return false; + } + return true; + }); + }, + &xtimer_attacher.timer_list_); } } break;