diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index 143a0c41..cda14d10 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -1021,6 +1021,12 @@ void Buff::ProcMachineGun() break; case MAGIC_FG: { + bool shot_ok = false; + a8::Vec2 target_dir; + float fly_distance = 0; + int trace_target_uniid = 0; + owner->Shot(owner->context_dir, shot_ok, fly_distance, trace_target_uniid); + owner->room->xtimer.ModifyTimer (remover_timer, skill_meta->number_meta->float_time * 1000 / FRAME_RATE_MS); diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index e285b570..5bf19b2b 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -906,6 +906,9 @@ void Creature::ProcSkillPhase(MetaData::SkillPhase* phase) if (std::abs(skill_dir_.x) > FLT_EPSILON || std::abs(skill_dir_.y) > FLT_EPSILON) { float target_distance = 5; + if (CurrentSkill()->meta->GetMagicId() == MAGIC_FG) { + target_distance = CurrentSkill()->meta->number_meta->float_range; + } if (weapon_meta->i->equip_type() == EQUIP_TYPE_THROW && weapon_meta->i->equip_subtype() == THROW_EQUIP_TYPE_ADD_BUFF) { target_distance = skill_distance_;