-
Posts
2446 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Everything posted by Auntie Mangos
-
* What bug does the patch fix? What features does the patch add? Fixes the spell mod SPELLMOD_SPELL_BONUS_DAMAGE (aura 107), currently incorrectly applied as a multiplicative value of the total damage instead of modifying the spell coefficient value as it should. * For which repository revision was the patch created? 8719 * Is there a thread in the bug report section or at lighthouse? http://getmangos.eu/community/viewtopic.php?id=9595 * Who has been writing this patch? darkstalker diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index de56693..5b2bea3 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8457,11 +8457,8 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 DoneAdvertisedBenefit += ((Pet*)this)->GetBonusDamage(); float LvlPenalty = CalculateLevelPenalty(spellProto); - // Spellmod SpellDamage - float SpellModSpellDamage = 100.0f; - if(Player* modOwner = GetSpellModOwner()) - modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,SpellModSpellDamage); - SpellModSpellDamage /= 100.0f; + + Player* modOwner = GetSpellModOwner(); // Check for table values if (SpellBonusEntry const* bonus = spellmgr.GetSpellBonusData(spellProto->Id)) @@ -8475,7 +8472,15 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 if (bonus->ap_bonus) DoneTotal += int32(bonus->ap_bonus * GetTotalAttackPowerValue(BASE_ATTACK) * stack); - DoneTotal += int32(DoneAdvertisedBenefit * coeff * SpellModSpellDamage); + // Spellmod SpellBonusDamage + if (modOwner) + { + coeff *= 100.0f; + modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,coeff); + coeff /= 100.0f; + } + + DoneTotal += int32(DoneAdvertisedBenefit * coeff); TakenTotal += int32(TakenAdvertisedBenefit * coeff); } // Default calculation @@ -8508,8 +8513,19 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 break; } } - DoneTotal += int32(DoneAdvertisedBenefit * (CastingTime / 3500.0f) * DotFactor * LvlPenalty * SpellModSpellDamage); - TakenTotal+= int32(TakenAdvertisedBenefit * (CastingTime / 3500.0f) * DotFactor * LvlPenalty); + + float coeff = (CastingTime / 3500.0f) * DotFactor; + + // Spellmod SpellBonusDamage + if (modOwner) + { + coeff *= 100.0f; + modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,coeff); + coeff /= 100.0f; + } + + DoneTotal += int32(DoneAdvertisedBenefit * coeff * LvlPenalty); + TakenTotal+= int32(TakenAdvertisedBenefit * coeff * LvlPenalty); } float tmpDamage = (pdamage + DoneTotal) * DoneTotalMod; @@ -8906,11 +8922,8 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint int32 TakenAdvertisedBenefit = SpellBaseHealingBonusForVictim(GetSpellSchoolMask(spellProto), pVictim); float LvlPenalty = CalculateLevelPenalty(spellProto); - // Spellmod SpellDamage - float SpellModSpellDamage = 100.0f; - if(Player* modOwner = GetSpellModOwner()) - modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_SPELL_BONUS_DAMAGE, SpellModSpellDamage); - SpellModSpellDamage /= 100.0f; + + Player* modOwner = GetSpellModOwner(); // Check for table values SpellBonusEntry const* bonus = spellmgr.GetSpellBonusData(spellProto->Id); @@ -8925,7 +8938,15 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint if (bonus->ap_bonus) DoneTotal += int32(bonus->ap_bonus * GetTotalAttackPowerValue(BASE_ATTACK) * stack); - DoneTotal += int32(DoneAdvertisedBenefit * coeff * SpellModSpellDamage); + // Spellmod SpellBonusDamage + if (modOwner) + { + coeff *= 100.0f; + modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,coeff); + coeff /= 100.0f; + } + + DoneTotal += int32(DoneAdvertisedBenefit * coeff); TakenTotal += int32(TakenAdvertisedBenefit * coeff); } // Default calculation @@ -8957,8 +8978,19 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint break; } } - DoneTotal += int32(DoneAdvertisedBenefit * (CastingTime / 3500.0f) * DotFactor * LvlPenalty * SpellModSpellDamage * 1.88f); - TakenTotal += int32(TakenAdvertisedBenefit * (CastingTime / 3500.0f) * DotFactor * LvlPenalty * 1.88f); + + float coeff = (CastingTime / 3500.0f) * DotFactor * 1.88f; + + // Spellmod SpellBonusDamage + if (modOwner) + { + coeff *= 100.0f; + modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE,coeff); + coeff /= 100.0f; + } + + DoneTotal += int32(DoneAdvertisedBenefit * coeff * LvlPenalty); + TakenTotal += int32(TakenAdvertisedBenefit * coeff * LvlPenalty); } // use float as more appropriate for negative values and percent applying
-
http://getmangos.eu/community/viewtopic.php?id=174
-
Test this and report your findings: http://getmangos.eu/community/topic/13557/mmaps-redux/
-
Does this issue still exist? I found only this patch and its not in Git ( http://getmangos.eu/community/showthread.php?11657-[patch][not-for-git]Fixed-instance-reset-exploit&highlight=Exploit ) Edit: seems to be related with http://getmangos.eu/community/showthread.php?12775-[bUG]Instance-exploit-crash-fix&highlight=instance+reset
-
What bug does the patch fix? What features does the patch add? fixes 10% damage increase for Chaos Bolt and Incinerate if there is own Immolate on target For which repository revision was the patch created? 9362 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. http://getmangos.eu/community/showthread.php?10723-[bug]Fire-and-brismtone Who has been writing this patch? Please include either forum user names or email addresses. me diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 5d0fbd5..ee667d6 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -428,7 +428,22 @@ void Spell::EffectSchoolDMG(uint32 effect_idx) ((*i)->GetSpellProto()->SpellFamilyFlags & UI64LIT(0x00000000000004))) { damage += damage/4; - break; + + if((*i)->GetCaster() && (*i)->GetCaster() == m_caster) + { + Unit::AuraList const& dummyList = m_caster->GetAurasByType(SPELL_AURA_DUMMY); + for(Unit::AuraList::const_iterator iter = dummyList.begin(); iter != dummyList.end(); ++iter) + { + // Fire and Brimstone + if((*iter)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && + (*iter)->GetSpellProto()->SpellIconID == 3173) + { + damage += int32(damage * (*iter)->GetModifier()->m_amount / 100); + break; + } + } + } + break; } } } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 28cbbc2..af4be04 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9035,6 +9035,35 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 if (pVictim->GetHealth() * 100 / pVictim->GetMaxHealth() <= 25) DoneTotalMod *= 4; } + // Chaos Bolt + else if (spellProto->SpellFamilyFlags & UI64LIT(0x0002000000000000)) + { + // Check aura state for speed but aura state set not only for Immolate spell + if (pVictim->HasAuraState(AURA_STATE_CONFLAGRATE)) + { + Unit::AuraList const& dummyList = GetAurasByType(SPELL_AURA_DUMMY); + for(Unit::AuraList::const_iterator iter = dummyList.begin(); iter != dummyList.end(); ++iter) + { + // Fire and Brimstone + if((*iter)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && + ((*iter)->GetSpellProto()->SpellIconID == 3173)) + { + Unit::AuraList const& RejorRegr = pVictim->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE); + for(Unit::AuraList::const_iterator i = RejorRegr.begin(); i != RejorRegr.end(); ++i) + { + // Immolate + if((*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && + (*i)->GetSpellProto()->SpellFamilyFlags & UI64LIT(0x00000000000004) && (*i)->GetCaster() && (*i)->GetCaster() == this) + { + DoneTotalMod *= ((*iter)->GetModifier()->m_amount+100.0f) / 100.0f; + break; + } + } + break; + } + } + } + } break; } case SPELLFAMILY_DEATHKNIGHT: maybe there are additional ways to optimize looping =\\
-
hi friend,you in your raids, do you have got problems ? for example see this http://getmangos.eu/community/showthread.php?12358-raid-bug its similar? thanks to read me sorry,but can be the same bug
-
What bug does the patch fix? What features does the patch add? Fixed exploit with using spells under invisibility effects. For example potions or mage invisibility For which repository revision was the patch created? 9509 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. http://getmangos.eu/community/showthread.php?2668 Who has been writing this patch? Please include either forum user names or email addresses. Me d4cd7f61d79187017a7d96705e3bfa2e4938c8d5 src/game/Spell.cpp | 3 +-- src/game/Unit.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 68c7d48..01a6cf8 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2479,8 +2479,7 @@ void Spell::Prepare(SpellCastTargets const* targets, Aura* triggeredByAura) // skip triggered spell (item equip spell casting and other not explicit character casts/item uses) if ( !m_IsTriggeredSpell && isSpellBreakStealth(m_spellInfo) ) { - m_caster->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); - m_caster->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH); + m_caster->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_CAST); } // add non-triggered (with cast time and without) diff --git a/src/game/Unit.h b/src/game/Unit.h index 545510b..983bea0 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -66,7 +66,7 @@ enum SpellAuraInterruptFlags AURA_INTERRUPT_FLAG_NOT_UNDERWATER = 0x00000100, // 8 removed by leaving water AURA_INTERRUPT_FLAG_NOT_SHEATHED = 0x00000200, // 9 removed by unsheathing AURA_INTERRUPT_FLAG_UNK10 = 0x00000400, // 10 - AURA_INTERRUPT_FLAG_UNK11 = 0x00000800, // 11 + AURA_INTERRUPT_FLAG_CAST = 0x00000800, // 11 removed by casting a spell AURA_INTERRUPT_FLAG_UNK12 = 0x00001000, // 12 removed by attack? AURA_INTERRUPT_FLAG_UNK13 = 0x00002000, // 13 AURA_INTERRUPT_FLAG_UNK14 = 0x00004000, // 14 thanks to zergtmn for finding a correct solution.
-
But if you remove whirlwind there it doesn't do any offhand dmg . I'm really wondering what is the reason that the offhand spell is not triggering, this implementation would be much better than the current because in my opinion now the offhand part of whirlwind takes benefit from attack power two times (firstly in the offhand damage calculation and then in the whole calculation af the spell ) and also can't be dodged/parried/miss etc. and crits if main hand crits (there is a thread about it in bug reports - http://getmangos.eu/community/viewtopic.php?id=10143).
-
Thanks for reply, i have all three reagents equipped (20406, 20407, 20408). In this order i do: if(pPlayer->HasAura(24746)) { // Aura is true when items equipped pPlayer->CastSpell(pPlayer,24760,false); pPlayer->DestroyItemCount(20406, 1, true, true); pPlayer->DestroyItemCount(20407, 1, true, true); pPlayer->DestroyItemCount(20408, 1, true, true); } I will try pPlayer->CastSpell(pPlayer,24760,true); as TOM_RUS suggested. Can you also have a look here. What is the correct way to remove an consumable item from equipment? Regards warrior Sry when i ask maybe nooob questions, but with coding i`m quite new to mangos and all.
-
there's a few things here if you scroll down about SRP-6 and SHA1 hash. http://getmangos.eu/community/viewtopic.php?id=9704 and then there was another post about it somewhere.... http://getmangos.eu/community/viewtopic.php?id=5124 There was another one but i'm not sure where it went exactly.
-
Aura Stacking + Getmaxmodifier patch should have fixed this. An alternate patch was added by DiSlord in rev. 7049. I wonder what happend? Was it reverted?
-
Alex looks like the player login queue got bugged somehow. If possible dont use it until I find the source of the problem. netflow your crash is not related to Alex`s [EDIT] Alex pls provide your server info, kernel version etc and gcc and g++ versions.
-
to settti i run this from this threat http://getmangos.eu/community/viewtopic.php?id=14700&p=120911&viewfull=1#post120911, seems to work fine, but im not sure at all, im having the issues that i post above. tested atm in UK, got the TTR time same as the FoS time, the ttr of the fos was 13h-6n-48s, and the uk got the same, maybe when the ttr reach 24 reset?? if this is the case still wrong caus like i said my instanceresettime is at 4am and when ttr reach 24h will be the 1am here that is the time of the server. btw i think you have the defaul resetinstancetime right? that is 4am, at what time you got save and what time you will get the reset of the heroic? maybe can you post some pics, or help to get a solution without droping the characters? also the same errors that i said about the raid tab and welcome msg still.
-
You can give GaME a try, if you don't mind doing an SVN checkout and working with a project that's still under development. It supports account creation, editing and password resets and a lot more, though it does not have as many features as MM yet. It's written for a TBC server, but most SQL updates get backported so I would guess most functionality will work on newer servers as well - you'd have to try that out for yourself though.
-
check post 67 : http://getmangos.eu/community/showpost.php?p=93568&postcount=67 and about second question, there was about 2-3updates here, would be cool if repo for this
-
okay thx. but i cant open the dir_bin to configurate. okay i already got it http://getmangos.eu/community/topic/14610/vmapassemblerexe-and-wow-335a-quotcould-not-read-dirbin-filequot/ closed
-
This post explains what I mean with this patch. And yeah, it's a one liner! I think it'd be faster if you manually changed it, than use Tortoise's Apply Patch ~Seline~
-
Warden - The definitive anti-cheat system
Auntie Mangos replied to Auntie Mangos's topic in OldCore modifications
Hehe, I thought that someone make integration with the server immediately warden with server integration imho is better solution than daemon with connect and network problems Well, if TOM_RUS officially posted this work, I can discover that was explored me) i can explain work of any cheat and detect memory address and actions which used by cheat I make warden 8 month ago with this theme - http://getmangos.eu/community/topic/8866/warden/ - this is partly manual warden work + very good sniffs I see one check in your sniffs ====== PROC_CHECK START ====== CheckType 8A (54) Seed: 0xB8E64FC2 SHA1: 0x0E2E61748604BB170347570DBA9CF0332667C8E2 Module: user32.dll Proc: GetCursorPos Address: 0x00046BB0 Bytes to read: 60 ====== PROC_CHECK END ====== I think that blizz not used this check currently -
Hey, I was wondering if it's possible to see an example of how to handle a one-to-many leftjoin with the MaNGOS database implementation. I plan on rewriting the -External-Mail-from-SQL"]external mail (Atleast partially) to support up to 15 items (The max I believe) per mail. However I don't want to create 30 columns (One for ItemID and one for Count) instead I want to use a 2nd table containing the itemId and ItemCount. So does anyone have an example of this ? Thanks for your time, Xeross
-
What bug does the patch fix? What features does the patch add? Patch adds +10% strenght and +10% stamina effect to Blessing of Sanctuary For which repository revision was the patch created? Rev. 8918 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. http://getmangos.eu/community/viewtopic.php?id=11152 Who has been writing this patch? Please include either forum user names or email addresses. Myself diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index b0efd81..df84f3f 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2225,6 +2236,12 @@ void Aura::HandleAuraDummy(bool apply, bool Real) if (Unit* caster = GetCaster()) caster->CastSpell(caster, 13138, true, NULL, this); return; + case 20911: // Blessing of Sanctuary + case 25899: // Greater Blessing of Sanctuary + { + m_target->CastSpell(m_target, 67480, true, NULL, this); + return; + } case 39850: // Rocket Blast if(roll_chance_i(20)) // backfire stun m_target->CastSpell(m_target, 51581, true, NULL, this); @@ -2314,6 +2331,12 @@ void Aura::HandleAuraDummy(bool apply, bool Real) switch(GetId()) { + case 20911: // Blessing of Sanctuary + case 25899: // Greater Blessing of Sanctuary + { + m_target->RemoveAurasDueToSpell(67480); + return; + } case 36730: // Flame Strike { m_target->CastSpell(m_target, 36731, true, NULL, this);
-
Yes, it works, but to repeat what Jolan said earlier, this fixes the symptom of the bug, not the cause. And this causes more problems because more than one bug is present here. It is almost always better to fix bugs by removing or editing code than by slapping on more code. The cause of the problem is the player.StopMoving() in FlightPathMovementGenerator::Finalize . It calls SendMonsterMove, which sets the client's MovementFlags to 0. Other effects which cause automatic movement or changes in movement (such as Aura::HandleAuraModStun, Aura::HandleAuraModRoot, Spell::EffectDistract, Spell::EffectCharge) have a specific check to prevent StopMoving from being called on players. In fact, Spell::EffectCharge says after that check: // Only send MOVEMENTFLAG_WALK_MODE, client has strange issues with other move flags m_caster->SendMonsterMove(x, y, z, 0, MONSTER_MOVE_WALK, 1); but this causes the opposite effect: if you start charging with walking on, when the charge finishes, the client will have run toggled on. I did not see any adverse effects from the client after removing the StopMoving(). CMSG_MOVE_SPLINE_DONE was still sent to the server after the flight finished, so the client still knows when a flight is over. Additionally, player.SetUnitMovementFlags(MONSTER_MOVE_WALK); is causing channeling spells to be broken because the server then always thinks the player is continually moving. Perhaps a player.RemoveUnitMovementFlag was meant to be used instead? (Even then, I'm not sure this line serves a purpose, since I can't see where the player's UnitMovementFlags is being changed). diff --git a/src/game/WaypointMovementGenerator.cpp b/src/game/WaypointMovementGenerator.cpp index 71dd525..35e4dce 100644 --- a/src/game/WaypointMovementGenerator.cpp +++ b/src/game/WaypointMovementGenerator.cpp @@ -260,9 +260,6 @@ void FlightPathMovementGenerator::Finalize(Player & player) player.getHostilRefManager().setOnlineOfflineState(true); if(player.pvpInfo.inHostileArea) player.CastSpell(&player, 2479, true); - - player.SetUnitMovementFlags(MONSTER_MOVE_WALK); - player.StopMoving(); } } Edit: Still haven't seen any adverse effects from not changing UnitMovementFlags; edited diff.
-
i can still see it http://getmangos.eu/community/viewtopic.php?id=6751
-
Nice, thanks for first link. But I registered at sd2 forum and dont get a confirmation.
-
kyle1, thx, I'll think about this... But at moment it was better that I could find for fix this problem. UnkleNuke, afraid I don't understand you correct, but that about mmaps - I use playerbot with mmaps - it's great =) I added some (little-little) change into playerbot code for using mmaps fully =)
Contact Us
To contact us
click here
You can also email us at [email protected]
Privacy Policy | Terms & Conditions
You can also email us at [email protected]
Privacy Policy | Terms & Conditions
Copyright © getMaNGOS. All rights Reserved.
This website is in no way associated with or endorsed by Blizzard Entertainment®
This website is in no way associated with or endorsed by Blizzard Entertainment®