Arthorius
-
Posts
10 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Profiles
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Posts posted by Arthorius
-
-
added checks for attempt to remove command|reaction buttons
-
And how possible restore normal command icon for attack for example if you drop it?
player can't drop action buttons from bar, only spell buttons.
-
This patch maybe fix this bug? :
Sometimes your pet Die and when you go logout pet action bar(skill's pet change position)
Maybe it's not big bug beacouse you can fast set skill's pet.
yes, this patch fixes this bug.
-
Why you see that it broken? I not see any problems with current way work. rejected.
Player can move spell to action slot(1-3,8-10) and action to spell slot (4-7). Therefore it is necessary to save all slots on the action bar.
-
What bug does the patch fix? What features does the patch add?
fix pet action bar saving and loading.
For which repository revision was the patch created?
8967
Who has been writing this patch? Please include either forum user names or email addresses.
Arthorius
http://filebeam.com/e3189d1f61705b159e2f9f9ab3b66b40
diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp index 1a9af67..063a00d 100644 --- a/src/game/Pet.cpp +++ b/src/game/Pet.cpp @@ -414,8 +414,7 @@ void Pet::SavePetToDB(PetSaveMode mode) << curmana << ", " << GetPower(POWER_HAPPINESS) << ", '"; - // save only spell slots from action bar - for(uint32 i = ACTION_BAR_INDEX_PET_SPELL_START; i < ACTION_BAR_INDEX_PET_SPELL_END; ++i) + for(uint32 i = ACTION_BAR_INDEX_START; i < ACTION_BAR_INDEX_END; ++i) { ss << uint32(m_charmInfo->GetActionBarEntry(i)->GetType()) << " " << uint32(m_charmInfo->GetActionBarEntry(i)->GetAction()) << " "; diff --git a/src/game/PetHandler.cpp b/src/game/PetHandler.cpp index 57b0489..4d6c2b3 100644 --- a/src/game/PetHandler.cpp +++ b/src/game/PetHandler.cpp @@ -341,6 +341,12 @@ void WorldSession::HandlePetSetAction( WorldPacket & recv_data ) if(position >= MAX_UNIT_ACTION_BAR_INDEX) return; + // in the normal case, comand and reaction buttons can only be moved, not removed + // at moving count ==2, at removing count == 1 + // ignore attempt to remove command|reaction buttons (not possible at normal case) + if((act_state == ACT_COMMAND || act_state == ACT_REACTION) && count == 1) + return; + //if it's act for spell (en/disable/cast) and there is a spell given (0 = remove spell) which pet doesn't know, don't add if(!((act_state == ACT_ENABLED || act_state == ACT_DISABLED || act_state == ACT_PASSIVE) && spell_id && !pet->HasSpell(spell_id))) { diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index b5112b6..ed15152 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -11631,12 +11631,12 @@ void CharmInfo::LoadPetActionBar(const std::string& data ) Tokens tokens = StrSplit(data, " "); - if (tokens.size() != (ACTION_BAR_INDEX_PET_SPELL_END-ACTION_BAR_INDEX_PET_SPELL_START)*2) + if (tokens.size() != (ACTION_BAR_INDEX_END-ACTION_BAR_INDEX_START)*2) return; // non critical, will reset to default int index; Tokens::iterator iter; - for(iter = tokens.begin(), index = ACTION_BAR_INDEX_PET_SPELL_START; index < ACTION_BAR_INDEX_PET_SPELL_END; ++iter, ++index ) + for(iter = tokens.begin(), index = ACTION_BAR_INDEX_START; index < ACTION_BAR_INDEX_END; ++iter, ++index ) { // use unsigned cast to avoid sign negative format use at long-> ActiveStates (int) conversion uint8 type = atol((*iter).c_str());
-
What bug does the patch fix? What features does the patch add?
Implement Call of the Elements, Call of the Ancestors, Call of the Spirits
For which repository revision was the patch created?
8967
Who has been writing this patch? Please include either forum user names or email addresses.
Arthorius
http://filebeam.com/b07d6a41c23d318fb6b947a81c198d27
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index e89b34f..5872cc6 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -5667,6 +5667,15 @@ void Player::removeActionButton(uint8 button) sLog.outDetail( "Action Button '%u' Removed from Player '%u'", button, GetGUIDLow() ); } +uint32 Player::GetActionByActionButton(uint8 button) +{ + ActionButtonList::iterator buttonItr = m_actionButtons.find(button); + if (buttonItr==m_actionButtons.end()) + return 0; + + return buttonItr->second.GetAction(); +} + bool Player::SetPosition(float x, float y, float z, float orientation, bool teleport) { // prevent crash when a bad coord is sent by the client diff --git a/src/game/Player.h b/src/game/Player.h index e1b4a27..718d497 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -1657,6 +1657,7 @@ class MANGOS_DLL_SPEC Player : public Unit ActionButton* addActionButton(uint8 button, uint32 action, uint8 type); void removeActionButton(uint8 button); void SendInitialActionButtons() const; + uint32 GetActionByActionButton(uint8 button); PvPInfo pvpInfo; void UpdatePvP(bool state, bool ovrride=false); diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 9052f38..d91af78 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -624,7 +624,7 @@ enum SpellEffects SPELL_EFFECT_SELF_RESURRECT = 94, SPELL_EFFECT_SKINNING = 95, SPELL_EFFECT_CHARGE = 96, - SPELL_EFFECT_97 = 97, + SPELL_EFFECT_SUMMON_ALL_TOTEMS = 97, SPELL_EFFECT_KNOCK_BACK = 98, SPELL_EFFECT_DISENCHANT = 99, SPELL_EFFECT_INEBRIATE = 100, diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index a130bfc..419c7b4 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -494,6 +494,10 @@ void Spell::FillTargetMap() if(IsAreaAuraEffect(m_spellInfo->Effect[i])) AddUnitTarget(m_caster, i); + // SPELL_EFFECT_SUMMON_ALL_TOTEMS not have any implicit target + if(m_spellInfo->Effect[i] == SPELL_EFFECT_SUMMON_ALL_TOTEMS) + AddUnitTarget(m_caster, i); + std::list<Unit*> tmpUnitMap; // TargetA/TargetB dependent from each other, we not switch to full support this dependences diff --git a/src/game/Spell.h b/src/game/Spell.h index 0965114..2666fd5 100644 --- a/src/game/Spell.h +++ b/src/game/Spell.h @@ -304,6 +304,7 @@ class Spell void EffectPlayerPull(uint32 i); void EffectDispelMechanic(uint32 i); void EffectSummonDeadPet(uint32 i); + void EffectSummonAllTotems(uint32 i); void EffectDestroyAllTotems(uint32 i); void EffectDurabilityDamage(uint32 i); void EffectSkill(uint32 i); diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index c899656..e79d5ab 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -154,7 +154,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectSelfResurrect, // 94 SPELL_EFFECT_SELF_RESURRECT &Spell::EffectSkinning, // 95 SPELL_EFFECT_SKINNING &Spell::EffectCharge, // 96 SPELL_EFFECT_CHARGE - &Spell::EffectUnused, // 97 SPELL_EFFECT_97 + &Spell::EffectSummonAllTotems, // 97 SPELL_EFFECT_SUMMON_ALL_TOTEMS &Spell::EffectKnockBack, // 98 SPELL_EFFECT_KNOCK_BACK &Spell::EffectDisEnchant, // 99 SPELL_EFFECT_DISENCHANT &Spell::EffectInebriate, //100 SPELL_EFFECT_INEBRIATE @@ -6540,6 +6540,31 @@ void Spell::EffectSummonDeadPet(uint32 /*i*/) pet->SavePetToDB(PET_SAVE_AS_CURRENT); } +void Spell::EffectSummonAllTotems(uint32 i) +{ + if(m_caster->GetTypeId() != TYPEID_PLAYER) + return; + + switch(m_spellInfo->Id) + { + case 66842: // Call of the Elements + case 66843: // Call of the Ancestors + case 66844: // Call of the Spirits + { + for(int32 slot = 0; slot != MAX_TOTEM; ++slot) + { + uint8 button = m_spellInfo->EffectMiscValue[i]+slot+132; + uint32 spell_id = ((Player*)m_caster)->GetActionByActionButton(button); + if(spell_id) + m_caster->CastSpell(unitTarget,spell_id,true); + } + break; + } + default: + break; + } +} + void Spell::EffectDestroyAllTotems(uint32 /*i*/) { int32 mana = 0;
-
updated to 5806
-
What bug does the patch fix? What features does the patch add?
Implement 4 pieces bonus
For which SubVersion revision was the patch created?
5734
Is there a thread in the bug report section? If yes, please add a link to the thread.
http://mangosproject.org/trac/ticket/3012
Who has been writing this patch? Please include either forum user names or email addresses.
Arthorius
Index: src/game/Unit.cpp =================================================================== --- src/game/Unit.cpp (revision 5734) +++ src/game/Unit.cpp (working copy) @@ -5050,6 +5050,14 @@ CastCustomSpell(this, 39373, &healamount, NULL, NULL, true, castItem, triggeredByAura); return; } + // Vestments of Faith (Priest Tier 3) - 4 pieces bonus + case 28809: + { + if (!pVictim || !pVictim->isAlive()) + return; + CastSpell(pVictim,28810,true,castItem,triggeredByAura,triggeredByAura->GetCasterGUID()); + return; + } } //Prayer of Mending
-
http://www.wowwiki.com/Seal_of_Justice
The Seal of Justice must stun the enemy about 4-5 times a minute.
It's 2 times a minute now.
UPDATE `spell_proc_event` SET `ppmRate`=5 WHERE `entry` IN (20164,31895);
[9274][patch] Call of the Elements, Call of the Ancestors, Call of the Spirits
in ... acceptedOld
Posted
strange typos
I think in this case correct