Jump to content

Auntie Mangos

Moderators
  • Posts

    2446
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by Auntie Mangos

  1. Here is a better way with apache. And also possible to modify launcher messages http://getmangos.eu/community/showthread.php?1932-Creating-A-Patchlist-Server&highlight=launcher What I don't understand is, when you download the files from eu.version.worldofwarcraft.com/update/ then you only get files with size between 1-2 Mb and not the full patches. I wonder how the hell these files you get from during update?
  2. older bug, for 3.2.2 I had to use: -item-rolling-popup-option"]http://getmangos.eu/community/showthread.php?11149-[bug]-item-rolling-popup-option I though with latest changes on master it was fixed but I didn't have chance to test it so it seems it's still bugged
  3. What bug does the patch fix? What features does the patch add? - Implements AuraState: 18 - Implements Spell:48432 and Ranks - Spell:6807 and Ranks now too benefits from effects, that increase effects with MECHANIC_BLEED For which repository revision was the patch created? - master @ 5953d559f5876628942cee1ee013bba72c8caf14 Is there a thread in the bug report section or at lighthouse? - http://getmangos.eu/community/viewtopic.php?id=10004 Who has been writing this patch? AuraState-component by laise -> source (corrected remove) everything else by Sarjuuk Notes AuraState:18 is not explicitly needed for this spell. However, i found it vastly supperior to another iterator over another set of auras. And since it would also be needed for Spell:51662 which is not entirely fixed by this), i included it here. Patch diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 62fb2c0..b39a39e 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -909,7 +909,7 @@ enum AuraState AURA_STATE_SWIFTMEND = 15, // T | AURA_STATE_DEADLY_POISON = 16, // T | AURA_STATE_ENRAGE = 17, // C | - //AURA_STATE_UNKNOWN18 = 18, // C t| + AURA_STATE_MECHANIC_BLEED = 18, // C t| //AURA_STATE_UNKNOWN19 = 19, // | not used //AURA_STATE_UNKNOWN20 = 20, // c | only (45317 Suicide) //AURA_STATE_UNKNOWN21 = 21, // | not used diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 662cd5a..feb1ca4 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1079,6 +1079,10 @@ void Aura::_AddAura() // Enrage aura state if(m_spellProto->Dispel == DISPEL_ENRAGE) m_target->ModifyAuraState(AURA_STATE_ENRAGE, true); + + // Mechanic bleed aura state + if(GetAllSpellMechanicMask(m_spellProto) & (1 << (MECHANIC_BLEED-1))) + m_target->ModifyAuraState(AURA_STATE_MECHANIC_BLEED, true); } } } @@ -1156,6 +1160,23 @@ bool Aura::_RemoveAura() if(m_spellProto->Dispel == DISPEL_ENRAGE) m_target->ModifyAuraState(AURA_STATE_ENRAGE, false); + // Mechanic bleed aura state + if(GetAllSpellMechanicMask(m_spellProto) & (1 << (MECHANIC_BLEED-1))) + { + bool found = false; + Unit::AuraList const& mPerDmg = m_target->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE); + for(Unit::AuraList::const_iterator i = mPerDmg.begin(); i != mPerDmg.end(); ++i) + { + if(GetAllSpellMechanicMask((*i)->m_spellProto) & (1 << (MECHANIC_BLEED-1))) + { + found = true; + break; + } + } + if(!found) + m_target->ModifyAuraState(AURA_STATE_MECHANIC_BLEED, false); + } + uint32 removeState = 0; uint64 removeFamilyFlag = m_spellProto->SpellFamilyFlags; uint32 removeFamilyFlag2 = m_spellProto->SpellFamilyFlags2; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index c45f8cb..106882e 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8809,9 +8809,32 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM break; } case SPELL_DAMAGE_CLASS_MELEE: + case SPELL_DAMAGE_CLASS_RANGED: { + if (pVictim) + { + crit_chance = GetUnitCriticalChance(attackType, pVictim); + crit_chance+= GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL, schoolMask); + } + + // Rend and Tear - eff:1 + if(spellProto->SpellFamilyName == SPELLFAMILY_DRUID && spellProto->SpellIconID == 1680 && spellProto->SpellFamilyFlags & UI64LIT(0x00800000)) + { + if(pVictim->HasAuraState(AURA_STATE_MECHANIC_BLEED)) + { + AuraList const& dummyAuras = GetAurasByType(SPELL_AURA_DUMMY); + for(AuraList::const_iterator i = dummyAuras.begin(); i != dummyAuras.end(); ++i) + { + if((*i)->GetEffIndex() == 1 && (*i)->GetSpellProto()->SpellIconID == 2859) + { + crit_chance += (*i)->GetModifier()->m_amount; + break; + } + } + } + } // Judgement of Command proc always crits on stunned target - if(spellProto->SpellFamilyName == SPELLFAMILY_PALADIN) + else if(spellProto->SpellFamilyName == SPELLFAMILY_PALADIN) { if(spellProto->SpellFamilyFlags & 0x0000000000800000LL && spellProto->SpellIconID == 561) { @@ -8819,14 +8842,6 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM return true; } } - } - case SPELL_DAMAGE_CLASS_RANGED: - { - if (pVictim) - { - crit_chance = GetUnitCriticalChance(attackType, pVictim); - crit_chance+= GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL, schoolMask); - } break; } default: @@ -9273,8 +9288,8 @@ uint32 Unit::MeleeDamageBonus(Unit *pVictim, uint32 pdamage,WeaponAttackType att uint32 schoolMask = spellProto ? spellProto->SchoolMask : GetMeleeDamageSchoolMask(); uint32 mechanicMask = spellProto ? GetAllSpellMechanicMask(spellProto) : 0; - // Shred also have bonus as MECHANIC_BLEED damages - if (spellProto && spellProto->SpellFamilyName==SPELLFAMILY_DRUID && spellProto->SpellFamilyFlags & UI64LIT(0x00008000)) + // Shred and Maul also have bonus as MECHANIC_BLEED damages + if (spellProto && spellProto->SpellFamilyName==SPELLFAMILY_DRUID && spellProto->SpellFamilyFlags & UI64LIT(0x00008800)) mechanicMask |= (1 << (MECHANIC_BLEED-1)); @@ -9374,6 +9389,28 @@ uint32 Unit::MeleeDamageBonus(Unit *pVictim, uint32 pdamage,WeaponAttackType att if (!owner) owner = this; + // ..done (dummy auras) + if(spellProto) + { + AuraList const& casterDummyAuras = owner->GetAurasByType(SPELL_AURA_DUMMY); + for(AuraList::const_iterator i = casterDummyAuras.begin(); i != casterDummyAuras.end(); ++i) + { + if (!(*i)->isAffectedOnSpell(spellProto)) + continue; + + switch((*i)->GetSpellProto()->SpellIconID) + { + // Rend and Tear - eff:0 + case 2859: + { + if(pVictim->HasAuraState(AURA_STATE_MECHANIC_BLEED)) + DonePercent *= (100.0f+(*i)->GetModifier()->m_amount)/100.0f; + break; + } + } + } + } + // ..done (class scripts) if(spellProto) {
  4. What features does the patch add? When a mainly humanoid mob has low health, it flees to search for assistance and bring back assistants if any. More details on what this patch does: http://getmangos.eu/community/viewtopic.php?id=6875 This patch create all the needed steps and bring script system a single call: Creature::DoFleeToGetAssistance() For which repository revision was the patch created? master 543e88f [7517] Add tick targets amount limitations to 48505... mangos-0.12 5662c65 [7515] Not allow caster cast different polymorph spells... Is there a thread in the bug report section or at lighthouse? None I know Who has been writing this patch? Myself For master [7517]: http://pastebin.ca/1367998 For mangos-0.12 [7515]: http://pastebin.ca/1368019 Edit: Prevent mob fleeing if they have anti-fleeing aura Reduced random flee default time to 6 seconds Some cosmetic changes For SD2: Index: scripts/creature/mob_event_ai.cpp =================================================================== --- scripts/creature/mob_event_ai.cpp (revision 924) +++ scripts/creature/mob_event_ai.cpp (working copy) @@ -838,8 +838,7 @@ break; case ACTION_T_FLEE: { - //TODO: Replace with Flee movement generator - m_creature->CastSpell(m_creature, SPELL_RUN_AWAY, true); + m_creature->DoFleeToGetAssistance(); } break; case ACTION_T_QUEST_EVENT_ALL:
  5. Hello all, on a clean MaNGPOS Git i get for mtmaps the following result: git pull git://github.com/scamp/mangos.git ma From git://github.com/scamp/mangos * branch master -> FETCH_HEAD Already up-to-date. and git pull git://github.com/HiTmAn/mangos.git m remote: Counting objects: 242, done. remote: Compressing objects: 100% (75/75), done. remote: Total 145 (delta 122), reused 89 (delta 70) Receiving objects: 100% (145/145), 33.24 KiB, done. Resolving deltas: 100% (122/122), completed with 49 local objects. From git://github.com/HiTmAn/mangos * branch mtmaps -> FETCH_HEAD error: Entry 'src/game/World.cpp' would be overwritten by merge. Cannot merge. fatal: merging of trees 51f0b6ad2f523fcb182a3fb18d6770e08df0d1a0 and 5d94545e5e003759169dee64878a7d07e0c6ea8d failed Merge with strategy recursive failed. So for me this sounds scamp's version is already in master? Regards warrior
  6. http://getmangos.eu/community/topic/15401/mangos-history/ as you can research, mangos built on other projects, and so actually it boils down to 1-2 people, and so the personal taste is very likely; The more interesting question might be, why the project was not converted to any other language, and there are several reasons: * the Devs know C++ (which is now like a self-roller, any new dev must know C++) * There is nothing "wrong" with C++ - so no need to actually change * Other languages aren't "better" in general.. (except APL)
  7. You are right, Vladimir. Sorry for this, but it's still very intresting, since I'm trying to figure out how spell system and threat works. I will take a closer look on that later. Well then. I will try to improve the patch the next days, since this could be still useful for us. We could move discussion on topic back to http://getmangos.eu/community/topic/15271/bug-threat-calculation/page/2/ I think.
  8. First read related topics before posting: http://getmangos.eu/community/viewtopic.php?id=15430
  9. Great, thanks a lot for the response. Someone needs to update the stickied guide here, in step 7: http://getmangos.eu/community/viewtopic.php?id=7318
  10. What bug does the patch fix? Fixes a few auras which should trigger a spell onto an enemy For which repository revision was the patch created? 10178, 10728 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. No, however a few comments/hacks in SD2 files Alternate way to handle this: http://getmangos.eu/community/viewtopic.php?id=2954 Who has been writing this patch? Please include either forum user names or email addresses. me Edit: Need to closely review this patch; With recentish changes to Arcane Missiles, this needed serious reimplementation; probably now the cleanest way will be a hardcoded way by spell-entry! Patch: http://paste2.org/p/1094636 (10728) (uses the Improvement of SelectAttackingTarget, http://getmangos.eu/community/viewtopic.php?id=14555) http://paste2.org/p/1094637 (10728 - fullpatch) A bit about discussion: There are about 35 spells related, many of them should target a random Target from enemies, some are melee spells and hence should target the topmost-aggro guy in range. Also from this bunch of spells there are a few spells which will need single-treatment in any case. However I didn't find anything common in these spells, that is why there is this _very sloppy_ and possible false (for some) selection between range of the spells. This should fit -in general- good to the goal. An alternative was to put these spells all into a switch, but this is also not so great. Perhaps anyone here has a good idea For further research, this is my list of spells: http://paste2.org/p/911709 *History: http://paste2.org/p/911699 (10178)
  11. Just follow the steps and everything should be fine http://getmangos.eu/community/showthread.php?13121-World-of-Warcraft-Server-for-Windows-Installation-Guide
  12. TESTED ON - Ubuntu 9.10 / CentOS 5.2 NOTE - None of the patches are mine. Some are from KAPATEJiB and others from other users here. BEFORE - Please read -Ubuntu-Debian-CentOS-RHEL-Install-Guide"]THIS AWESOME GUIDE before applying anything. This will make sure you do not get ANY weird problems. HOW TO APPLY A PATCH FILE - Go into your mangos source folder and git apply X (X is the patch) Example - git apply fly.patch Note - In both scripts made below you can check how to apply patches correctly. Patches i changed or fix to be easily applied to core with git Death Bug (Zombie mode) - Works OK Warlock Demonic Circle - Works OK Hunter Freezing Arrow - Works OK Rogue Shadow Dance - Works OK Dalaran No Fly Patch - Works Ok Death Grip - Works OK but instead of jumping towards you npc is running towards you. Mage Blink / Warrior Charge / Rogue ShadowStep - Works OK UPDATED: 9773 FragFrog's List - http://mangos.fragfrog.nl/Patches/MaNGOS/ WHEN INSTALLING FRESH # Where ManGOS and ScriptDev2 sources will be downloaded (EDIT THIS TO CHANGE ORIGIN PLACE) MangosStart="/home/cyrex" # Where ManGOS and ScriptDev2 sources will be installed (EDIT THIS TO CHANGE DESTINATION PLACE) MangosEnd="/opt/mangos" # Compilation Script (Git Checkout, SVN Checkout, ScriptDev2 Patch for Mangos, Configure, Make & Install) clear echo "WOW Server Compiler By CYREX" echo " " echo "REMOVING OLD DATA FROM GIT FOLDER" echo " " rm -fr ${MangosStart} rm -fr ${MangosEnd}/lib rm -fr ${MangosEnd}/bin echo " " echo "CHECKING OUT MANGOS GIT" echo " " git clone git://github.com/mangos/mangos.git echo " " cd ${MangosStart} echo " " echo "CHECKING OUT SCRIPTDEV2 SVN" echo " " svn checkout [url]http://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2[/url] src/bindings/ScriptDev2 echo " " echo "PATCHING MANGOS WITH SCRIPTDEV2..." echo " " git apply src/bindings/ScriptDev2/patches/MaNGOS-* echo " " echo "CONFIGURING MANGOS" echo " " autoreconf --install --force mkdir objdir cd objdir ../configure --prefix=${MangosEnd} --sysconfdir=${MangosEnd}/etc --enable-cli --enable-ra --datadir=${MangosEnd} echo " " echo "MAKING MANGOS" echo " " make echo " " echo "CREATING BIN FILES (Executables, Libraries, Conf files, SQL Files)" echo " " make install cd .. echo " " echo "FINISHED." echo " " WHEN UPDATING ONLY + PATCHES Note: I created a folder called patches next to the folder source of mangos as you can see in the script below. # Where ManGOS and ScriptDev2 sources will be downloaded (EDIT) MangosStart="/home/cyrex" # Where ManGOS and ScriptDev2 sources will be installed (EDIT) MangosEnd="/opt/mangos" # Compilation Script (Git Checkout, SVN Checkout, ScriptDev2 Patch for Mangos, Configure, Make & Install) clear echo "WOW Server Compiler By CYREX" echo " " echo "UPDATING MANGOS" echo " " cd ${MangosStart} rm -fr objdir echo " " git reset --hard git pull echo "UPDATING SCRIPTDEV2" echo " " svn update src/bindings/ScriptDev2 echo " " echo "PATCHING MANGOS WITH SCRIPTDEV2..." echo " " git apply src/bindings/ScriptDev2/patches/MaNGOS-* echo " " echo "PATCHING MANGOS WITH DALARAN NO FLY ZONE..." echo " " git apply ../patches/Dalaran.patch echo " " echo "PATCHING MANGOS WITH DEATH FIX..." echo " " git apply ../patches/Death.patch echo " " echo "PATCHING MANGOS WITH DEATH GRIP..." echo " " git apply ../patches/DeathGrip.patch echo " " echo "PATCHING MANGOS WITH BLINK..." echo " " git apply ../patches/Blink.patch echo " " echo "PATCHING MANGOS WITH HUNTER FREEZE ARROW..." echo " " git apply ../patches/HunterFreezingArrow.patch echo " " echo "PATCHING MANGOS WITH ROGUE SHADOW DANCE..." echo " " git apply ../patches/RogueShadowDance.patch echo " " echo "PATCHING MANGOS WITH WARLOCK DEMONIC CIRCLE..." echo " " git apply ../patches/WarlockDemonicCircle.patch echo " " echo "CONFIGURING MANGOS" echo " " autoreconf --install --force mkdir objdir cd objdir ../configure --prefix=${MangosEnd} --sysconfdir=${MangosEnd}/etc --enable-cli --enable-ra --datadir=${MangosEnd} echo " " echo "MAKING MANGOS" echo " " make echo " " echo "CREATING BIN FILES (Executables, Libraries, Conf files, SQL Files)" echo " " make install cd .. echo " " echo "FINISHED." echo " " Tested with latest and everything works good. (Core 9773)
  13. Fixed in revision 9210+. Currently this bugs are from 9208 revision, soon will be updated from the latest revision.
  14. Bug : http://getmangos.eu/community/viewtopic.php?id=8771 possible Fix (not tested since cheat engine does not work for me with linux): http://getmangos.eu/community/showpost.php?p=96621&postcount=18
  15. please take a look of this patch, i have been testing since 83xx and it works! http://getmangos.eu/community/viewtopic.php?id=8644&highlight=demonic+circle diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index da6f652..5b66b7e 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -571,6 +571,9 @@ void Spell::FillTargetMap() break; } break; + case TARGET_AREAEFFECT_CUSTOM: + // We MUST select custom target. May be some SetCustomTargetMap(i, tmpUnitMap) + break; default: switch(m_spellInfo->EffectImplicitTargetB[i]) { @@ -1447,6 +1450,7 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,UnitList& TagUnitMap) case TARGET_AREAEFFECT_CUSTOM: case TARGET_AREAEFFECT_CUSTOM_2: case TARGET_SUMMON: + case TARGET_EFFECT_SELECT: TagUnitMap.push_back(m_caster); break; case TARGET_RANDOM_ENEMY_CHAIN_IN_AREA: @@ -3731,7 +3735,9 @@ SpellCastResult Spell::CheckCast(bool strict) return SPELL_FAILED_CASTER_AURASTATE; // Caster aura req check if need - if(m_spellInfo->casterAuraSpell && !m_caster->HasAura(m_spellInfo->casterAuraSpell)) + if(m_spellInfo->casterAuraSpell && + sSpellStore.LookupEntry(m_spellInfo->casterAuraSpell) && + !m_caster->HasAura(m_spellInfo->casterAuraSpell)) return SPELL_FAILED_CASTER_AURASTATE; if(m_spellInfo->excludeCasterAuraSpell) { diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 2dd62f9..51253d6 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1147,6 +1147,38 @@ void Aura::_RemoveAura() return true; } +void Aura::SendFakeAuraUpdate(uint32 auraId, bool remove) +{ + WorldPacket data(SMSG_AURA_UPDATE); + data.append(m_target->GetPackGUID()); + data << uint8(64); + data << uint32(remove ? 0 : auraId); + + if(remove) + { + m_target->SendMessageToSet(&data, true); + return; + } + + uint8 auraFlags = GetAuraFlags(); + data << uint8(auraFlags); + data << uint8(GetAuraLevel()); + data << uint8(m_procCharges ? m_procCharges : m_stackAmount); + + if(!(auraFlags & AFLAG_NOT_CASTER)) + { + data << uint8(0); // pguid + } + + if(auraFlags & AFLAG_DURATION) + { + data << uint32(GetAuraMaxDuration()); + data << uint32(GetAuraDuration()); + } + + m_target->SendMessageToSet(&data, true); +} + void Aura::SendAuraUpdate(bool remove) { WorldPacket data(SMSG_AURA_UPDATE); @@ -4062,6 +4094,18 @@ void Aura::HandleModMechanicImmunity(bool apply, bool /*Real*/) m_target->ApplySpellImmune(GetId(),IMMUNITY_MECHANIC,misc,apply); + // Demonic Circle + if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && GetSpellProto()->SpellIconID == 3221) + { + if (m_target->GetTypeId() != TYPEID_PLAYER) + return; + if (apply) + { + GameObject* obj = m_target->GetGameObject(48018); + if (obj) + ((Player*)m_target)->TeleportTo(obj->GetMapId(),obj->GetPositionX(),obj->GetPositionY(),obj->GetPositionZ(),obj->GetOrientation()); + } + } // Bestial Wrath if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_HUNTER && GetSpellProto()->SpellIconID == 1680) { @@ -4282,6 +4326,21 @@ void Aura::HandleAuraPeriodicDummy(bool apply, bool Real) } break; } + case SPELLFAMILY_WARLOCK: + { + switch (spell->Id) + { + case 48018: + if (apply) + SendFakeAuraUpdate(62388,false); + else + { + m_target->RemoveGameObject(spell->Id,true); + SendFakeAuraUpdate(62388,true); + } + break; + } + } case SPELLFAMILY_HUNTER: { // Explosive Shot @@ -6747,6 +6806,20 @@ void Aura::PeriodicDummyTick() } break; } + case SPELLFAMILY_WARLOCK: + switch (spell->Id) + { + case 48018: + GameObject* obj = m_target->GetGameObject(spell->Id); + if (!obj) return; + // We must take a range of teleport spell, not summon. + const SpellEntry* goToCircleSpell = sSpellStore.LookupEntry(48020); + if (m_target->IsWithinDist(obj,GetSpellMaxRange(sSpellRangeStore.LookupEntry(goToCircleSpell->rangeIndex)))) + SendFakeAuraUpdate(62388,false); + else + SendFakeAuraUpdate(62388,true); + } + break; case SPELLFAMILY_ROGUE: { switch (spell->Id) diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h index a691c75..536cf2e 100644 --- a/src/game/SpellAuras.h +++ b/src/game/SpellAuras.h @@ -274,6 +274,7 @@ class MANGOS_DLL_SPEC Aura void SetAura(bool remove) { m_target->SetVisibleAura(m_auraSlot, remove ? 0 : GetId()); } void SendAuraUpdate(bool remove); + void SendFakeAuraUpdate(uint32 auraId, bool remove); int8 GetStackAmount() {return m_stackAmount;} void SetStackAmount(uint8 num); diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index c1cfd68..f606453 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -5814,7 +5814,7 @@ void Spell::EffectSummonObject(uint32 i) if(uint64 guid = m_caster->m_ObjectSlot[slot]) { if(GameObject* obj = m_caster ? m_caster->GetMap()->GetGameObject(guid) : NULL) - obj->SetLootState(GO_JUST_DEACTIVATED); + if(obj) m_caster->RemoveGameObject(obj,true); m_caster->m_ObjectSlot[slot] = 0; } download patch ----> http://omploader.org/vMjRqeA author--->The Cman edit: i think is the same patch -.-, sorry
  16. This is not correct. For Absorb auras every bonuses are hardcoded currently. Try this patch http://getmangos.eu/community/viewtopic.php?id=6037 and you get wat you want
  17. What bug does the patch fix? - Starfall will now be suppressed while the caster has lost control of his character - Starfall will now be canceled if entering an Animal-Form or mounting For which repository revision was the patch created? master @ 9e3e28d50ea9babcb44ff9125c929d4edd00f6d3 Is there a thread in the bug report section or at lighthouse? http://getmangos.eu/community/showpost.php?p=65600&postcount=10 Who has been writing this patch? Sarjuuk Note! - Starfall will still target stealthed Enemies -> Source - Starfall will still shoot more then two stars per second if supplied with enough targets -> see tooltip File: [Download]
  18. * What bug does the patch fix? What features does the patch add? Fix incorrect damage shown in combat log when spell or elemental melee damage was partially resisted or absorbed. * For which SubVersion revision was the patch created? 6872 * Is there a thread in the bug report section? If yes, please add a link to the thread. http://getmangos.eu/community/showthread.php?p=36302 * Who has been writing this patch? Please include either forum user names or email addresses. Me, Tassader diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 4b6372f..f5397ec 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -3359,7 +3359,7 @@ bool ChatHandler::HandleDamageCommand(const char * args) damage -= absorb + resist; m_session->GetPlayer()->DealDamage(target, damage, NULL, DIRECT_DAMAGE, schoolmask, NULL, false); - m_session->GetPlayer()->SendAttackStateUpdate (HITINFO_NORMALSWING2, target, 1, schoolmask, damage, absorb, resist, VICTIMSTATE_NORMAL, 0); + m_session->GetPlayer()->SendAttackStateUpdate (HITINFO_NORMALSWING2, target, 1, schoolmask, damage+absorb+resist, absorb, resist, VICTIMSTATE_NORMAL, 0); return true; } diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index b4741b4..12902f3 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -5592,6 +5592,8 @@ void Aura::PeriodicTick() pCaster->CalcAbsorbResist(m_target, GetSpellSchoolMask(GetSpellProto()), DOT, pdamage, &absorb, &resist); + pdamage=(pdamage <= absorb+resist) ? 0 : (pdamage-absorb-resist); + sLog.outDetail("PeriodicTick: %u (TypeId: %u) attacked %u (TypeId: %u) for %u dmg inflicted by %u abs is %u", GUID_LOPART(GetCasterGUID()), GuidHigh2TypeId(GUID_HIPART(GetCasterGUID())), m_target->GetGUIDLow(), m_target->GetTypeId(), pdamage, GetId(),absorb); @@ -5610,7 +5612,7 @@ void Aura::PeriodicTick() Unit* target = m_target; // aura can be deleted in DealDamage SpellEntry const* spellProto = GetSpellProto(); - pCaster->DealDamage(m_target, (pdamage <= absorb+resist) ? 0 : (pdamage-absorb-resist), &cleanDamage, DOT, GetSpellSchoolMask(GetSpellProto()), GetSpellProto(), true); + pCaster->DealDamage(m_target, pdamage, &cleanDamage, DOT, GetSpellSchoolMask(GetSpellProto()), GetSpellProto(), true); // DO NOT ACCESS MEMBERS OF THE AURA FROM NOW ON (DealDamage can delete aura) @@ -5710,6 +5712,8 @@ void Aura::PeriodicTick() pCaster->CalcAbsorbResist(m_target, GetSpellSchoolMask(GetSpellProto()), DOT, pdamage, &absorb, &resist); + pdamage=(pdamage <= absorb+resist) ? 0 : (pdamage-absorb-resist); + if(m_target->GetHealth() < pdamage) pdamage = uint32(m_target->GetHealth()); @@ -5723,7 +5727,7 @@ void Aura::PeriodicTick() SpellEntry const* spellProto = GetSpellProto(); float multiplier = spellProto->EffectMultipleValue[GetEffIndex()] > 0 ? spellProto->EffectMultipleValue[GetEffIndex()] : 1; - uint32 new_damage = pCaster->DealDamage(m_target, (pdamage <= absorb+resist) ? 0 : (pdamage-absorb-resist), &cleanDamage, DOT, GetSpellSchoolMask(GetSpellProto()), GetSpellProto(), false); + uint32 new_damage = pCaster->DealDamage(m_target, pdamage, &cleanDamage, DOT, GetSpellSchoolMask(GetSpellProto()), GetSpellProto(), false); // DO NOT ACCESS MEMBERS OF THE AURA FROM NOW ON (DealDamage can delete aura) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index d1259d0..8526363 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -1429,7 +1429,7 @@ uint32 Unit::SpellNonMeleeDamageLog(Unit *pVictim, uint32 spellID, uint32 damage GetGUIDLow(), GetTypeId(), pVictim->GetGUIDLow(), pVictim->GetTypeId(), damage, spellID, absorb,resist); // Actual log sent to client - SendSpellNonMeleeDamageLog(pVictim, spellID, damage, GetSpellSchoolMask(spellInfo), absorb, resist, false, 0, crit); + SendSpellNonMeleeDamageLog(pVictim, spellID, damage+absorb+resist, GetSpellSchoolMask(spellInfo), absorb, resist, false, 0, crit); // Procflags uint32 procAttacker = PROC_FLAG_HIT_SPELL; Description: In Unit::SpellNonMeleeDamageLog(), resisted and absorbed part of damage was subtracted before calling SendSpellNonMeleeDamageLog() and than once again IN SendSpellNonMeleeDamageLog(), resulting in too low (or even negative) damage shown in combat log Similarly in ChatHandler::HandleDamageCommand() In Aura::PeriodicTick(), resisted+absorbed portion was NOT subtracted before sending data to client, so client's combat log always reported full damage
  19. Refer to http://getmangos.eu/community/viewtopic.php?id=28670 These two bugs better be fixed at the same time. Also see http://getmangos.eu/community/viewtopic.php?id=28657 These three bugs make some periodic trigger spells very bugged
  20. http://getmangos.eu/community/topic/14084/9700bgs-spirit-healerbug/
  21. "[bUG] Random Battleground Not work" It's not a bug, it has not been implemented yet. That's not true, it doesn't work because...it has not been implemented yet. boyher, please take the time to search on the forums before posting : http://getmangos.eu/community/viewtopic.php?id=13626&page=3
  22. Hi! Welcome to the MaNGOS forum. as you said that you'd be from arcemu i'm trying to write with really simple english word and explain everything for you, ok? First of all, you don't need any C++! There are so-called "repacks" out there. Use Google (that thing which you most likely see as the first page when you start your webbrowser (probably Internet Explorer 6.0)). Those "repacks" are very cool, they give you everything you need! You don't even need to think anymore, they do everything automatically! And don't forget to post your server's name and url here when you are done setting it up! We'd all like to play on your amazing server! Please don't forget to add some HUGE paypal button on the front-page from your website. Also, please note that the MaNGOS team will always be here to help you! So you don't need to use this weird Forum Search which nobody ever used. Just create a new thread and ask the question, somebody will post you the link! Again: Welcome to our community! -- DasBlub NoFantasy forced me to write such a post... blame him
  23. There are some works. http://getmangos.eu/community/viewtopic.php?id=11381
  24. I'll post an SQL fix for the coefficient later on in the coefficient topic. Edit: not possible because the effect of the bloom is dummy "Apply Aura: Dummy Value: 970 Server-side script" It can be fixed thru spell_bonus_data only if the spell to heal is separate, like http://www.wowhead.com/?spell=33778, but I'm pretty sure it has to be done in c++ code.
  25. http://getmangos.eu/community/viewtopic.php?id=20549
×
×
  • 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