Jump to content

darkstalker

Members
  • Posts

    717
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by darkstalker

  1. assert's are supposed to do nothing when you compile in release mode
  2. there are several boss encounters that involve the boss mind controlling players (this case aura 177), so having a "player bot" mode would be useful for blizzlike purposes.
  3. you can use the default LFG channel, its auto-join client side, you just have to set in your config: Channel.RestrictedLfg = 0
  4. been playing with the sql dbc a bit and works like a charm. is there any others spells that must be added this way?
  5. yea lvlpenalty should be there in both cases, didn't notice that before. And maybe we should take coeff from DBC for default case instead of calculating it, but thats really another subject.
  6. happens everytime you change map while in flying mount, but not related to this. about raids, even with this patch you still see other raid members offline when not in same map
  7. its copied from existing code, all i did just was correctly implement the spellmod
  8. first need some way to attach scripts to players, then create AI to control them it could be useful for other purposes too, like this
  9. read Player.h first and see where you can get the data you want, don't just bindly write code and expect it to compile by luck
  10. a simpler hack patch: diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index aebaf8a..d18b776 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -5930,7 +5930,7 @@ void Aura::HandleShapeshiftBoosts(bool apply) { case FORM_CAT: spellId1 = 3025; - HotWSpellId = 24900; + HotWSpellId = 30902; // spell 24900 removed in 3.3.3 MasterShaperSpellId = 48420; break; case FORM_TREE: @@ -5947,13 +5947,13 @@ void Aura::HandleShapeshiftBoosts(bool apply) case FORM_BEAR: spellId1 = 1178; spellId2 = 21178; - HotWSpellId = 24899; + HotWSpellId = 19255; // spell 24899 removed in 3.3.3 MasterShaperSpellId = 48418; break; case FORM_DIREBEAR: spellId1 = 9635; spellId2 = 21178; - HotWSpellId = 24899; + HotWSpellId = 19255; // spell 24899 removed in 3.3.3 MasterShaperSpellId = 48418; break; case FORM_BATTLESTANCE: @@ -6085,9 +6085,7 @@ void Aura::HandleShapeshiftBoosts(bool apply) { if ((*i)->GetSpellProto()->SpellIconID == 240 && (*i)->GetModifier()->m_miscvalue == 3) { - int32 HotWMod = (*i)->GetModifier()->m_amount; - if(GetModifier()->m_miscvalue == FORM_CAT) - HotWMod /= 2; + int32 HotWMod = (*i)->GetSpellProto()->CalculateSimpleValue(EFFECT_INDEX_1); m_target->CastCustomSpell(m_target, HotWSpellId, &HotWMod, NULL, NULL, true, NULL, this); break; @@ -6102,6 +6100,8 @@ void Aura::HandleShapeshiftBoosts(bool apply) m_target->RemoveAurasDueToSpell(spellId1); if(spellId2) m_target->RemoveAurasDueToSpell(spellId2); + if(HotWSpellId) + m_target->RemoveAurasDueToSpell(HotWSpellId); if(MasterShaperSpellId) m_target->RemoveAurasDueToSpell(MasterShaperSpellId); only problem is that hotw bonus doesn't get applied on login, don't know why
  11. i always tought that retail server has lots of hacks too, because "everything works" there doesn't mean the code is clean and perfect, we can't see that from an user point of view. ontopic: just noticed that current implementation is wrong anyway, uses basepoints of effect0 (intellect buff) instead of effect1 (bear/cat buff)
  12. use this -- Lightning Overload: add 1 sec cooldown to avoid multiple proc UPDATE spell_proc_event SET Cooldown = 1 WHERE entry IN (30675, 30678, 30679); problem is that each bounce target can cause a overload proc itself, addind a cooldown fixes it (hacky but works)
  13. you need 64bit if you plan to use 4gb or more memory
  14. its hacky, never will be accepted a more correct way would be doing the effect in Player::UpdateAttackPowerAndDamage, since its only a dummy aura now.
  15. in this aspect mangos > retail ;p
  16. adding PPM/cooldown would be good too, since currently its a bit op
  17. thats common abuse of the "? : " operator, you don't need to assign "holy = holy" when value doesn't change.
  18. if i remember cooldown management is handled at second resolution, so it should be changed to millisecond resolution and it will be able to handle gcd's. But there is another problem, if client has lag probably there will be a mismatch of client/server gcd, causing legit spells to fail.
  19. * What bug does the patch fix? What features does the patch add? Implements spell aura 251, used by spells: * For which repository revision was the patch created? 9851 * Is there a thread in the bug report section or at lighthouse? don't know * Who has been writing this patch? Please include either forum user names or email addresses. darkstalker diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index aebaf8a..48fb53d 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -301,7 +301,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &Aura::HandleNoImmediateEffect, //248 SPELL_AURA_MOD_COMBAT_RESULT_CHANCE implemented in Unit::RollMeleeOutcomeAgainst &Aura::HandleAuraConvertRune, //249 SPELL_AURA_CONVERT_RUNE &Aura::HandleAuraModIncreaseHealth, //250 SPELL_AURA_MOD_INCREASE_HEALTH_2 - &Aura::HandleNULL, //251 SPELL_AURA_MOD_ENEMY_DODGE + &Aura::HandleNoImmediateEffect, //251 SPELL_AURA_MOD_ENEMY_DODGE implemented in Unit::RollMeleeOutcomeAgainst and Unit::MeleeSpellHitResult &Aura::HandleModCombatSpeedPct, //252 SPELL_AURA_SLOW_ALL &Aura::HandleNoImmediateEffect, //253 SPELL_AURA_MOD_BLOCK_CRIT_CHANCE implemented in Unit::CalculateMeleeDamage &Aura::HandleNULL, //254 SPELL_AURA_MOD_DISARM_SHIELD disarm Shield diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 98a55c2..cef67f4 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -2475,6 +2475,9 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack // Modify dodge chance by attacker SPELL_AURA_MOD_COMBAT_RESULT_CHANCE dodge_chance+= GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_COMBAT_RESULT_CHANCE, VICTIMSTATE_DODGE); + // Modify dodge chance by attacker SPELL_AURA_MOD_ENEMY_DODGE + dodge_chance += GetTotalAuraModifier(SPELL_AURA_MOD_ENEMY_DODGE)*100; + tmp = dodge_chance; if ( (tmp > 0) // check if unit _can_ dodge && ((tmp -= skillBonus) > 0) @@ -2840,6 +2843,8 @@ SpellMissInfo Unit::MeleeSpellHitResult(Unit *pVictim, SpellEntry const *spell) int32 dodgeChance = int32(pVictim->GetUnitDodgeChance()*100.0f) - skillDiff * 4; // Reduce enemy dodge chance by SPELL_AURA_MOD_COMBAT_RESULT_CHANCE dodgeChance+= GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_COMBAT_RESULT_CHANCE, VICTIMSTATE_DODGE)*100; + // Modify dodge chance by attacker SPELL_AURA_MOD_ENEMY_DODGE + dodgeChance += GetTotalAuraModifier(SPELL_AURA_MOD_ENEMY_DODGE)*100; // Reduce dodge chance by attacker expertise rating if (GetTypeId() == TYPEID_PLAYER) dodgeChance-=int32(((Player*)this)->GetExpertiseDodgeOrParryReduction(attType) * 100.0f);
  20. won't be included in master because its hacky (hardcoded values)
  21. Its a global message displayed when you do 10, 20, 30, 50, etc. honorable kills in a row without dying, and assigns "pvp points" for them that you can trade for rewards
  22. adjust server rates?
  23. probably all needed there is just add the originalCaster, source casting object isn't really important
  24. there was a more generic patch elsewhere that handled all stacking stuff, but its pretty outdated
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use