*Cleanup comments, update THANKS (no idea if I missed anybody o_O), added Themris' Warlock's Death Coil healing and damage fix, corrected some typos
--HG-- branch : trunk
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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))
|
||||
|
||||
+2
-13
@@ -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;
|
||||
}␍
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
+1
-2
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 &);
|
||||
|
||||
@@ -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;
|
||||
|
||||
+1
-1
@@ -15084,4 +15084,4 @@ void CharmInfo::SetIsReturning(bool val)
|
||||
bool CharmInfo::IsReturning()
|
||||
{
|
||||
return m_isReturning;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user