aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarbenium <keresztesschmidt@gmail.com>2015-04-02 02:25:00 +0200
committerCarbenium <keresztesschmidt@gmail.com>2015-04-02 02:36:12 +0200
commit930a6af70a85f0d14b9befd74f33e0ad24f74875 (patch)
tree047988887ef45f75ff3fa87546423aac4e5146eb
parent7d3eb2077731e7a668dd87333d5c7e9ccb312f9e (diff)
Core/Unit: Implement SMSG_HEALTH_UPDATE
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp13
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
2 files changed, 14 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 324cd209afc..da615a847de 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -10094,6 +10094,19 @@ int32 Unit::ModifyHealth(int32 dVal)
gain = maxHealth - curHealth;
}
+ if (dVal < 0)
+ {
+ WorldPackets::Combat::HealthUpdate packet;
+ packet.Guid = GetGUID();
+ packet.Health = GetHealth();
+
+ if (GetTypeId() == TYPEID_PLAYER)
+ ToPlayer()->GetSession()->SendPacket(packet.Write());
+ else
+ if (Player* player = GetOwner()->ToPlayer())
+ player->GetSession()->SendPacket(packet.Write());
+ }
+
return gain;
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 81ea2830a64..c7702afb398 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1210,7 +1210,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ROSTER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_ROSTER_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_SEND_RANK_CHANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_HEALTH_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_HEALTH_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HIGHEST_THREAT_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOTFIX_NOTIFY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOTFIX_NOTIFY_BLOB, STATUS_NEVER, CONNECTION_TYPE_REALM);