From e00e72d0a7cb3ab55f266ea068c4fd1c4f3b8c7c Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 18 Sep 2021 13:52:41 +0800 Subject: [PATCH] 1 --- server/gameserver/explosion.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/server/gameserver/explosion.cc b/server/gameserver/explosion.cc index b3bcd52..32381b7 100644 --- a/server/gameserver/explosion.cc +++ b/server/gameserver/explosion.cc @@ -72,6 +72,9 @@ void Explosion::ProcDamage() grid_list, [this, &objects] (Creature* c, bool& stop) { + if (c->dead) { + return; + } if (c->GetUniId() == exclude_uniid) { return; } @@ -147,13 +150,13 @@ void Explosion::InternalAttack() .SetSender(self), [] (const a8::XParams& param) { - std::shared_ptr* self = (std::shared_ptr*)param.sender.GetUserData(); + auto* self = (std::shared_ptr*)param.sender.GetUserData(); (*self)->ProcDamage(); }, &room_->xtimer_attacher_.timer_list_, [] (const a8::XParams& param) { - std::shared_ptr* self = (std::shared_ptr*)param.sender.GetUserData(); + auto* self = (std::shared_ptr*)param.sender.GetUserData(); delete self; }); } @@ -161,7 +164,8 @@ void Explosion::InternalAttack() bool Explosion::IsPreBattleExplosion() { - return create_frameno_ <= room_->GetBattleStartFrameNo() || room_->GetBattleStartFrameNo() == 0; + return create_frameno_ <= room_->GetBattleStartFrameNo() || + room_->GetBattleStartFrameNo() == 0; } void Explosion::AddForceTarget(CreatureWeakPtr force_target)