diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 9e723cb3..495b0523 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1523,7 +1523,7 @@ void Player::UpdateAiming() if (second_weapon.meta) { p_weapon = &second_weapon; } - if (!p_weapon->meta->_power_charge.empty()) { + if (!p_weapon->meta->_power_charge.empty() && !GetCurrWeapon()->meta->IsMultistageGun()) { if (power_idx + 1 > p_weapon->meta->_power_charge.size()) { A8_ABORT(); } else if (power_idx + 1 == p_weapon->meta->_power_charge.size()) { @@ -1541,7 +1541,9 @@ void Player::UpdateAiming() } } else { aiming_frameno = 0; - power_idx = -1; + if (!GetCurrWeapon()->meta->IsMultistageGun()) { + power_idx = -1; + } if (!aiming_buffs.empty()) { ClearAimingBuffs(); } diff --git a/server/gameserver/shot.cc b/server/gameserver/shot.cc index e1087405..66ea9e67 100644 --- a/server/gameserver/shot.cc +++ b/server/gameserver/shot.cc @@ -540,7 +540,9 @@ void InternalShot(Creature* c, if (c->aiming) { c->aiming = false; c->aiming_frameno = 0; - c->power_idx = -1; + if (!c->GetCurrWeapon()->meta->IsMultistageGun()) { + c->power_idx = -1; + } c->ClearAimingBuffs(); } if (c->skill_hold_skill_id != 0) {