This commit is contained in:
aozhiwei 2021-04-12 20:09:48 +08:00
parent 5c37a61681
commit 00cea231a5
2 changed files with 25 additions and 6 deletions

View File

@ -3195,7 +3195,9 @@ void Human::OnBuffRemove(const Buff& buff)
default: default:
break; break;
} }
room->frame_event.RemoveBuff(this, buff.meta->i->buff_id()); if (!buff.meta->i->only_server()) {
room->frame_event.RemoveBuff(this, buff.meta->i->buff_id());
}
} }
void Human::OnLand() void Human::OnLand()

View File

@ -1,6 +1,8 @@
#include "precompile.h" #include "precompile.h"
#include "incubator.h" #include "incubator.h"
#include "room.h"
#include "human.h"
void Incubator::Init() void Incubator::Init()
{ {
@ -14,15 +16,30 @@ void Incubator::UnInit()
void Incubator::RecycleAndroid(Human* hum) void Incubator::RecycleAndroid(Human* hum)
{ {
#if 0 Human* nearest_hum = nullptr;
room->TouchPlayerList Human* target = hum;
float distance = 10000000;
room->TouchAlivePlayers
( (
a8::XParams(), a8::XParams(),
[] (Player* hum, a8::XParams& param) [&nearest_hum, target, &distance] (Human* hum, a8::XParams& param) -> bool
{ {
float tmp_distance = hum->GetPos().ManhattanDistance(target->GetPos());
if (tmp_distance < distance) {
nearest_hum = hum;
distance = tmp_distance;
}
return true;
}); });
#endif if (distance < 450) {
hum->RemoveBuffByEffectId(kBET_BeRecycle);
return;
}
if (distance > 1450) {
hum->RemoveBuffByEffectId(kBET_BeRecycle);
AddHoldHuman(nearest_hum);
return;
}
} }
void Incubator::AddHoldHuman(Human* hum) void Incubator::AddHoldHuman(Human* hum)