From 83bb518b112a4841c9d4516e424f70cf36300ae8 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 6 Jul 2021 11:57:24 +0000 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 6 +++--- server/gameserver/roomobstacle.cc | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index d1f8def..024eea5 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -939,7 +939,7 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff) break; case kBET_SummonHero: { - if (!dead) { + if (!dead || buff->meta->i->dead_valid() != 0) { SummonHero(buff, GetPos(), GetMoveDir()); } } @@ -956,7 +956,7 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff) break; case kBET_SummonObstacle: { - if (!dead) { + if (!dead || buff->meta->i->dead_valid() != 0) { SummonObstacle(buff, buff->meta->param1, context_pos); } } @@ -1794,7 +1794,7 @@ void Creature::SummonHero(Buff* buff, int hero_id = std::get<3>(info); int num = std::get<4>(info); MetaData::Player* hero_meta = MetaMgr::Instance()->GetPlayer(hero_id); - if (hero_meta && !dead) { + if (hero_meta) { for (int i = 0; i < 4; ++i) { a8::Vec2 born_dir = dir; a8::Vec2 born_offset(x, y); diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index d828497..7c688e3 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -201,7 +201,9 @@ void RoomObstacle::SpecExplosion() meta->i->explosion_interval(); } if (explosion_times_ >= total_explosion_times) { - room->xtimer.DeleteTimer(room->xtimer.GetRunningTimer()); + if (room->xtimer.GetRunningTimer()) { + room->xtimer.DeleteTimer(room->xtimer.GetRunningTimer()); + } Die(room); BroadcastFullState(room); }