diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index cda14d10..0a8c1acd 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -451,29 +451,29 @@ void Buff::ProcSprint() (*hited_objects)[enemy->GetUniId()] = buff->owner->room->GetFrameNo(); for (int buff_id : buff->meta->param3_int_list) { enemy->TryAddBuff(buff->owner, buff_id); - if (buff->skill_meta) { - switch (buff->skill_meta->GetMagicId()) { - case MAGIC_YMCZ: - { - float dmg = SkillHelper::GetYmczDmg(buff->owner, - enemy, - buff->skill_meta); - if (dmg > 0.0001f) { - enemy->DecHP( - dmg, - buff->owner->GetUniId(), - //buff->owner->name, - "", - 0 - ); - } + } + if (buff->skill_meta) { + switch (buff->skill_meta->GetMagicId()) { + case MAGIC_YMCZ: + { + float dmg = SkillHelper::GetYmczDmg(buff->owner, + enemy, + buff->skill_meta); + if (dmg > 0.0001f) { + enemy->DecHP( + dmg, + buff->owner->GetUniId(), + //buff->owner->name, + "", + 0 + ); } - break; - default: - { - } - break; } + break; + default: + { + } + break; } } } diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index b77adccc..e5604864 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -88,6 +88,7 @@ void Bullet::OnHit(std::set& objects) !(target->IsCreature(room) && ((Creature*)target)->IsCar())) { ProcFlyHook(target); + target->OnBulletHit(this); } break; } diff --git a/server/gameserver/skillhelper.cc b/server/gameserver/skillhelper.cc index 0b5e69be..23a14b88 100644 --- a/server/gameserver/skillhelper.cc +++ b/server/gameserver/skillhelper.cc @@ -315,7 +315,7 @@ float SkillHelper::GetSjydhxBackTime(const MetaData::Skill* skill_meta) int SkillHelper::GetYmczBuffTime(const MetaData::Skill* skill_meta) { - return 0; + return skill_meta && skill_meta->number_meta ? 3000 : 0; } int SkillHelper::GetYmczReserveDistance(const MetaData::Skill* skill_meta)