[Bug Fix] Autofire attacking yourself (#1776)

* Fix being able to attack yourself with autofire if Combat:MinRangedAttackDist == 0

* requested changes

* 2
This commit is contained in:
splose
2021-11-21 10:16:20 -05:00
committed by GitHub
parent 0a34809bb3
commit a84536cd05
3 changed files with 13 additions and 0 deletions
+7
View File
@@ -3386,6 +3386,13 @@ void Client::Handle_OP_AutoFire(const EQApplicationPacket *app)
DumpPacket(app);
return;
}
if (GetTarget() == this) {
MessageString(Chat::TooFarAway, TRY_ATTACKING_SOMEONE);
auto_fire = false;
return;
}
bool *af = (bool*)app->pBuffer;
auto_fire = *af;
if(!RuleB(Character, EnableRangerAutoFire))
+4
View File
@@ -302,6 +302,10 @@ bool Client::Process() {
}
if (AutoFireEnabled()) {
if (GetTarget() == this) {
MessageString(Chat::TooFarAway, TRY_ATTACKING_SOMEONE);
auto_fire = false;
}
EQ::ItemInstance *ranged = GetInv().GetItem(EQ::invslot::slotRange);
if (ranged)
{
+2
View File
@@ -645,6 +645,8 @@ void Client::RangedAttack(Mob* other, bool CanDoubleAttack) {
//conditions to use an attack checked before we are called
if (!other)
return;
else if (other == this)
return;
//make sure the attack and ranged timers are up
//if the ranged timer is disabled, then they have no ranged weapon and shouldent be attacking anyhow
if(!CanDoubleAttack && ((attack_timer.Enabled() && !attack_timer.Check(false)) || (ranged_timer.Enabled() && !ranged_timer.Check()))) {