diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Server/Protocol/Handlers/SpellHandler.cpp | 25 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Server/WorldSession.h | 1 |
3 files changed, 27 insertions, 1 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/SpellHandler.cpp b/src/server/game/Server/Protocol/Handlers/SpellHandler.cpp index 862a2ed0e27..013c32abba4 100755 --- a/src/server/game/Server/Protocol/Handlers/SpellHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/SpellHandler.cpp @@ -644,3 +644,28 @@ void WorldSession::HandleMirrrorImageDataRequest(WorldPacket & recv_data) SendPacket(&data); } + +void WorldSession::HandleUpdateProjectilePosition(WorldPacket& recvPacket) +{ + sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: CMSG_UPDATE_PROJECTILE_POSITION"); + + uint64 casterGuid; + uint32 spellId; + uint8 castCount; + float x, y, z; // Position of missile hit + + recvPacket.readPackGUID(casterGuid); + recvPacket >> spellId; + recvPacket >> castCount; + recvPacket >> x; + recvPacket >> y; + recvPacket >> z; + + WorldPacket data(SMSG_SET_PROJECTILE_POSITION, 21); + data << uint64(casterGuid); + data << uint8(castCount); + data << float(x); + data << float(y); + data << float(z); + SendPacket(&data); +} diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 7ba68d1b573..27bd2872f7e 100755 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1240,7 +1240,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] = /*0x4BB*/ { "SMSG_CALENDAR_ACTION_PENDING", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide }, /*0x4BC*/ { "SMSG_EQUIPMENT_SET_LIST", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide }, /*0x4BD*/ { "CMSG_EQUIPMENT_SET_SAVE", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetSave }, - /*0x4BE*/ { "CMSG_UPDATE_PROJECTILE_POSITION", STATUS_UNHANDLED,PROCESS_INPLACE, &WorldSession::Handle_NULL }, + /*0x4BE*/ { "CMSG_UPDATE_PROJECTILE_POSITION", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateProjectilePosition }, /*0x4BF*/ { "SMSG_SET_PROJECTILE_POSITION", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide }, /*0x4C0*/ { "SMSG_TALENTS_INFO", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide }, /*0x4C1*/ { "CMSG_LEARN_PREVIEW_TALENTS", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLearnPreviewTalents }, diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index a8817797d93..82e8aa20919 100755 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -859,6 +859,7 @@ class WorldSession void HandleQuestPOIQuery(WorldPacket& recv_data); void HandleEjectPassenger(WorldPacket &data); void HandleEnterPlayerVehicle(WorldPacket &data); + void HandleUpdateProjectilePosition(WorldPacket& recvPacket); private: void ProcessQueryCallbacks(); |