Merge branch 'master' into Playerbot

This commit is contained in:
Yunfan Li
2025-03-14 21:37:02 +08:00
45 changed files with 2300 additions and 269 deletions

View File

@@ -2476,6 +2476,9 @@ void Player::GiveLevel(uint8 level)
if (level == oldLevel)
return;
if (!sScriptMgr->OnPlayerCanGiveLevel(this, level))
return;
if (Guild* guild = GetGuild())
guild->UpdateMemberData(this, GUILD_MEMBER_DATA_LEVEL, level);

View File

@@ -3928,7 +3928,7 @@ void Unit::_UpdateAutoRepeatSpell()
static uint32 const HUNTER_AUTOSHOOT = 75;
// Check "realtime" interrupts
if ((IsPlayer() && ToPlayer()->isMoving()) || IsNonMeleeSpellCast(false, false, true, spellProto->Id == HUNTER_AUTOSHOOT))
if ((IsPlayer() && ToPlayer()->isMoving() && spellProto->Id != HUNTER_AUTOSHOOT) || IsNonMeleeSpellCast(false, false, true, spellProto->Id == HUNTER_AUTOSHOOT))
{
// cancel wand shoot
if (spellProto->Id != HUNTER_AUTOSHOOT)
@@ -3937,7 +3937,8 @@ void Unit::_UpdateAutoRepeatSpell()
return;
}
if (m_AutoRepeatFirstCast && getAttackTimer(RANGED_ATTACK) < 500)
// Apply delay (Hunter's autoshoot not affected)
if (m_AutoRepeatFirstCast && getAttackTimer(RANGED_ATTACK) < 500 && spellProto->Id != HUNTER_AUTOSHOOT)
{
setAttackTimer(RANGED_ATTACK, 500);
}
@@ -8412,7 +8413,15 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
if (!procSpell || !IsPlayer() || !victim)
return false;
uint32 spell = procSpell->SpellFamilyFlags[0] & 0x2 ? 45297 : 45284;
uint32 spell = 45284;
// chain lightning only procs 1/3 of the time
if (procSpell->SpellFamilyFlags[0] & 0x2)
{
if (!roll_chance_i(33))
return false;
spell = 45297;
}
if (procEx & PROC_EX_CRITICAL_HIT)
damage /= 2;