From ee2e50f8d314170169a0c82eb38e7e591891b7f9 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 8 Apr 2021 17:39:20 +0800 Subject: [PATCH] 1 --- server/gameserver/bullet.cc | 2 -- server/gameserver/creature.cc | 10 +++++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index e60bd39..5f0312c 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -190,9 +190,7 @@ void Bullet::ProcBomb() case IS_FRAG: { //手雷 - #if 0 ProcFragBomb(delay_time); - #endif } break; case IS_SMOKE: diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 0676928..19b6f21 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -868,7 +868,7 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff) .SetSender(this) .SetParam1(caster_state) .SetParam2(buff->meta) - .SetParam3(((Creature*)caster)->CurrentSkill()->meta), + .SetParam3(caster->CurrentSkill() ? caster->CurrentSkill()->meta : nullptr), [] (const a8::XParams& param) { Creature* receiver = (Creature*)param.sender.GetUserData(); @@ -878,8 +878,12 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff) MetaData::Skill* skill = (MetaData::Skill*)param.param3.GetUserData(); MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); if (buff_meta && - caster_state->caster.Get()->CurrentSkill() && - skill == caster_state->caster.Get()->CurrentSkill()->meta) { + (!skill || + ( + caster_state->caster.Get()->CurrentSkill() && + skill == caster_state->caster.Get()->CurrentSkill()->meta) + ) + ) { SkillCasterState old_caster_state; caster_state->caster.Get()->FillSkillCasterState(&old_caster_state); caster_state->caster.Get()->RecoverSkillCasterState(caster_state);