mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-14 19:51:29 +00:00
[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:
parent
0a34809bb3
commit
a84536cd05
@ -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))
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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()))) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user