Jump to content

Auntie Mangos

Moderators
  • Posts

    2446
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by Auntie Mangos

  1. This is realy easy to explain. Lets say that SoR deals 10dmg. Dampen Magic lower is by 120. It should be 10-120=0, but is 10-120=-110. Can you deal negative damage? No. It just resets and goes from 2147483646 same as http://getmangos.eu/community/showthread.php?10450 (fixed)
  2. Not correct. You should can still equip item with enchant, but enchant should'n work without skill. http://getmangos.eu/community/showthread.php?10965-patch-Not-apply-enchant-s-bonuses-if-require-skill-level&highlight=aplly+enchant
  3. What bug does the patch fix? What features does the patch add? allows periodic auras to be affected by haste, also added Shadowform triggering spell with this aura For which repository revision was the patch created? 9593 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?12995-[bUG]-Glyph-Quick-and-Decay Who has been writing this patch? Please include either forum user names or email addresses. me diff --git a/src/game/SpellAuraDefines.h b/src/game/SpellAuraDefines.h index fb5a5ee..01855e4 100644 --- a/src/game/SpellAuraDefines.h +++ b/src/game/SpellAuraDefines.h @@ -358,7 +358,7 @@ enum AuraType SPELL_AURA_313 = 313, SPELL_AURA_314 = 314, SPELL_AURA_315 = 315, - SPELL_AURA_316 = 316, + SPELL_AURA_MOD_PERIODIC_DURATION_OF_HASTE = 316, TOTAL_AURAS = 317 }; diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 4a64b7c..d0d0e74 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -366,7 +366,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &Aura::HandleNULL, //313 0 spells in 3.3 &Aura::HandleNULL, //314 1 test spell (reduce duration of silince/magic) &Aura::HandleNULL, //315 underwater walking - &Aura::HandleNULL //316 makes haste affect HOT/DOT ticks + &Aura::HandleNoImmediateEffect //316 makes haste affect HOT/DOT ticks, SPELL_AURA_MOD_PERIODIC_DURATION_OF_HASTE, implemented in Unit::CalculateSpellDuration }; static AuraType const frozenAuraTypes[] = { SPELL_AURA_MOD_ROOT, SPELL_AURA_MOD_STUN, SPELL_AURA_NONE }; @@ -398,14 +398,12 @@ m_isRemovedOnShapeLost(true), m_in_use(0), m_deleted(false) { m_caster_guid = target->GetGUID(); damage = m_currentBasePoints+1; // stored value-1 - m_maxduration = target->CalculateSpellDuration(m_spellProto, m_effIndex, target); } else { m_caster_guid = caster->GetGUID(); - damage = caster->CalculateSpellDamage(m_spellProto,m_effIndex,m_currentBasePoints,target); - m_maxduration = caster->CalculateSpellDuration(m_spellProto, m_effIndex, target); + damage = caster->CalculateSpellDamage(m_spellProto,m_effIndex,m_currentBasePoints,target); if (!damage && castItem && castItem->GetItemSuffixFactor()) { @@ -432,11 +430,24 @@ m_isRemovedOnShapeLost(true), m_in_use(0), m_deleted(false) } } - if(m_maxduration == -1 || m_isPassive && m_spellProto->DurationIndex == 0) - m_permanent = true; + + + SetModifier(AuraType(m_spellProto->EffectApplyAuraName[eff]), damage, m_spellProto->EffectAmplitude[eff], m_spellProto->EffectMiscValue[eff]); Player* modOwner = caster ? caster->GetSpellModOwner() : NULL; + // Apply periodic time mod + if(modOwner && m_modifier.periodictime) + modOwner->ApplySpellMod(GetId(), SPELLMOD_ACTIVATION_TIME, m_modifier.periodictime); + + if (!caster) + m_maxduration = target->CalculateSpellDuration(m_spellProto, m_effIndex, target, m_modifier.periodictime); + else + m_maxduration = caster->CalculateSpellDuration(m_spellProto, m_effIndex, target, m_modifier.periodictime); + + if(m_maxduration == -1 || m_isPassive && m_spellProto->DurationIndex == 0) + m_permanent = true; + if(!m_permanent && modOwner) { modOwner->ApplySpellMod(GetId(), SPELLMOD_DURATION, m_maxduration); @@ -449,12 +460,6 @@ m_isRemovedOnShapeLost(true), m_in_use(0), m_deleted(false) sLog.outDebug("Aura: construct Spellid : %u, Aura : %u Duration : %d Target : %d Damage : %d", m_spellProto->Id, m_spellProto->EffectApplyAuraName[eff], m_maxduration, m_spellProto->EffectImplicitTargetA[eff],damage); - SetModifier(AuraType(m_spellProto->EffectApplyAuraName[eff]), damage, m_spellProto->EffectAmplitude[eff], m_spellProto->EffectMiscValue[eff]); - - // Apply periodic time mod - if(modOwner && m_modifier.periodictime) - modOwner->ApplySpellMod(GetId(), SPELLMOD_ACTIVATION_TIME, m_modifier.periodictime); - // Start periodic on next tick or at aura apply if (!(m_spellProto->AttributesEx5 & SPELL_ATTR_EX5_START_PERIODIC_AT_APPLY)) m_periodicTimer += m_modifier.periodictime; @@ -5934,7 +5939,7 @@ void Aura::HandleShapeshiftBoosts(bool apply) break; case FORM_SHADOW: spellId1 = 49868; - + spellId2 = 71167; if(m_target->GetTypeId() == TYPEID_PLAYER) // Spell 49868 have same category as main form spell and share cooldown ((Player*)m_target)->RemoveSpellCooldown(49868); break; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 6608963..9383255 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -11570,7 +11570,7 @@ int32 Unit::CalculateSpellDamage(SpellEntry const* spellProto, SpellEffectIndex return value; } -int32 Unit::CalculateSpellDuration(SpellEntry const* spellProto, SpellEffectIndex effect_index, Unit const* target) +int32 Unit::CalculateSpellDuration(SpellEntry const* spellProto, SpellEffectIndex effect_index, Unit const* target, uint32 &periodicTime) { Player* unitPlayer = (GetTypeId() == TYPEID_PLAYER) ? (Player*)this : NULL; @@ -11588,6 +11588,20 @@ int32 Unit::CalculateSpellDuration(SpellEntry const* spellProto, SpellEffectInde if (duration > 0) { + if (periodicTime) + { + Unit::AuraList const& mModByHaste = GetAurasByType(SPELL_AURA_MOD_PERIODIC_DURATION_OF_HASTE); + for(Unit::AuraList::const_iterator i = mModByHaste.begin(); i != mModByHaste.end(); ++i) + { + if (!(*i)->isAffectedOnSpell(spellProto)) + continue; + + int32 ticksNum = duration / periodicTime ; + periodicTime = int32(GetFloatValue(UNIT_MOD_CAST_SPEED) * periodicTime); + duration = periodicTime * ticksNum; + break; + } + } int32 mechanic = GetEffectMechanic(spellProto, effect_index); // Find total mod value (negative bonus) int32 durationMod_always = target->GetTotalAuraModifierByMiscValue(SPELL_AURA_MECHANIC_DURATION_MOD, mechanic); diff --git a/src/game/Unit.h b/src/game/Unit.h index b566f0e..8ca7dd1 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -1756,7 +1756,7 @@ class MANGOS_DLL_SPEC Unit : public WorldObject uint32 CalcNotIgnoreAbsorbDamage( uint32 damage, SpellSchoolMask damageSchoolMask, SpellEntry const* spellInfo = NULL); uint32 CalcNotIgnoreDamageRedunction( uint32 damage, SpellSchoolMask damageSchoolMask); - int32 CalculateSpellDuration(SpellEntry const* spellProto, SpellEffectIndex effect_index, Unit const* target); + int32 CalculateSpellDuration(SpellEntry const* spellProto, SpellEffectIndex effect_index, Unit const* target, uint32 &periodicTime); float CalculateLevelPenalty(SpellEntry const* spellProto) const; void addFollower(FollowerReference* pRef) { m_FollowingRefManager.insertFirst(pRef); } note: currently existing small problem with Vampiric Touch - it's dummy auras doesn't have periodic timer so they are not affected by haste and not removed at the same time with Vampiric Touch DoT =\\
  4. What bug does the patch fix? What features does the patch add? If the target has the Sacred Shield effect, Flash of Light heal an additional 100% over 12 sec. For which repository revision was the patch created? revision 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=11287 Who has been writing this patch? Please include either forum user names or email addresses. Myself DB part INSERT INTO spell_proc_event VALUES (58597 , 0, 10, 1073741824, 0, 0, 32768, 0, 0, 100, 0); Core part diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index a43c520..4fb03a6 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5864,6 +5910,19 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu basepoints0 = GetAttackTime(BASE_ATTACK) * int32(ap*0.022f + 0.044f * holy) / 1000; break; } + // Sacred Shield proc Flash of Light HoT + if ( dummySpell->Id == 58597 ) + { + Unit* caster = triggeredByAura->GetCaster(); + + if ( caster && pVictim && caster->GetGUID() == pVictim->GetGUID() ) + { + triggered_spell_id = 66922; + basepoints0 = int32( damage / 12 ); + target = this; + } + break; + } // Sacred Shield if (dummySpell->SpellFamilyFlags & UI64LIT(0x0008000000000000)) { Sorry for the name of the topic. I realised my mistake after posting new thread.
  5. That thread gave me absolutely no answers to my question. I'm not asking why DK's have no talent points, I'm asking how to change the Mangos code to have them receive talent points like every other class based on their level, ie. they would start with 46 talent points at lvl 55.
  6. Very old problem. Tryed to fix this month' ago (http://getmangos.eu/community/viewtopic.php?id=654). Just noticed it again but because the system has changed here is a new (simple) fix. Problem is that Unit::canReachWithAttack is used PetAI::Update to determine wheather a pet is close enough to attack or not. CanReachWithAttack uses UNIT_FIELD_COMBATREACH for calculation, witch can be 1 or lower for normal sized pets. In TargetedMovementGenerator<T>::Update it is checked if the distance is greater RATE_TARGET_POS_RECALCULATION_RANGE (+objsize...). As this is 1.5 by default there is the case, that the pet's TMG targetlocation is not updatet, but the pet can't reach the target with the meleeattack. CanReachWithAttack is only used for PetAI, so I think this is maybe outdatet and should not be used anymore!? In all other cases IsWithinDistInMap(victim, ATTACK_DISTANCE) is used, so that we have a fixed meleerange of 5. Patch: http://github.com/pasdVn/mangos/commit/d5861030bfe33643b4bccc35a4efbcef2c566e54 Other sollution would be to limit the range to RATE_TARGET_POS_RECALCULATION_RANGE (as a minimum) in canReachWithAttack pasdVn
  7. @madmax76, read this http://getmangos.eu/community/showthread.php?p=46139#post46139 and the post below
  8. Using the search engine would be a great idea, with it you find people asking the same things a few days before. An for the best, there ist already an answer. http://getmangos.eu/community/viewtopic.php?id=15484
  9. A Donators List already exists, actually its the View Forum Leaderss list but there is a Donators group in there already. I just think it would be nice to have the option to choose which of my earned "titles" to display on the forums. Just like when running around in the MaNGOS world, sometimes I want other testers/developers on my server to see me as a <GM> sometimes I want them to see me as a normal user
  10. Bump since new post in Core modification.
  11. Good help here. http://getmangos.eu/community/showthread.php?13676-Patch-Auction-House-Bot-(Xeross-Branch)&p=113215&viewfull=1#post113215 (page 2). I don't get any messages when checking or applying the patch but it works. Maybe my version of GIT is the reason since it's an older Windows GUI version. Compiled the latest core at the time of this posting with the patch applied and it seemed to work fine. If I don't update my post it's probably working once I run the updated server. I just hope AHBot buys items put up for auction this time, didn't work with my last core build. Edit: Haven't tested selling but it worked with the latest core at the time I posted this.
  12. once you can explain wth this has to do with "Forum Feedback & Help" then ill open your thread again.......
  13. Confirmed here, in [9134] It would be interesting, because now, with patch Druid Forms - cosmetics, tauren shows the color they have, but cannot change in barbershop. They remain with the color they had when was created. Is there any fix over there?
  14. http://getmangos.eu/community/showthread.php?13429-[Fix]-Don-t-allow-enter-an-instance-while-raid-is-in-combat like here
  15. +1, he has proven to have extraordinary skills, especially when it comes to debugging (remember that -Crash-Game-event-loading&highlight=7582"]bad memory corruption bug we had? )
  16. Hello everyone.. I think with my self for a few days, and i decide to write, =), i want to make one question to Mangos Developers and one to everyone that will see this.. Why we don't begin a bug's patch collection? everybody post some web, forum or whathever, where we can find that patch and apply to our own core? Exemple: its a Mangos Member KAPATEJIb http://getmangos.eu/community/member.php?u=342 they made i lot corrections like, mind fly, mind sear, holy nova, and anothers... I know that there are other corrections made for other members and many members like me want find them and enjoy them! So, if everyone post something, only bug corrections, not add-patchs like ah-bots, we'll have a great patch collection to make our core much more functional! Second: Why Mangos Developers don't include those corrections into the official core? Since those corrections are in agreement with the official game`s functionality? I hope helped, and one more thing, thanks for the great job. Mangos is great. Thanks.
  17. The problem is you need the patch from this thread: http://getmangos.eu/community/viewtopic.php?id=1466&highlight=parasitic
  18. they should be in their corresponding topics in http://getmangos.eu/community/viewforum.php?id=38 (mostly ones under review) if the patch is outdated, you can request one for the current mangos version in that topic and they will update the patch
  19. Oh, I didn't know that. So I have to "pull" ...github... sharedbots instead of master ! I finally understood something about Github ! )) EDIT : all merged, nothing to edit and working fine ! Blueboy, why did you told me to get playerbot from playerbot/mangos.git ? EDIT2 : hmm not working fine finally... EDIT3 : is it possible to have an updated sharedbot ? or is there a way to do that without messing up
  20. I see the same, not possible to Edit post and edit Subject field for topic in Patches ... Accepted forum.
  21. Actually ... * All those steps should be already done by "autoreconf", no need to perform them manually * I have no problem building mangos on Debian testing (squeeze) 64bit with regular steps * True, the problem can appear on older systems The correct solution for older systems is to install a newer OpenSSL libraries. Removing the check or going around it can lead to API errors, broken compiles, and other (even nasty) things. Come on, typing one line of wget followed by one line of dpkg isn't that hard. edit: I was referring to this post - http://getmangos.eu/community/viewtopic.php?id=13651&p=120520&viewfull=1#post120520
  22. Mariano, 10198 seems to me is branch 400 (the last version - La ante ultima versión) http://github.com/mangos/mangos/commit/91657f26604bec6d6242243ff820b278b3f3e6d2 and have no support.. See (No tiene soporte por estar en desarrollo constante es beta o alpha no estoy seguro) http://getmangos.eu/community/viewtopic.php?id=14585 http://getmangos.eu/community/viewtopic.php?id=14597 But just in case... you update data base ? Por las dudas... actualisaste la base de datos ? http://github.com/mangos/mangos/tree/master/sql/updates/
  23. Thanks! so now i need just to add this to Trinity/Mangos Core sourcer and compile it? :)
  24. Did I? I am giving you a solution but seems you don't accept it, I think it is obvious and everyone can see it in your reply. I am not saying mine is the best, I am saying if you can have a better solution we are welcome you to provide one, but just don't do a double work. You just tough and not understanding, and I was trying to explain to you there is a localization feature supported by Mangos as well as Playerbot. see...... it is not my attitude problem..... it is your attitude. I already explained on page 14 about how playerbot support localization http://getmangos.eu/community/showthread.php?8238-Playerbot/page14 so, you want the specific piece of the code in mangos where it looks for additional dbc struct LocalData { explicit LocalData(uint32 build) : main_build(build), availableDbcLocales(0xFFFFFFFF),checkedDbcLocaleBuilds(0) {} uint32 main_build; // bitmasks for index of fullLocaleNameList uint32 availableDbcLocales; uint32 checkedDbcLocaleBuilds; }; template<class T> inline void LoadDBC(LocalData& localeData,barGoLink& bar, StoreProblemList& errlist, DBCStorage<T>& storage, const std::string& dbc_path, const std::string& filename) { // compatibility format and C++ structure sizes assert(DBCFileLoader::GetFormatRecordSize(storage.GetFormat()) == sizeof(T) || LoadDBC_assert_print(DBCFileLoader::GetFormatRecordSize(storage.GetFormat()),sizeof(T),filename)); std::string dbc_filename = dbc_path + filename; if(storage.Load(dbc_filename.c_str())) { bar.step(); for(uint8 i = 0; fullLocaleNameList[i].name; ++i) { if (!(localeData.availableDbcLocales & (1 << i))) continue; std::string dbc_dir_loc = dbc_path + fullLocaleNameList[i].name + "/"; if (!(localeData.checkedDbcLocaleBuilds & (1 << i))) { localeData.checkedDbcLocaleBuilds |= (1<<i);// mark as checked for speedup next checks uint32 build_loc = ReadDBCBuild(dbc_dir_loc,fullLocaleNameList[i].name); if(localeData.main_build != build_loc) { localeData.availableDbcLocales &= ~(1<<i); // mark as not available for speedup next checks // exist but wrong build if (build_loc) { std::string dbc_filename_loc = dbc_path + fullLocaleNameList[i].name + "/" + filename; char buf[200]; snprintf(buf,200," (exist, but DBC locale subdir %s have DBCs for build %u instead expected build %u, it and other DBC from subdir skipped)",fullLocaleNameList[i].name,build_loc,localeData.main_build); errlist.push_back(dbc_filename_loc + buf); } continue; } } std::string dbc_filename_loc = dbc_path + fullLocaleNameList[i].name + "/" + filename; if(!storage.LoadStringsFrom(dbc_filename_loc.c_str())) localeData.availableDbcLocales &= ~(1<<i); // mark as not available for speedup next checks } } else { // sort problematic dbc to (1) non compatible and (2) non-existed FILE * f=fopen(dbc_filename.c_str(),"rb"); if(f) { char buf[100]; snprintf(buf,100," (exist, but have %d fields instead " SIZEFMTD ") Wrong client version DBC file?",storage.GetFieldCount(),strlen(storage.GetFormat())); errlist.push_back(dbc_filename + buf); fclose(f); } else errlist.push_back(dbc_filename); } } If there is another set of DBC then when mangos calls LoadDBCStores() it will shift by availableDbcLocales on proper index. index are: 0 = English; 1 = Korean; 2 = French; 3 = German; 4 = Chinese; 5 = Taiwanese; 6 = Spanish; 7 = Spanish Mexico; 8 = Russian so your Fr DBC will settle on index 2. Anyway, I am done, now I really quit from this project, although I already stopped updating for like few months.
  25. What bug does the patch fix? What features does the patch add? When caster's Flame Shock is dispelled their spell casting speed is increased by 10/20/30% for 6 sec if they have Lava Flows talent. For which repository revision was the patch created? revision 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=11317 Who has been writing this patch? Please include either forum user names or email addresses. by myself Unit.cpp, RemoveSingleAuraDueToSpellByDispel() // backfire damage and silence dispeler->CastCustomSpell(dispeler, 31117, &damage, NULL, NULL, true, NULL, NULL,casterGUID); } } + // Lava Flows + else if ( spellEntry->SpellFamilyName == SPELLFAMILY_SHAMAN && ( spellEntry->SpellFamilyFlags & UI64LIT(0x10000000) ) ) + { + Unit* caster = NULL; + uint32 triggeredSpell = 0; + + if ( Aura* dotAura = GetAura( SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_SHAMAN, UI64LIT(0x10000000), 0x00000000, casterGUID ) ) + caster = dotAura->GetCaster(); + + if ( caster && !caster->isDead() ) + { + Unit::AuraList const& auras = caster->GetAurasByType(SPELL_AURA_DUMMY); + + for ( Unit::AuraList::const_iterator i = auras.begin(); i != auras.end(); i++ ) + { + switch((*i)->GetId()) + { + case 51480: + { + triggeredSpell = 64694; + break; + } + case 51481: + { + triggeredSpell = 65263; + break; + } + case 51482: + { + triggeredSpell = 65264; + break; + } + default: + continue; + } + break; + } + } + // Remove spell auras from stack + RemoveSingleSpellAurasByCasterSpell(spellId, casterGUID, AURA_REMOVE_BY_DISPEL); + + // Haste + if( triggeredSpell ) + caster->CastSpell( caster, triggeredSpell, true ); + + } else RemoveSingleSpellAurasByCasterSpell(spellId, casterGUID, AURA_REMOVE_BY_DISPEL); }
×
×
  • 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