mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
[12080] Use a single method to send SMSG_ACTIVATETAXIREPLY
Signed-off-by: stfx <stfx@hotmail.de>
This commit is contained in:
parent
c69759a38d
commit
bb91aa5933
6 changed files with 41 additions and 52 deletions
|
|
@ -18907,9 +18907,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
|
||||||
// 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 (GetSession()->isLogingOut() || isInCombat())
|
if (GetSession()->isLogingOut() || isInCombat())
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERBUSY);
|
||||||
data << uint32(ERR_TAXIPLAYERBUSY);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -18922,26 +18920,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -18970,9 +18962,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -18985,18 +18975,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -19050,9 +19036,8 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
@ -19064,9 +19049,8 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
@ -19079,12 +19063,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
|
||||||
// prevent stealth flight
|
// prevent stealth flight
|
||||||
RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
|
RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
|
||||||
|
|
||||||
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
GetSession()->SendActivateTaxiReply(ERR_TAXIOK);
|
||||||
data << uint32(ERR_TAXIOK);
|
|
||||||
GetSession()->SendPacket(&data);
|
|
||||||
|
|
||||||
DEBUG_LOG("WORLD: Sent SMSG_ACTIVATETAXIREPLY");
|
|
||||||
|
|
||||||
GetSession()->SendDoFlight(mount_display_id, sourcepath);
|
GetSession()->SendDoFlight(mount_display_id, sourcepath);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -501,23 +501,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,
|
||||||
|
|
|
||||||
|
|
@ -2283,8 +2283,8 @@ enum SkillType
|
||||||
SKILL_SURVIVAL2 = 142,
|
SKILL_SURVIVAL2 = 142,
|
||||||
SKILL_RIDING_HORSE = 148,
|
SKILL_RIDING_HORSE = 148,
|
||||||
SKILL_RIDING_WOLF = 149,
|
SKILL_RIDING_WOLF = 149,
|
||||||
SKILL_RIDING_RAM = 152,
|
|
||||||
SKILL_RIDING_TIGER = 150,
|
SKILL_RIDING_TIGER = 150,
|
||||||
|
SKILL_RIDING_RAM = 152,
|
||||||
SKILL_SWIMING = 155,
|
SKILL_SWIMING = 155,
|
||||||
SKILL_2H_MACES = 160,
|
SKILL_2H_MACES = 160,
|
||||||
SKILL_UNARMED = 162,
|
SKILL_UNARMED = 162,
|
||||||
|
|
@ -2947,6 +2947,23 @@ enum WorldStateType
|
||||||
WORLD_STATE_ADD = 1
|
WORLD_STATE_ADD = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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
|
||||||
|
};
|
||||||
|
|
||||||
// we need to stick to 1 version or half of the stuff will work for someone
|
// we need to stick to 1 version or half of the stuff will work for someone
|
||||||
// others will not and opposite
|
// others will not and opposite
|
||||||
// will only support WoW, WoW:TBC and WoW:WotLK 3.3.5a client build 12340...
|
// will only support WoW, WoW:TBC and WoW:WotLK 3.3.5a client build 12340...
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,15 @@ bool WorldSession::SendLearnNewTaxiNode(Creature* unit)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WorldSession::SendActivateTaxiReply(ActivateTaxiReply reply)
|
||||||
|
{
|
||||||
|
WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);
|
||||||
|
data << uint32(reply);
|
||||||
|
SendPacket(&data);
|
||||||
|
|
||||||
|
DEBUG_LOG("WORLD: Sent SMSG_ACTIVATETAXIREPLY");
|
||||||
|
}
|
||||||
|
|
||||||
void WorldSession::HandleActivateTaxiExpressOpcode(WorldPacket& recv_data)
|
void WorldSession::HandleActivateTaxiExpressOpcode(WorldPacket& recv_data)
|
||||||
{
|
{
|
||||||
DEBUG_LOG("WORLD: Received CMSG_ACTIVATETAXIEXPRESS");
|
DEBUG_LOG("WORLD: Received CMSG_ACTIVATETAXIEXPRESS");
|
||||||
|
|
|
||||||
|
|
@ -373,6 +373,7 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void SendTaxiMenu(Creature* unit);
|
void SendTaxiMenu(Creature* unit);
|
||||||
void SendDoFlight(uint32 mountDisplayId, uint32 path, uint32 pathNode = 0);
|
void SendDoFlight(uint32 mountDisplayId, uint32 path, uint32 pathNode = 0);
|
||||||
bool SendLearnNewTaxiNode(Creature* unit);
|
bool SendLearnNewTaxiNode(Creature* unit);
|
||||||
|
void SendActivateTaxiReply(ActivateTaxiReply reply);
|
||||||
|
|
||||||
// Guild/Arena Team
|
// Guild/Arena Team
|
||||||
void SendGuildCommandResult(uint32 typecmd, const std::string& str, uint32 cmdresult);
|
void SendGuildCommandResult(uint32 typecmd, const std::string& str, uint32 cmdresult);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "12079"
|
#define REVISION_NR "12080"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue