diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index c56d5eea..10a222e0 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -4683,7 +4683,7 @@ void Human::InternalBeKill(int killer_id, const std::string& killer_name, int we downed = false; SetHP(0.0f); KillMgr::Instance()->OnHumanDead(this, &info); - if (GetBattleContext()->GetReviveCoin() > 0) { + if (GetBattleContext()->GetReviveCoin() > 0 && real_killer_id != GetUniId()) { room->frame_event.AddDead(GetWeakPtrRef(), 1000 * MetaMgr::Instance()->revive_time); dead_timer = room->xtimer.AddDeadLineTimerAndAttach (MetaMgr::Instance()->revive_time * SERVER_FRAME_RATE, diff --git a/server/gameserver/incubator.cc b/server/gameserver/incubator.cc index 5556a3f2..ead84fff 100644 --- a/server/gameserver/incubator.cc +++ b/server/gameserver/incubator.cc @@ -352,6 +352,7 @@ void Incubator::SpawnWaveMon(int wave) #endif if (wave + 1 == room->pve_mode_meta->waves.size()) { hero->is_pve_boss = true; + room->pve_data.boss_state = 1; #ifdef DEBGU a8::XPrintf("pve_boss appear\n", {}); #endif diff --git a/server/gameserver/pvedata.cc b/server/gameserver/pvedata.cc index 385838bf..c2cd6961 100644 --- a/server/gameserver/pvedata.cc +++ b/server/gameserver/pvedata.cc @@ -66,6 +66,7 @@ void PveData::OnBeKill(Hero* hero) } ); pve_kill_boss = true; + boss_state = 2; #ifdef DEBUG a8::XPrintf("onKill pve_boss\n", {}); #endif