diff options
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 4 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Handlers/TaxiHandler.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Server/WorldSession.h | 1 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.h | 1 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 11 |
5 files changed, 23 insertions, 3 deletions
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index c31e144fbda..fb30ce98f4c 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -751,11 +751,11 @@ enum SpellEffects SPELL_EFFECT_QUEST_FAIL = 147, SPELL_EFFECT_148 = 148, SPELL_EFFECT_CHARGE_DEST = 149, - SPELL_EFFECT_150 = 150, + SPELL_EFFECT_QUEST_START = 150, SPELL_EFFECT_TRIGGER_SPELL_2 = 151, SPELL_EFFECT_152 = 152, SPELL_EFFECT_153 = 153, - SPELL_EFFECT_154 = 154, + SPELL_EFFECT_DISCOVER_TAXI = 154, SPELL_EFFECT_TITAN_GRIP = 155, SPELL_EFFECT_ENCHANT_ITEM_PRISMATIC = 156, SPELL_EFFECT_CREATE_ITEM_2 = 157, diff --git a/src/server/game/Server/Protocol/Handlers/TaxiHandler.cpp b/src/server/game/Server/Protocol/Handlers/TaxiHandler.cpp index 3402c99ce8b..ae74b714904 100644 --- a/src/server/game/Server/Protocol/Handlers/TaxiHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/TaxiHandler.cpp @@ -157,6 +157,15 @@ bool WorldSession::SendLearnNewTaxiNode(Creature* unit) return false; } +void WorldSession::SendDiscoverNewTaxiNode(uint32 nodeid) +{ + if (GetPlayer()->m_taxi.SetTaximaskNode(nodeid)) + { + WorldPacket msg(SMSG_NEW_TAXI_PATH, 0); + SendPacket(&msg); + } +} + void WorldSession::HandleActivateTaxiExpressOpcode (WorldPacket & recv_data) { sLog.outDebug("WORLD: Received CMSG_ACTIVATETAXIEXPRESS"); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index dbcc94f071b..2da8c9440f7 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -256,6 +256,7 @@ class WorldSession void SendTaxiMenu(Creature* unit); void SendDoFlight(uint32 mountDisplayId, uint32 path, uint32 pathNode = 0); bool SendLearnNewTaxiNode(Creature* unit); + void SendDiscoverNewTaxiNode(uint32 nodeid); // Guild/Arena Team void SendGuildCommandResult(uint32 typecmd, const std::string& str, uint32 cmdresult); diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index 2d2f74984d3..f7ad4173e22 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -383,6 +383,7 @@ class Spell void EffectWMODamage(uint32 i); void EffectWMORepair(uint32 i); void EffectActivateRune(uint32 i); + void EffectDiscoverTaxi(uint32 i); void EffectTitanGrip(uint32 i); void EffectEnchantItemPrismatic(uint32 i); void EffectPlayMusic(uint32 i); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index c4b34fd4ff3..881ff1d8f68 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -219,7 +219,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectTriggerRitualOfSummoning, //151 SPELL_EFFECT_TRIGGER_SPELL_2 &Spell::EffectNULL, //152 SPELL_EFFECT_152 summon Refer-a-Friend &Spell::EffectNULL, //153 SPELL_EFFECT_CREATE_PET misc value is creature entry - &Spell::EffectNULL, //154 unused + &Spell::EffectDiscoverTaxi, //154 SPELL_EFFECT_DISCOVER_TAXI &Spell::EffectTitanGrip, //155 SPELL_EFFECT_TITAN_GRIP Allows you to equip two-handed axes, maces and swords in one hand, but you attack $49152s1% slower than normal. &Spell::EffectEnchantItemPrismatic, //156 SPELL_EFFECT_ENCHANT_ITEM_PRISMATIC &Spell::EffectCreateItem2, //157 SPELL_EFFECT_CREATE_ITEM_2 create item or create item template and replace by some randon spell loot item @@ -7848,6 +7848,15 @@ void Spell::EffectActivateRune(uint32 eff_idx) } } +void Spell::EffectDiscoverTaxi(uint32 i) +{ + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) + return; + uint32 nodeid = m_spellInfo->EffectMiscValue[i]; + if (sTaxiNodesStore.LookupEntry(nodeid)) + unitTarget->ToPlayer()->GetSession()->SendDiscoverNewTaxiNode(nodeid); +} + void Spell::EffectTitanGrip(uint32 /*eff_idx*/) { if (unitTarget && unitTarget->GetTypeId() == TYPEID_PLAYER) |