Jump to content

pasdVn

Members
  • Posts

    261
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by pasdVn

  1. There is a hack that is used only for "Ambush": From 6068ba20a2d2f32f1abd18ef415ecbd650c29a9c Mon Sep 17 00:00:00 2001 From: pasdVn <[email protected]> Date: Fri, 27 Feb 2009 15:28:18 +0100 Subject: [PATCH] cleanup --- src/game/SpellEffects.cpp | 14 ++------------ 1 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 9d937a2..865e1f1 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4288,7 +4288,6 @@ void Spell::EffectWeaponDmg(uint32 i) } // some spell specific modifiers - bool customBonusDamagePercentMod = false; bool spellBonusNeedWeaponDamagePercentMod = false; // if set applied weapon damage percent mode to spell bonus float bonusDamagePercentMod = 1.0f; // applied to fixed effect damage bonus if set customBonusDamagePercentMod @@ -4331,14 +4330,8 @@ void Spell::EffectWeaponDmg(uint32 i) } case SPELLFAMILY_ROGUE: { - // Ambush - if(m_spellInfo->SpellFamilyFlags & 0x00000200LL) - { - customBonusDamagePercentMod = true; - bonusDamagePercentMod = 2.5f; // 250% - } // Mutilate (for each hand) - else if(m_spellInfo->SpellFamilyFlags & 0x600000000LL) + if(m_spellInfo->SpellFamilyFlags & 0x600000000LL) { bool found = false; // fast check @@ -4411,10 +4404,7 @@ void Spell::EffectWeaponDmg(uint32 i) weaponDamagePercentMod *= float(CalculateDamage(j,unitTarget)) / 100.0f; // applied only to prev.effects fixed damage - if(customBonusDamagePercentMod) - fixed_bonus = int32(fixed_bonus*bonusDamagePercentMod); - else - fixed_bonus = int32(fixed_bonus*weaponDamagePercentMod); + fixed_bonus = int32(fixed_bonus*weaponDamagePercentMod); break; default: break; // not weapon damage effect, just skip -- 1.6.0.2.1172.ga5ed0 This isn't needed anymore. Maybe that was only a typo in the tooltip before. As you can see here http://wow.allakhazam.com/db/spellhistory.html?wspell=8676, this was changed and fits the generic way (28*2.75 = 77, for rank 1 as example).
  2. From my point of view this is the only correct conclusion. We just have to add the bonuses depending on the SpellDmgClass, not by the school. So all melee and ranged get meleedmg bonus, and just the magical class (and class_none if you want) get SpellDamageBonus. None of the weapon spells (melee and ranged) is affected by "spellpower". Exceptions (like Seal of command) prove the rules^^ The system would be more clear then. Would just require some change in meleedamge bonus or the EffectWeaponDmg handling. As the bonuses of EffectWeaponDmg are already applied in Unit::CalculateDamage but SchoolDmg (physical) spells don't get any bonus at all currently, we have to think a about a more general sollution^^ Also the problem with the "One handed weapon specialization" will be more easy to fix, as far as I can judge this now...
  3. The taunt aura should be also available for pets now (http://www.wowhead.com/?spell=53477). I think we can remove typeId check at all. Should not make problems if a generic creature uses this, too. http://github.com/pasdVn/mangos/commit/98922bf17330456e0d298606219563d697ee1400
  4. Maybe it is better to move it to Aura::HandleModMechanicImmunity() !?
  5. http://www.wowhead.com/?spell=53186 http://www.wowhead.com/?spell=54445 when dummyproc becomes implemented http://www.wowhead.com/?spell=54045 when implemented^^
  6. SPELL_AURA_OBS_MOD_MANA (21) is used only for percentage mana regen currently. The miscvalue provides the powertype, so that we can use this more general for any power types. This will fix for example some spells that use this aura for regenerating pet's hapiness. http://github.com/pasdVn/mangos/commit/d6be1a6a6f41c7c55b9f9ed6e521f8aa5a39c69b 24.02.2010: Patach rebased onto [9443]
  7. Kill Command: http://www.wowhead.com/?spell=34026 One more of those crazy spells. Mechanic is working like that: * owner gets a aura, applying a spell mod that increases pet special ability damage (pet uses owners spell mods) * pet gets dummy aura that triggers on a damage spell * both auras have full stack (that means 3 in this case, no charges as normal spellmods) at beginning * when pet dummy aura triggers we have to remove owners aura manually, so that that the stack gets smaller and so the amount of the spellmod http://github.com/pasdVn/mangos/commit/eb55b0b3304b1a88bc12644999f8639f4a941e89 [added 2-20-2009] Here just an additional fix concerning "Kill Command": http://github.com/pasdVn/mangos/commit/e9855c55153d18815c9691455a634ddf3922e817 Just the second effect of "Focused Fire" (http://www.wowhead.com/?spell=35029).
  8. No, tthe patch changes nothing concerning with the waypoint movement. What does not work?
  9. http://www.wowhead.com/?spell=56339 Nothing else but the tooltip says that this aura has also to do anything with the pet. At least I did not find anything:( So here is a very "direct" version. Maybe anyone has a better Idea? From 79ebf214c709d61078fc920c3616a9c1d628fcce Mon Sep 17 00:00:00 2001 From: pasdVn <[email protected]> Date: Thu, 19 Feb 2009 10:21:58 +0100 Subject: [PATCH] apply aura 56339 (and ranks) to pet aswell --- src/game/StatSystem.cpp | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index 9d40f59..e1f511f 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -965,7 +965,13 @@ void Pet::UpdateAttackPowerAndDamage(bool ranged) { bonusAP = owner->GetTotalAttackPowerValue(RANGED_ATTACK) * 0.22f; SetBonusDamage( int32(owner->GetTotalAttackPowerValue(RANGED_ATTACK) * 0.1287f)); - } + + // hunter vs. wild + AuraList const& APofOwnerStat = owner->GetAurasByType(SPELL_AURA_MOD_ATTACK_POWER_OF_STAT_PERCENT); + for( AuraList::const_iterator i = APofOwnerStat.begin(); i != APofOwnerStat.end(); ++i) + if( (*i)->GetSpellProto()->SpellIconID == 3647 ) + bonusAP += int32(owner->GetStat(Stats((*i)->GetModifier()->m_miscvalue)) * (*i)->GetModifier()->m_amount / 100.0f); + } //demons benefit from warlocks shadow or fire damage else if(getPetType() == SUMMON_PET && owner->getClass() == CLASS_WARLOCK) { -- 1.6.0.2.1172.ga5ed0
  10. Hmm, works for me. Maybe you are one of those guys having problems with pastebin? Ok, did you mean the first link? That is not working for me, too. Reuploaded.
  11. Patch still needed and up to date. I added the promised speed adaption part for TMG in follow mode. Also removed some lines in the original patch that aren't necessary as I discovered now (set pet speed at InitStatsForLevel() ).
  12. Hmm, very interesting. This not existig trigger spell seems to should proc entrapment on every tick of the aura in some way... Jst the question how to realize that.
  13. I don't think so. As long as the crit of lay on hands is not enable by any OverrideCS Aura this won't change anything ;-)
  14. As you like it ;-) Just did not want to take two times the same aura if there are two. Did this for a similar spell but a dev wanted me not take the same aura twice so I did not do it like that this time^^ Anyway its curious why both auras have different values... But maybe we could swap them... use Dummy for shield proc in CalcAbsorbResist and OverrideCs for healing proc. We don't have to search auras twice in calcAbsorbResist then. Just some thoughts... I'm going to change it if some more people misslike it
  15. I think this is currently done only for spellbonus damage. As steadyshot is not a "magical" spell, but something as a meleespell, it is calculated by Unit::meleedamagebonus(). But would be a good Idea to add a peace of code to make this table also usable with melee spells... (of course we need a new column with rangedattackpower than) Edit: Besides Steady Shot should not delay autoshot anymore. Maybe this is not the best sollution to post it here, but I don't want to spamm the patch forum with a lot of threads about the same topic. So here is just a small additional patch fixing that: http://pastebin.com/m167feb8c. No flags or anything changed (see Allakhazam) so we have to hardcode it :-/
  16. This patch adds the dummy procs for "Rapture" (http://www.wowhead.com/?spell=47535). The formula is based on http://forums.worldofwarcraft.com/thread.html;jsessionid=5DD29E14CB82EF5628B964471BAE6DB1.app25_02?topicId=11296623227&sid=1 and the comments on wowhead. -- Because only Flash Heal, Great Heal, and the triggered missiles of Penance are abled to trigger the procs we have to change the procflags (currently wrong entries for Penance): pasdVn UPDATE for 3.1.3 (new spell mechanics): http://github.com/pasdVn/mangos/commit/80d0367959b110cb3daa0c6dd65022f5ecf84ac5 (the diff looks quite huge, but thats only because I had to shift a whole code part a tabulator to the left)
  17. This fix makes it possible, that also positive Spells can get affected by scripted crit chances. -> This will fix "Renewed Hope", and "Test of Faith" From 589dcbfd6e1bfca0c218649874976d66981347ae Mon Sep 17 00:00:00 2001 From: pasdVn <[email protected]> Date: Mon, 2 Feb 2009 11:09:40 +0100 Subject: [PATCH] fixed spell crit chance from SPELLAURA_OVERRIDE_CLASS_CRIPTS "Renewed Hope", 57470 and ranks --- src/game/Unit.cpp | 19 +++++++++++-------- 1 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 6788079..cf2d42d 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -7724,15 +7724,18 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM crit_chance += GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL, schoolMask); } // taken - if (pVictim && !IsPositiveSpell(spellProto->Id)) - { - // Modify critical chance by victim SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE - crit_chance += pVictim->GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE, schoolMask); - // Modify critical chance by victim SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE - crit_chance += pVictim->GetTotalAuraModifier(SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE); - // Modify by player victim resilience - if (pVictim->GetTypeId() == TYPEID_PLAYER) - crit_chance -= ((Player*)pVictim)->GetRatingBonusValue(CR_CRIT_TAKEN_SPELL); + if (pVictim ) + { + if ( !IsPositiveSpell(spellProto->Id) ) + { + // Modify critical chance by victim SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE + crit_chance += pVictim->GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE, schoolMask); + // Modify critical chance by victim SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE + crit_chance += pVictim->GetTotalAuraModifier(SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE); + // Modify by player victim resilience + if (pVictim->GetTypeId() == TYPEID_PLAYER) + crit_chance -= ((Player*)pVictim)->GetRatingBonusValue(CR_CRIT_TAKEN_SPELL); + } // scripted (increase crit chance ... against ... target by x% AuraList const& mOverrideClassScript = GetAurasByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS); -- 1.6.0.2.1172.ga5ed0
  18. As there are already given some enties for absorb spells in the new spell_bonus_data table we should use them For fixing "borowed times" (http://www.wowhead.com/?spell=52795, the second effect) I oriented at "Pain and Suffering" which is nearly the same spell (proc trigger aura and dummy aura that should apply a spellmod) and is handled directly above in the code. http://github.com/pasdVn/mangos/commit/3a39682c3e438293cc86e2e4c44e2e9a8f1b4a20 Here the left spell_bonus_data entries that are not already in: INSERT INTO `mangos`.`spell_bonus_data` (`entry` ,`direct_bonus` ,`dot_bonus` ,`ap_bonus` ,`comments`) VALUES ('6143', '0.1', '0', '0', 'Mage - Frost Ward'), ('543', '0.1', '0', '0', 'Mage - Fire Ward');
  19. Hunting Party (http://www.wowhead.com/?spell=53290) has very strange SpellFamilyMasks currently. Here are the correct ones: INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES (53290, 0, 9, 0x800, 0x1, 0x200, 0, 0x2, 0, 0, 0), (53291, 0, 9, 0x800, 0x1, 0x200, 0, 0x2, 0, 0, 0), (53292, 0, 9, 0x800, 0x1, 0x200, 0, 0x2, 0, 0, 0), (53293, 0, 9, 0x800, 0x1, 0x200, 0, 0x2, 0, 0, 0), (53294, 0, 9, 0x800, 0x1, 0x200, 0, 0x2, 0, 0, 0);
  20. Ok, I found out something. T.N.T. currently procs on all other ranged damage-spells.I think that problem causes also the campfire bug: SpellMgr::IsSpellProcEventCanTriggeredBy(): // check prockFlags for condition if((procFlags & EventProcFlag) == 0) return false; // Always trigger for this if (EventProcFlag & (PROC_FLAG_KILLED | PROC_FLAG_KILL | PROC_FLAG_ON_TRAP_ACTIVATION)) return true; The second line was changed in [7175]. Before there was no PROC_FLAG_ON_TRAP_ACTIVATION. Imagine the T.N.T. aura having PROC_FLAG_ON_TRAP_ACTIVATION, PROC_FLAG_SUCCESSFUL_RANGED_SPELL_HIT and some other (including an aoe flag, what causes the bug with the campfire, I guess) when a ranged spell hits. On comparing the aura's proc flag with the event proc flag (procFlags & EventProcFlag) everything is ok. In the next step mangos will see the T.N.T. has also PROC_FLAG_ON_TRAP_ACTIVATION and will return true, although a ranged spell tried to trigger. So we should not include the trap proc flag there... I originally didn't add it because of Entrapment (http://www.wowhead.com/?spell=19184), that should not proc on all traps, but this bug is one reason more ;-) Sry for doublepost... Just wanted to bump to make a dev notice it. Edit: Sorry, one more thing when having a look at the logs of this commit. // Lock and Load if ( dummySpell->SpellIconID == 3579 ) { // Proc only from periodic (from trap activation proc another aura of this spell) if (!(procFlag & PROC_FLAG_ON_DO_PERIODIC) || !roll_chance_i(triggerAmount)) return false; triggered_spell_id = 56453; target = this; break; } With this Code "Lock and Load" can also get triggered by a trap's dot (in fact only "immolationtrap"). Thats why I added the spellfamilimask in my patch ;-)
  21. Hmm, very strange... Are you sure that this is connected with this patch (this spell, that stuns?: http://www.wowhead.com/?spell=56338)?
  22. As all the hunter's shots and stings consume an amount of the casters base mana, we have to update the dummyproc of "Thrill of the Hunt" (http://www.wowhead.com/?spell=34499). From 0684956e6b9af624296423b47e061f004503351c Mon Sep 17 00:00:00 2001 From: pasdVn <[email protected]> Date: Sat, 24 Jan 2009 12:27:02 +0100 Subject: [PATCH] fixed spell 3449 and ranks --- src/game/Unit.cpp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 16a4f1d..9f5051e 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5264,7 +5264,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu return false; // mana cost save - basepoints0 = procSpell->manaCost * 40/100; + basepoints0 = procSpell->ManaCostPercentage * GetCreateMana() / 100 * 40/100; if(basepoints0 <= 0) return false; -- 1.6.0.2.1172.ga5ed0 In fact this is not 100% correct (we don't apply auras that degrease mana costs...), but that would require bigger changes or ugly hacks I think. So maybe we can live with this sollution (it was done the same way before^^).
  23. Allright. Thought it would be more clear to have both procs on the same place. So here is the new one: http://pastebin.com/m47702aeb
  24. http://www.wowhead.com/?spell=56342 This should trigger a spell under two different conditions with two different chances. This normally can't be done by one spell. But as you can see all ranks of this spell has a 100% proc chance, while the tooltip does not say. So the sollution is to hardcode the chances and check for the right condition. The proc chances are given by the base values of Triggeraura (for the trap trigger) and the dummy aura (the dot trigger). Additionally I had to add PROC_FLAG_ON_TRAP_ACTIVATION for "freezing trap" in prepareDataForTriggerSystem(). http://pastebin.com/m4a5bb7e6 What does not work is the proc on activating frost trap, because it has no direct unit target and ProcDamageAndSpell() is not called, but thats another thing... pasdVn
  25. Master Tactician (http://www.wowhead.com/?spell=34839) currently only procs on direct damage ranged attacks: See Unit:ProcDamageAndSpellFor(...): if(!IsTriggeredAtSpellProcEvent(pTarget, itr->second, procSpell, procFlag, procExtra, attType, isVictim, (damage > 0), spellProcEvent)) (damage>0) prevents other ranged attacks from beeing abled to trigger Master Tactician. Normally it should (Master Tactician Aura has also PROC_FLAG_SUCCESSFUL_RANGED_SPELL_HIT, or have a look here: http://liennaslog.blogspot.com/2007/12/master-tactician.html). Therefore we have to create an explicit procflag entry including all hunters ranged attacks: INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES (34506, 0, 9, 522753, 8392833, 513, 0, 0, 0, 0, 0), (34507, 0, 9, 522753, 8392833, 513, 0, 0, 0, 0, 0), (34508, 0, 9, 522753, 8392833, 513, 0, 0, 0, 0, 0), (34838, 0, 9, 522753, 8392833, 513, 0, 0, 0, 0, 0), (34839, 0, 9, 522753, 8392833, 513, 0, 0, 0, 0, 0); Thx for the nice proc system, to all developers btw
×
×
  • 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