diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 931ec4e4..891f6790 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1007,7 +1007,16 @@ void Human::BeKill(int killer_id, const std::string& killer_name, int weapon_id) ((Creature*)killer)->GetTrigger()->Kill(this); } } - { + if (room->IsPveRoom()){ + GetTrigger()->Die(); + dead = true; + downed = false; + SetHP(0.0f); + dead_frameno = room->GetFrameNo(); + OnDie(); + KillMgr::Instance()->OnHumanDead(this, &info); + room->frame_event.AddDead(GetWeakPtrRef(), MetaMgr::Instance()->revive_time); + } else { GetTrigger()->Die(); dead = true; real_dead = true; diff --git a/server/gameserver/metamgr.h b/server/gameserver/metamgr.h index 3a91e7ca..5cb9d9bd 100644 --- a/server/gameserver/metamgr.h +++ b/server/gameserver/metamgr.h @@ -200,6 +200,8 @@ class MetaMgr : public a8::Singleton int kill_exp_monster = 0; int kill_exp_player = 0; + int revive_time = 1000 * 15; + private: MetaDataLoader* loader_ = nullptr;