aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h4
-rw-r--r--src/server/game/Server/Protocol/Handlers/TaxiHandler.cpp9
-rw-r--r--src/server/game/Server/WorldSession.h1
-rw-r--r--src/server/game/Spells/Spell.h1
-rw-r--r--src/server/game/Spells/SpellEffects.cpp11
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)