diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index d21ce4b..590aae3 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -1305,20 +1305,22 @@ void Room::InitAirDrop() { std::list& air_drops = MetaMgr::Instance()->GetAirDrops(); for (auto& air_drop : air_drops) { - xtimer.AddDeadLineTimerAndAttach(SERVER_FRAME_RATE * air_drop.i->time(), - a8::XParams() - .SetSender(this) - .SetParam1(air_drop.i->appear_time()) - .SetParam2(air_drop.i->drop_id()) - .SetParam3(air_drop.i->id()), - [] (const a8::XParams& param) - { - Room* room = (Room*)param.sender.GetUserData(); - if (!room->IsGameOver()) { - room->AirDrop(param.param1, param.param2); - } - }, - &xtimer_attacher_.timer_list_); + if (air_drop.i->id() >= 1 && air_drop.i->id() <= 6) { + xtimer.AddDeadLineTimerAndAttach(SERVER_FRAME_RATE * air_drop.i->time(), + a8::XParams() + .SetSender(this) + .SetParam1(air_drop.i->appear_time()) + .SetParam2(air_drop.i->drop_id()) + .SetParam3(air_drop.i->id()), + [] (const a8::XParams& param) + { + Room* room = (Room*)param.sender.GetUserData(); + if (!room->IsGameOver()) { + room->AirDrop(param.param1, param.param2); + } + }, + &xtimer_attacher_.timer_list_); + } } }