diff options
-rw-r--r-- | THANKS | 2 | ||||
-rw-r--r-- | sql/FULL/world_script_texts.sql | 8 | ||||
-rw-r--r-- | src/game/Pet.cpp | 1 | ||||
-rw-r--r-- | src/game/PetAI.cpp | 15 | ||||
-rw-r--r-- | src/game/PetAI.h | 2 | ||||
-rw-r--r-- | src/game/PetHandler.cpp | 9 | ||||
-rw-r--r-- | src/game/Player.cpp | 3 | ||||
-rw-r--r-- | src/game/SpellEffects.cpp | 10 | ||||
-rw-r--r-- | src/game/TargetedMovementGenerator.cpp | 7 | ||||
-rw-r--r-- | src/game/TargetedMovementGenerator.h | 1 | ||||
-rw-r--r-- | src/game/Unit.cpp | 2 | ||||
-rw-r--r-- | src/game/Unit.h | 2 |
12 files changed, 22 insertions, 40 deletions
@@ -54,4 +54,4 @@ Boogie, Necro, Thyros, simon, MrSmite, horogandris, Stryker, MaXiMiUS, kaell, totoro, Forgiven, Big, Oculus, Lorac, Nemesis, Epsik, iadus3, durotar, hoshie, fukifat, imbecile, Nafsih, Meldanor, Turok, Naturamen, Themris, Sundark, Azuritus, jotapdiez, EnderGT, Curuad, oc_redfox, rockzOr, Darkshines, -BlackYoghurt, McLovin, Gyullo, kaxap. +BlackYoghurt, McLovin, Gyullo, kaxap, Hawthorne. diff --git a/sql/FULL/world_script_texts.sql b/sql/FULL/world_script_texts.sql index 5027fcd96be..e8e8a0472ea 100644 --- a/sql/FULL/world_script_texts.sql +++ b/sql/FULL/world_script_texts.sql @@ -294,7 +294,7 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1` (1978,-1000346,'Look out, $N! Enemies ahead!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'kayra SAY_AMBUSH2'), (11856,-1000347,'We''re almost to the refuge! Let''s go.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'kayra SAY_END'), (11856,-1000348,'Ah...the wondrous sound of kodos. I love the way they make the ground shake... inspect the beast for me.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'kodo round SAY_SMEED_HOME_1'), - (11856,-1000349,'Hey, look out with that kodo! You had better inspect that beast before i give you credit!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'kodo round SAY_SMEED_HOME_2'), + (11856,-1000349,'Hey, look out with that kodo! You had better inspect that beast before I give you credit!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'kodo round SAY_SMEED_HOME_2'), (9453,-1000350,'That kodo sure is a beauty. Wait a minute, where are my bifocals? Perhaps you should inspect the beast for me.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'kodo round SAY_SMEED_HOME_3'), (18262,-1000351,'You, there! Hand over that moonstone and nobody gets hurt!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,1,0,0,'sprysprocket SAY_START'), (18588,-1000352,'%s takes the Southfury moonstone and escapes into the river. Follow her!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,3,0,0,'sprysprocket EMOTE_START'), @@ -317,7 +317,7 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1` (10646,-1000369,'Finally, free at last... I must be going now, thanks for helping me escape. I can get back to Freewind Post by myself.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,'lakota SAY_LAKO_END'), (3465,-1000370,'Stay close, $n. I''ll need all the help I can get to break out of here. Let''s go!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,1,'gilthares SAY_GIL_START'), (3465,-1000371,'At last! Free from Northwatch Hold! I need a moment to catch my breath...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,5,'gilthares SAY_GIL_AT_LAST'), - (3465,-1000372,'Now i feel better. Let''s get back to Ratchet. Come on, $n.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,23,'gilthares SAY_GIL_PROCEED'), + (3465,-1000372,'Now I feel better. Let''s get back to Ratchet. Come on, $n.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,23,'gilthares SAY_GIL_PROCEED'), (3465,-1000373,'Looks like the Southsea Freeboters are heavily entrenched on the coast. This could get rough.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,25,'gilthares SAY_GIL_FREEBOOTERS'), (3465,-1000374,'Help! $C attacking!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,'gilthares SAY_GIL_AGGRO_1'), (3465,-1000375,'$C heading this way fast! Time for revenge!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,0,'gilthares SAY_GIL_AGGRO_2'), @@ -329,7 +329,7 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1` (21027,-1000381,'I sense the tortured spirits, $n. They are this way, come quickly!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,1,'wilda SAY_WIL_START'), (21027,-1000382,'Watch out!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'wilda SAY_WIL_AGGRO1'), (21027,-1000383,'Naga attackers! Defend yourself!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'wilda SAY_WIL_AGGRO2'), - (21027,-1000384,'Grant me protection $n, i must break trough their foul magic!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'wilda SAY_WIL_PROGRESS1'), + (21027,-1000384,'Grant me protection $n, I must break trough their foul magic!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'wilda SAY_WIL_PROGRESS1'), (21027,-1000385,'The naga of Coilskar are exceptionally cruel to their prisoners. It is a miracle that I survived inside that watery prison for as long as I did. Earthmother be praised.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'wilda SAY_WIL_PROGRESS2'), (21027,-1000386,'Now we must find the exit.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'wilda SAY_WIL_FIND_EXIT'), (21027,-1000387,'Lady Vashj must answer for these atrocities. She must be brought to justice!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'wilda SAY_WIL_PROGRESS4'), @@ -1074,7 +1074,7 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1` -- -1 544 000 MAGTHERIDON'S LAIR INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES - (17257,-1544000,'Wretched, meddling insects. Release me and perhaps i will grant you a merciful death!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,10247,1,0,0,'magtheridon SAY_TAUNT1'), + (17257,-1544000,'Wretched, meddling insects. Release me and perhaps I will grant you a merciful death!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,10247,1,0,0,'magtheridon SAY_TAUNT1'), (17257,-1544001,'Vermin! Leeches! Take my blood and choke on it!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,10248,1,0,0,'magtheridon SAY_TAUNT2'), (17257,-1544002,'Illidan is an arrogant fool. I will crush him and reclaim Outland as my own.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,10249,1,0,0,'magtheridon SAY_TAUNT3'), (17257,-1544003,'Away, you mindless parasites. My blood is my own!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,10250,1,0,0,'magtheridon SAY_TAUNT4'), diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp index 1578bd5badd..2c4dfe225ef 100644 --- a/src/game/Pet.cpp +++ b/src/game/Pet.cpp @@ -78,7 +78,6 @@ void Pet::AddToWorld() AIM_Initialize(); } - // MrSmite 09-09-2009 PetAI_v1.1 // Prevent stuck pets when zoning. Pets default to "follow" when added to world // so we'll reset flags and let the AI handle things if (this->GetCharmInfo() && this->GetCharmInfo()->HasCommandState(COMMAND_FOLLOW)) diff --git a/src/game/PetAI.cpp b/src/game/PetAI.cpp index db7270bf553..f28cf2ecc93 100644 --- a/src/game/PetAI.cpp +++ b/src/game/PetAI.cpp @@ -70,7 +70,6 @@ void PetAI::_stopAttack() return; } - // MrSmite 09-05-2009 PetAI_v1.0 m_creature->AttackStop(); me->GetCharmInfo()->SetIsCommandAttack(false); HandleReturnMovement(); @@ -100,8 +99,6 @@ void PetAI::UpdateAI(const uint32 diff) } else if(owner && m_creature->GetCharmInfo()) //no victim { - // MrSmite 05-09-2009 PetAI_v1.0 - Unit *nextTarget = SelectNextTarget(); if (nextTarget) @@ -165,7 +162,7 @@ void PetAI::UpdateAI(const uint32 diff) Spell *spell = new Spell(m_creature, spellInfo, false, 0); - // MrSmite 09-05-2009 PetAI_v1.0 - Fix to allow pets on STAY to autocast + // Fix to allow pets on STAY to autocast if (inCombat && _CanAttack(me->getVictim()) && spell->CanAutoCast(me->getVictim())) { targetSpellStore.push_back(std::make_pair<Unit*, Spell*>(m_creature->getVictim(), spell)); @@ -269,8 +266,6 @@ void PetAI::UpdateAllies() void PetAI::KilledUnit(Unit *victim) { - // MrSmite 09-09-2009 PetAI_v1.2 - // Called from Unit::Kill() in case where pet or owner kills something // if owner killed this victim, pet may still be attacking something else if (me->getVictim() && me->getVictim() != victim) @@ -290,7 +285,6 @@ void PetAI::KilledUnit(Unit *victim) void PetAI::AttackStart(Unit *target) { - // MrSmite 09-05-2009 PetAI_v1.0 // Overrides Unit::AttackStart to correctly evaluate Pet states // Check all pet states to decide if we can attack this target @@ -311,8 +305,6 @@ void PetAI::AttackStart(Unit *target) Unit *PetAI::SelectNextTarget() { - // MrSmite 09-05-2009 PetAI_v1.0 - // Provides next target selection after current target death // Passive pets don't do next target selection @@ -334,8 +326,6 @@ Unit *PetAI::SelectNextTarget() void PetAI::HandleReturnMovement() { - // MrSmite 09-05-2009 PetAI_v1.0 - // Handles moving the pet back to stay or owner if (me->GetCharmInfo()->HasCommandState(COMMAND_STAY)) @@ -402,7 +392,6 @@ void PetAI::DoAttack(Unit *target, bool chase) void PetAI::MovementInform(uint32 moveType, uint32 data) { - // MrSmite 09-05-2009 PetAI_v1.0 // Receives notification when pet reaches stay or follow owner switch (moveType) { @@ -467,4 +456,4 @@ bool PetAI::_CanAttack(Unit *target) // default, though we shouldn't ever get here return false; -}
\ No newline at end of file +} diff --git a/src/game/PetAI.h b/src/game/PetAI.h index b9059ad869e..226aa493202 100644 --- a/src/game/PetAI.h +++ b/src/game/PetAI.h @@ -39,7 +39,6 @@ class TRINITY_DLL_DECL PetAI : public CreatureAI void UpdateAI(const uint32); static int Permissible(const Creature *); - // MrSmite 09-05-2009 PetAI_v1.0 void KilledUnit(Unit *victim); void AttackStart(Unit *target); void MovementInform(uint32 moveType, uint32 data); @@ -56,7 +55,6 @@ class TRINITY_DLL_DECL PetAI : public CreatureAI std::set<uint64> m_AllySet; uint32 m_updateAlliesTimer; - // MrSmite 09-05-2009 PetAI_v1.0 Unit *SelectNextTarget(); void HandleReturnMovement(); void DoAttack(Unit *target, bool chase); diff --git a/src/game/PetHandler.cpp b/src/game/PetHandler.cpp index 90a5a69d1b6..c9b07823d5f 100644 --- a/src/game/PetHandler.cpp +++ b/src/game/PetHandler.cpp @@ -96,7 +96,7 @@ void WorldSession::HandlePetActionHelper(Unit *pet, uint64 guid1, uint16 spellid pet->InterruptNonMeleeSpells(false); pet->GetMotionMaster()->MoveIdle(); charmInfo->SetCommandState( COMMAND_STAY ); - // MrSmite 09-05-2009 PetAI_v1.0 + charmInfo->SetIsCommandAttack(false); charmInfo->SetIsAtStay(true); charmInfo->SetIsFollowing(false); @@ -108,7 +108,7 @@ void WorldSession::HandlePetActionHelper(Unit *pet, uint64 guid1, uint16 spellid pet->InterruptNonMeleeSpells(false); pet->GetMotionMaster()->MoveFollow(_player,PET_FOLLOW_DIST,pet->GetFollowAngle()); charmInfo->SetCommandState( COMMAND_FOLLOW ); - // MrSmite 09-05-2009 PetAI_v1.0 + charmInfo->SetIsCommandAttack(false); charmInfo->SetIsAtStay(false); charmInfo->SetIsReturning(true); @@ -150,7 +150,6 @@ void WorldSession::HandlePetActionHelper(Unit *pet, uint64 guid1, uint16 spellid if(pet->GetTypeId() != TYPEID_PLAYER && ((Creature*)pet)->IsAIEnabled) { - // MrSmite 09-05-2009 PetAI_v1.0 charmInfo->SetIsCommandAttack(true); charmInfo->SetIsAtStay(false); charmInfo->SetIsFollowing(false); @@ -172,7 +171,6 @@ void WorldSession::HandlePetActionHelper(Unit *pet, uint64 guid1, uint16 spellid if(pet->getVictim() && pet->getVictim() != TargetUnit) pet->AttackStop(); - // MrSmite 09-05-2009 PetAI_v1.0 charmInfo->SetIsCommandAttack(true); charmInfo->SetIsAtStay(false); charmInfo->SetIsFollowing(false); @@ -212,7 +210,6 @@ void WorldSession::HandlePetActionHelper(Unit *pet, uint64 guid1, uint16 spellid switch(spellid) { case REACT_PASSIVE: //passive - // MrSmite 09-05-2009 PetAI_v1.0 pet->AttackStop(); case REACT_DEFENSIVE: //recovery @@ -251,7 +248,6 @@ void WorldSession::HandlePetActionHelper(Unit *pet, uint64 guid1, uint16 spellid if(!pet->HasSpell(spellid) || IsPassiveSpell(spellid)) return; - // MrSmite 09-08-2009 PetAI_v1.1 // Clear the flags as if owner clicked 'attack'. AI will reset them // after AttackStart, even if spell failed if (pet->GetCharmInfo()) @@ -330,7 +326,6 @@ void WorldSession::HandlePetActionHelper(Unit *pet, uint64 guid1, uint16 spellid spell->finish(false); delete spell; - // MrSmite 09-08-2009 PetAI_v1.1 // reset specific flags in case of spell fail. AI will reset other flags if (pet->GetCharmInfo()) pet->GetCharmInfo()->SetIsCommandAttack(false); diff --git a/src/game/Player.cpp b/src/game/Player.cpp index d25f27fff66..20cc3265e09 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -17962,8 +17962,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc // prevent stealth flight //RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_TALK); - //Hawthorne - Instant Taxi Option - if ((bool)sWorld.getConfig(CONFIG_INSTANT_TAXI)) + if (sWorld.getConfig(CONFIG_INSTANT_TAXI)) { TaxiNodesEntry const* lastnode = sTaxiNodesStore.LookupEntry(nodes[nodes.size()-1]); m_taxi.ClearTaxiDestinations(); diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 208ae3759f8..a0ca82d7674 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -2744,7 +2744,12 @@ void Spell::EffectHealthLeech(uint32 i) if(Player *modOwner = m_caster->GetSpellModOwner()) modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_MULTIPLE_VALUE, multiplier); - int32 new_damage = int32(damage*multiplier); + // Do not apply multiplier to damage if it's Death Coil + int32 new_damage; + if (m_spellInfo->SpellFamilyFlags[0] & 0x80000) + new_damage = damage; + else + int32 new_damage = int32(damage*multiplier); uint32 curHealth = unitTarget->GetHealth(); new_damage = m_caster->SpellNonMeleeDamageLog(unitTarget, m_spellInfo->Id, new_damage ); if(curHealth < new_damage) @@ -2752,6 +2757,9 @@ void Spell::EffectHealthLeech(uint32 i) if(m_caster->isAlive()) { + // Insead add it just to healing if it's Death Coil + if (m_spellInfo->SpellFamilyFlags[0] & 0x80000) + new_damage = int32(new_damage*multiplier); new_damage = m_caster->SpellHealingBonus(m_caster, m_spellInfo, new_damage, HEAL); m_caster->DealHeal(m_caster, uint32(new_damage), m_spellInfo); } diff --git a/src/game/TargetedMovementGenerator.cpp b/src/game/TargetedMovementGenerator.cpp index 061e875a91c..c14ed5ba75e 100644 --- a/src/game/TargetedMovementGenerator.cpp +++ b/src/game/TargetedMovementGenerator.cpp @@ -22,7 +22,7 @@ #include "TargetedMovementGenerator.h" #include "Errors.h" #include "Creature.h" -#include "CreatureAI.h" // MrSmite 09-05-2009 PetAI_v1.0 +#include "CreatureAI.h" #include "DestinationHolderImp.h" #include "World.h" @@ -238,7 +238,6 @@ TargetedMovementGenerator<T>::Update(T &owner, const uint32 & time_diff) } } - // MrSmite 09-05-2009 PetAI_v1.0 // Implemented for PetAI to handle resetting flags when pet owner reached if (i_destinationHolder.HasArrived()) MovementInform(owner); @@ -256,17 +255,15 @@ TargetedMovementGenerator<T>::GetTarget() const template<class T> void TargetedMovementGenerator<T>::MovementInform(T &unit) { - // MrSmite 09-05-2009 PetAI_v1.0 } template <> void TargetedMovementGenerator<Creature>::MovementInform(Creature &unit) { - // MrSmite 09-05-2009 PetAI_v1.0 // Pass back the GUIDLow of the target. If it is pet's owner then PetAI will handle unit.AI()->MovementInform(TARGETED_MOTION_TYPE, i_target.getTarget()->GetGUIDLow()); } -template void TargetedMovementGenerator<Player>::MovementInform(Player&); // MrSmite 09-05-2009 PetAI_v1.0 - Not implemented for players +template void TargetedMovementGenerator<Player>::MovementInform(Player&); // Not implemented for players template TargetedMovementGenerator<Player>::TargetedMovementGenerator(Unit &target, float offset, float angle); template TargetedMovementGenerator<Creature>::TargetedMovementGenerator(Unit &target, float offset, float angle); template bool TargetedMovementGenerator<Player>::_setTargetLocation(Player &); diff --git a/src/game/TargetedMovementGenerator.h b/src/game/TargetedMovementGenerator.h index a2b09c822c8..c6e7ef05812 100644 --- a/src/game/TargetedMovementGenerator.h +++ b/src/game/TargetedMovementGenerator.h @@ -49,7 +49,6 @@ class TRINITY_DLL_SPEC TargetedMovementGenerator bool Update(T &, const uint32 &); MovementGeneratorType GetMovementGeneratorType() { return TARGETED_MOTION_TYPE; } - // MrSmite 09-05-2009 PetAI_v1.0 void MovementInform(T &); Unit* GetTarget() const; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 1432898ae1d..889633dccf6 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -15084,4 +15084,4 @@ void CharmInfo::SetIsReturning(bool val) bool CharmInfo::IsReturning() { return m_isReturning; -}
\ No newline at end of file +} diff --git a/src/game/Unit.h b/src/game/Unit.h index bd1abcc20e5..4a62568f613 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -1011,7 +1011,6 @@ struct CharmInfo CharmSpellEntry* GetCharmSpell(uint8 index) { return &(m_charmspells[index]); } - // MrSmite 09-05-2009 PetAI_v1.0 void SetIsCommandAttack(bool val); bool IsCommandAttack(); void SetIsAtStay(bool val); @@ -1036,7 +1035,6 @@ struct CharmInfo //for restoration after charmed ReactStates m_oldReactState; - // MrSmite 09-05-2009 PetAI_v1.0 bool m_isCommandAttack; bool m_isAtStay; bool m_isFollowing; |