diff --git a/server/gameserver/incubator.cc b/server/gameserver/incubator.cc index 75245349..589a78e4 100644 --- a/server/gameserver/incubator.cc +++ b/server/gameserver/incubator.cc @@ -87,6 +87,9 @@ void Incubator::UnInit() void Incubator::AllocAndroid(Human* target, int num, std::vector* androids) { + if (room->IsNewBieBattle() && target->IsAndroid()) { + return; + } if (!room->xtimer.IsRunning()) { A8_ABORT(); } @@ -100,11 +103,13 @@ void Incubator::AllocAndroid(Human* target, int num, std::vector* androi if (hold_humans_.size() < 1) { return; } - if (hold_humans_.size() <= CHIJI_HIDE_HUMANS) { - if (room->GetGasData().new_area_meta->GetSmallRingCount() < 4) { - ShowHand(); + if (!room->IsNewBieBattle()) { + if (hold_humans_.size() <= CHIJI_HIDE_HUMANS) { + if (room->GetGasData().new_area_meta->GetSmallRingCount() < 4) { + ShowHand(); + } + return; } - return; } #ifdef MYDEBUG a8::XPrintf("SmallRingCount:%d \n", {room->GetGasData().new_area_meta->GetSmallRingCount()}); @@ -260,10 +265,14 @@ void Incubator::AutoAllocAndroid() case GasMoving: { if (!hold_humans_.empty() && hold_humans_.size() > 0) { + int rnd_space = 70; + if (room->IsNewBieBattle()) { + rnd_space = 0; + } Human* hum = hold_humans_[0]; if (room->GetGasData().GetGasMode() == GasWaiting && hold_humans_.size() > 1 && - ((rand() % 100) > 70)) { + ((rand() % 100) > rnd_space)) { Human* killer = nullptr; if (hold_humans_.size() == 2) { killer = hold_humans_[1]; @@ -285,7 +294,9 @@ void Incubator::AutoAllocAndroid() return; } hold_humans_.erase(hold_humans_.begin()); - room->xtimer.ModifyTime(alloc_timer_, SERVER_FRAME_RATE * (30 + rand() % 5)); + if (!room->IsNewBieBattle()) { + room->xtimer.ModifyTime(alloc_timer_, SERVER_FRAME_RATE * (30 + rand() % 5)); + } } } break;