mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Packets: Update and enable SMSG_ATTACKSWING_ERROR and SMSG_CANCEL_COMBAT
Removed old SMSG_ATTACKSWING_NOTINRANGE, SMSG_ATTACKSWING_DEADTARGET, SMSG_ATTACKSWING_CANT_ATTACK and SMSG_ATTACKSWING_BADFACING
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
#include "CharacterPackets.h"
|
||||
#include "TalentPackets.h"
|
||||
#include "Chat.h"
|
||||
#include "CombatPackets.h"
|
||||
#include "Common.h"
|
||||
#include "ConditionMgr.h"
|
||||
#include "CreatureAI.h"
|
||||
@@ -19937,12 +19938,6 @@ bool Player::CanSpeak() const
|
||||
/*** LOW LEVEL FUNCTIONS:Notifiers ***/
|
||||
/*********************************************************/
|
||||
|
||||
void Player::SendAttackSwingNotInRange()
|
||||
{
|
||||
WorldPacket data(SMSG_ATTACKSWING_NOTINRANGE, 0);
|
||||
GetSession()->SendPacket(&data);
|
||||
}
|
||||
|
||||
void Player::SavePositionInDB(WorldLocation const& loc, uint16 zoneId, ObjectGuid guid, SQLTransaction& trans)
|
||||
{
|
||||
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER_POSITION);
|
||||
@@ -19971,26 +19966,32 @@ void Player::SetUInt32ValueInArray(Tokenizer& Tokenizer, uint16 index, uint32 va
|
||||
|
||||
void Player::SendAttackSwingDeadTarget()
|
||||
{
|
||||
WorldPacket data(SMSG_ATTACKSWING_DEADTARGET, 0);
|
||||
GetSession()->SendPacket(&data);
|
||||
WorldPackets::Combat::AttackSwingError packet(ATTACKSWINGERR_DEADTARGET);
|
||||
GetSession()->SendPacket(packet.Write());
|
||||
}
|
||||
|
||||
void Player::SendAttackSwingCantAttack()
|
||||
{
|
||||
WorldPacket data(SMSG_ATTACKSWING_CANT_ATTACK, 0);
|
||||
GetSession()->SendPacket(&data);
|
||||
WorldPackets::Combat::AttackSwingError packet(ATTACKSWINGERR_CANT_ATTACK);
|
||||
GetSession()->SendPacket(packet.Write());
|
||||
}
|
||||
|
||||
void Player::SendAttackSwingCancelAttack()
|
||||
void Player::SendAttackSwingNotInRange()
|
||||
{
|
||||
WorldPacket data(SMSG_CANCEL_COMBAT, 0);
|
||||
GetSession()->SendPacket(&data);
|
||||
WorldPackets::Combat::AttackSwingError packet(ATTACKSWINGERR_NOTINRANGE);
|
||||
GetSession()->SendPacket(packet.Write());
|
||||
}
|
||||
|
||||
void Player::SendAttackSwingBadFacingAttack()
|
||||
{
|
||||
WorldPacket data(SMSG_ATTACKSWING_BADFACING, 0);
|
||||
GetSession()->SendPacket(&data);
|
||||
WorldPackets::Combat::AttackSwingError packet(ATTACKSWINGERR_BADFACING);
|
||||
GetSession()->SendPacket(packet.Write());
|
||||
}
|
||||
|
||||
void Player::SendAttackSwingCancelAttack()
|
||||
{
|
||||
WorldPackets::Combat::CancelCombat packet;
|
||||
GetSession()->SendPacket(packet.Write());
|
||||
}
|
||||
|
||||
void Player::SendAutoRepeatCancel(Unit* target)
|
||||
|
||||
@@ -670,6 +670,14 @@ struct SkillStatusData
|
||||
|
||||
typedef std::unordered_map<uint32, SkillStatusData> SkillStatusMap;
|
||||
|
||||
enum AttackSwingErr
|
||||
{
|
||||
ATTACKSWINGERR_CANT_ATTACK = 0,
|
||||
ATTACKSWINGERR_NOTINRANGE = 1,
|
||||
ATTACKSWINGERR_BADFACING = 2,
|
||||
ATTACKSWINGERR_DEADTARGET = 3
|
||||
};
|
||||
|
||||
class Quest;
|
||||
class Spell;
|
||||
class Item;
|
||||
|
||||
@@ -140,3 +140,10 @@ WorldPacket const* WorldPackets::Combat::AttackerStateUpdate::Write()
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Combat::AttackSwingError::Write()
|
||||
{
|
||||
_worldPacket.WriteBits(Reason, 2);
|
||||
_worldPacket.FlushBits();
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -36,6 +36,17 @@ namespace WorldPackets
|
||||
ObjectGuid Victim;
|
||||
};
|
||||
|
||||
class AttackSwingError final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
AttackSwingError() : ServerPacket(SMSG_ATTACKSWING_ERROR, 4) { }
|
||||
AttackSwingError(AttackSwingErr reason) : ServerPacket(SMSG_ATTACKSWING_ERROR, 4), Reason(reason) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
AttackSwingErr Reason = ATTACKSWINGERR_CANT_ATTACK;
|
||||
};
|
||||
|
||||
class AttackStop final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
@@ -165,6 +176,14 @@ namespace WorldPackets
|
||||
UnkAttackerState UnkState;
|
||||
float Unk = 0.0f;
|
||||
};
|
||||
|
||||
class CancelCombat final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
CancelCombat() : ServerPacket(SMSG_CANCEL_COMBAT, 0) { }
|
||||
|
||||
WorldPacket const* Write() override { return &_worldPacket; }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -341,7 +341,7 @@ namespace WorldPackets
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class RequestCemeteryListResponse : public ServerPacket
|
||||
class RequestCemeteryListResponse final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
RequestCemeteryListResponse() : ServerPacket(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, 1) { }
|
||||
@@ -363,7 +363,7 @@ namespace WorldPackets
|
||||
uint32 Response = 0;
|
||||
};
|
||||
|
||||
class AreaTriggerNoCorpse : public ServerPacket
|
||||
class AreaTriggerNoCorpse final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
AreaTriggerNoCorpse() : ServerPacket(SMSG_AREA_TRIGGER_NO_CORPSE, 0) { }
|
||||
@@ -371,7 +371,7 @@ namespace WorldPackets
|
||||
WorldPacket const* Write() override { return &_worldPacket; }
|
||||
};
|
||||
|
||||
class Weather : public ServerPacket
|
||||
class Weather final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
Weather();
|
||||
@@ -384,7 +384,7 @@ namespace WorldPackets
|
||||
WeatherState WeatherID = WEATHER_STATE_FINE;
|
||||
};
|
||||
|
||||
class StandStateChange : public ClientPacket
|
||||
class StandStateChange final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
StandStateChange(WorldPacket&& packet) : ClientPacket(CMSG_STAND_STATE_CHANGE, std::move(packet)) { }
|
||||
@@ -394,7 +394,7 @@ namespace WorldPackets
|
||||
UnitStandStateType StandState = UNIT_STAND_STATE_STAND;
|
||||
};
|
||||
|
||||
class StandStateUpdate : public ServerPacket
|
||||
class StandStateUpdate final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
StandStateUpdate() : ServerPacket(SMSG_STAND_STATE_UPDATE, 1) { }
|
||||
|
||||
@@ -938,11 +938,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKERSTATEUPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSTART, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSTOP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_BADFACING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_CANT_ATTACK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_DEADTARGET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_NOTINRANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_CLOSED_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_COMMAND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1056,7 +1052,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_UPDATE_INVITE_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAMERA_SHAKE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_AUTO_REPEAT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_COMBAT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_COMBAT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_ORPHAN_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_SCENE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
|
||||
@@ -846,11 +846,7 @@ enum OpcodeServer : uint32
|
||||
SMSG_ATTACKERSTATEUPDATE = 0x1204,
|
||||
SMSG_ATTACKSTART = 0x1D3E,
|
||||
SMSG_ATTACKSTOP = 0x1382,
|
||||
SMSG_ATTACKSWING_BADFACING = 0xBADD,
|
||||
SMSG_ATTACKSWING_CANT_ATTACK = 0xBADD,
|
||||
SMSG_ATTACKSWING_DEADTARGET = 0xBADD,
|
||||
SMSG_ATTACKSWING_ERROR = 0x0509,
|
||||
SMSG_ATTACKSWING_NOTINRANGE = 0xBADD,
|
||||
SMSG_AUCTION_BIDDER_NOTIFICATION = 0xBADD,
|
||||
SMSG_AUCTION_CLOSED_NOTIFICATION = 0x058E,
|
||||
SMSG_AUCTION_COMMAND_RESULT = 0x0B2D,
|
||||
@@ -1712,7 +1708,7 @@ enum OpcodeServer : uint32
|
||||
SMSG_SPELL_START = 0x0803,
|
||||
SMSG_SPELL_UPDATE_CHAIN_TARGETS = 0x0374,
|
||||
SMSG_SPIRIT_HEALER_CONFIRM = 0x1331,
|
||||
SMSG_STAND_STATE_UPDATE = 0x1311,
|
||||
SMSG_STAND_STATE_UPDATE = 0x1311,
|
||||
SMSG_START_ELAPSED_TIMER = 0x0D2A,
|
||||
SMSG_START_ELAPSED_TIMERS = 0x093F,
|
||||
SMSG_START_LOOT_ROLL = 0x1B84,
|
||||
|
||||
Reference in New Issue
Block a user