This commit is contained in:
aozhiwei 2020-07-31 22:42:19 +08:00
parent b595407219
commit 4f6f32e729
2 changed files with 17 additions and 1 deletions

View File

@ -565,7 +565,9 @@ bool Human::IsCollisionInMapService()
DropItems(obstacle);
}
obstacle->BroadcastFullState(room);
if (obstacle->IsTerminatorAirDropBox(room) && GetRace() == kHumanRace) {
if (obstacle->IsTerminatorAirDropBox(room) &&
GetRace() == kHumanRace &&
!HasBuffEffect(kBET_Terminator)) {
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(TERMINATOR_BUFF_ID);
if (buff_meta) {
AddBuff(this, buff_meta, 1);

View File

@ -575,10 +575,24 @@ void Room::OnHumanDie(Human* hum)
if (hum->GetRace() == kHumanRace) {
RemoveRescue(hum);
hum->DeadDrop();
std::vector<Human*> alive_humans;
alive_humans.reserve(GetRoomMaxPlayerNum());
for (auto& pair : human_hash_) {
if (pair.second != hum) {
pair.second->WinExp(hum, hum->meta->i->dead_exp());
}
if (!pair.second->dead && pair.second->GetRace() == kHumanRace) {
alive_humans.push_back(pair.second);
}
}
if (alive_humans.size() == 1) {
Human* terminator = alive_humans[0];
if (!terminator->HasBuffEffect(kBET_Terminator)) {
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(TERMINATOR_BUFF_ID);
if (buff_meta) {
terminator->AddBuff(terminator, buff_meta, 1);
}
}
}
{
Human* killer = GetPlayerByUniId(hum->stats.killer_id);