Core/Packets: Use a single method to send SMSG_ACTIVATETAXIREPLY
Also fix a typo introduced in 703ad4889
This commit is contained in:
@@ -20269,9 +20269,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
|
|||||||
// not let cheating with start flight in time of logout process || while in combat || has type state: stunned || has type state: root
|
// not let cheating with start flight in time of logout process || while in combat || has type state: stunned || has type state: root
|
||||||
if (GetSession()->isLogingOut() || isInCombat() || HasUnitState(UNIT_STATE_STUNNED) || HasUnitState(UNIT_STATE_ROOT))
|
if (GetSession()->isLogingOut() || isInCombat() || HasUnitState(UNIT_STATE_STUNNED) || HasUnitState(UNIT_STATE_ROOT))
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERBUSY);
|
||||||
data << uint32(ERR_TAXIPLAYERBUSY);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20284,26 +20282,20 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
|
|||||||
// not let cheating with start flight mounted
|
// not let cheating with start flight mounted
|
||||||
if (IsMounted())
|
if (IsMounted())
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERALREADYMOUNTED);
|
||||||
data << uint32(ERR_TAXIPLAYERALREADYMOUNTED);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsInDisallowedMountForm())
|
if (IsInDisallowedMountForm())
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERSHAPESHIFTED);
|
||||||
data << uint32(ERR_TAXIPLAYERSHAPESHIFTED);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// not let cheating with start flight in time of logout process || if casting not finished || while in combat || if not use Spell's with EffectSendTaxi
|
// not let cheating with start flight in time of logout process || if casting not finished || while in combat || if not use Spell's with EffectSendTaxi
|
||||||
if (IsNonMeleeSpellCasted(false))
|
if (IsNonMeleeSpellCasted(false))
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERBUSY);
|
||||||
data << uint32(ERR_TAXIPLAYERBUSY);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -20332,9 +20324,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
|
|||||||
TaxiNodesEntry const* node = sTaxiNodesStore.LookupEntry(sourcenode);
|
TaxiNodesEntry const* node = sTaxiNodesStore.LookupEntry(sourcenode);
|
||||||
if (!node)
|
if (!node)
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXINOSUCHPATH);
|
||||||
data << uint32(ERR_TAXINOSUCHPATH);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20347,18 +20337,14 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
|
|||||||
(node->z - GetPositionZ())*(node->z - GetPositionZ()) >
|
(node->z - GetPositionZ())*(node->z - GetPositionZ()) >
|
||||||
(2*INTERACTION_DISTANCE)*(2*INTERACTION_DISTANCE)*(2*INTERACTION_DISTANCE))
|
(2*INTERACTION_DISTANCE)*(2*INTERACTION_DISTANCE)*(2*INTERACTION_DISTANCE))
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXITOOFARAWAY);
|
||||||
data << uint32(ERR_TAXITOOFARAWAY);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// node must have pos if taxi master case (npc != NULL)
|
// node must have pos if taxi master case (npc != NULL)
|
||||||
else if (npc)
|
else if (npc)
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXIUNSPECIFIEDSERVERERROR);
|
||||||
data << uint32(ERR_TAXIUNSPECIFIEDSERVERERROR);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20421,9 +20407,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
|
|||||||
// in spell case allow 0 model
|
// in spell case allow 0 model
|
||||||
if ((mount_display_id == 0 && spellid == 0) || sourcepath == 0)
|
if ((mount_display_id == 0 && spellid == 0) || sourcepath == 0)
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXIUNSPECIFIEDSERVERERROR);
|
||||||
data << uint32(ERR_TAXIUNSPECIFIEDSERVERERROR);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
m_taxi.ClearTaxiDestinations();
|
m_taxi.ClearTaxiDestinations();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -20435,9 +20419,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
|
|||||||
|
|
||||||
if (money < totalcost)
|
if (money < totalcost)
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXINOTENOUGHMONEY);
|
||||||
data << uint32(ERR_TAXINOTENOUGHMONEY);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
m_taxi.ClearTaxiDestinations();
|
m_taxi.ClearTaxiDestinations();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -20459,10 +20441,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXIOK);
|
||||||
data << uint32(ERR_TAXIOK);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent SMSG_ACTIVATETAXIREPLY");
|
|
||||||
GetSession()->SendDoFlight(mount_display_id, sourcepath);
|
GetSession()->SendDoFlight(mount_display_id, sourcepath);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -466,23 +466,6 @@ enum PlayerFieldByte2Flags
|
|||||||
PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW = 0x40
|
PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW = 0x40
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ActivateTaxiReplies
|
|
||||||
{
|
|
||||||
ERR_TAXIOK = 0,
|
|
||||||
ERR_TAXIUNSPECIFIEDSERVERERROR = 1,
|
|
||||||
ERR_TAXINOSUCHPATH = 2,
|
|
||||||
ERR_TAXINOTENOUGHMONEY = 3,
|
|
||||||
ERR_TAXITOOFARAWAY = 4,
|
|
||||||
ERR_TAXINOVENDORNEARBY = 5,
|
|
||||||
ERR_TAXINOTVISITED = 6,
|
|
||||||
ERR_TAXIPLAYERBUSY = 7,
|
|
||||||
ERR_TAXIPLAYERALREADYMOUNTED = 8,
|
|
||||||
ERR_TAXIPLAYERSHAPESHIFTED = 9,
|
|
||||||
ERR_TAXIPLAYERMOVING = 10,
|
|
||||||
ERR_TAXISAMENODE = 11,
|
|
||||||
ERR_TAXINOTSTANDING = 12
|
|
||||||
};
|
|
||||||
|
|
||||||
enum MirrorTimerType
|
enum MirrorTimerType
|
||||||
{
|
{
|
||||||
FATIGUE_TIMER = 0,
|
FATIGUE_TIMER = 0,
|
||||||
|
|||||||
@@ -292,3 +292,12 @@ void WorldSession::HandleActivateTaxiOpcode(WorldPacket & recv_data)
|
|||||||
|
|
||||||
GetPlayer()->ActivateTaxiPathTo(nodes, npc);
|
GetPlayer()->ActivateTaxiPathTo(nodes, npc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WorldSession::SendActivateTaxiReply(ActivateTaxiReply reply)
|
||||||
|
{
|
||||||
|
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
||||||
|
data << uint32(reply);
|
||||||
|
SendPacket(&data);
|
||||||
|
|
||||||
|
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent SMSG_ACTIVATETAXIREPLY");
|
||||||
|
}
|
||||||
|
|||||||
@@ -3405,4 +3405,21 @@ enum RemoveMethod
|
|||||||
GROUP_REMOVEMETHOD_LEAVE = 2,
|
GROUP_REMOVEMETHOD_LEAVE = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ActivateTaxiReply
|
||||||
|
{
|
||||||
|
ERR_TAXIOK = 0,
|
||||||
|
ERR_TAXIUNSPECIFIEDSERVERERROR = 1,
|
||||||
|
ERR_TAXINOSUCHPATH = 2,
|
||||||
|
ERR_TAXINOTENOUGHMONEY = 3,
|
||||||
|
ERR_TAXITOOFARAWAY = 4,
|
||||||
|
ERR_TAXINOVENDORNEARBY = 5,
|
||||||
|
ERR_TAXINOTVISITED = 6,
|
||||||
|
ERR_TAXIPLAYERBUSY = 7,
|
||||||
|
ERR_TAXIPLAYERALREADYMOUNTED = 8,
|
||||||
|
ERR_TAXIPLAYERSHAPESHIFTED = 9,
|
||||||
|
ERR_TAXIPLAYERMOVING = 10,
|
||||||
|
ERR_TAXISAMENODE = 11,
|
||||||
|
ERR_TAXINOTSTANDING = 12
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -571,6 +571,7 @@ class WorldSession
|
|||||||
void HandleActivateTaxiOpcode(WorldPacket& recvPacket);
|
void HandleActivateTaxiOpcode(WorldPacket& recvPacket);
|
||||||
void HandleActivateTaxiExpressOpcode(WorldPacket& recvPacket);
|
void HandleActivateTaxiExpressOpcode(WorldPacket& recvPacket);
|
||||||
void HandleMoveSplineDoneOpcode(WorldPacket& recvPacket);
|
void HandleMoveSplineDoneOpcode(WorldPacket& recvPacket);
|
||||||
|
void SendActivateTaxiReply(ActivateTaxiReply reply);
|
||||||
|
|
||||||
void HandleTabardVendorActivateOpcode(WorldPacket& recvPacket);
|
void HandleTabardVendorActivateOpcode(WorldPacket& recvPacket);
|
||||||
void HandleBankerActivateOpcode(WorldPacket& recvPacket);
|
void HandleBankerActivateOpcode(WorldPacket& recvPacket);
|
||||||
|
|||||||
@@ -342,7 +342,7 @@ class spell_dru_starfall_dummy : public SpellScriptLoader
|
|||||||
|
|
||||||
Unit* caster = GetCaster();
|
Unit* caster = GetCaster();
|
||||||
// Shapeshifting into an animal form or mounting cancels the effect
|
// Shapeshifting into an animal form or mounting cancels the effect
|
||||||
if (caster->GetCreatureType() == CREATURE_TYPE_BEAST() || caster->IsMounted())
|
if (caster->GetCreatureType() == CREATURE_TYPE_BEAST || caster->IsMounted())
|
||||||
{
|
{
|
||||||
if (SpellInfo const* spellInfo = GetTriggeringSpell())
|
if (SpellInfo const* spellInfo = GetTriggeringSpell())
|
||||||
caster->RemoveAurasDueToSpell(spellInfo->Id);
|
caster->RemoveAurasDueToSpell(spellInfo->Id);
|
||||||
|
|||||||
Reference in New Issue
Block a user