mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 22:58:34 +00:00
Raid/Group/XTarget HP/Mana/Endurance updates now only send when percentage changes
Raid/Group Mana/Endurance updates should now update real-time once again Fixed an issue with clients looking like they are 'skipping' when they are moving in view of another client Fixed an issue with NPC's who are ghosted in plain view of a client when they are not really there
This commit is contained in:
+55
-16
@@ -341,7 +341,7 @@ bool Group::AddMember(Mob* newmember, const char *NewMemberName, uint32 Characte
|
||||
|
||||
Group* group = newmember->CastToClient()->GetGroup();
|
||||
if (group) {
|
||||
group->SendHPPacketsTo(newmember);
|
||||
group->SendHPManaEndPacketsTo(newmember);
|
||||
group->SendHPPacketsFrom(newmember);
|
||||
}
|
||||
|
||||
@@ -394,7 +394,7 @@ void Group::QueuePacket(const EQApplicationPacket *app, bool ack_req)
|
||||
|
||||
// Sends the rest of the group's hps to member. this is useful when someone
|
||||
// first joins a group, but otherwise there shouldn't be a need to call it
|
||||
void Group::SendHPPacketsTo(Mob *member)
|
||||
void Group::SendHPManaEndPacketsTo(Mob *member)
|
||||
{
|
||||
if(member && member->IsClient()) {
|
||||
EQApplicationPacket hpapp;
|
||||
@@ -410,14 +410,14 @@ void Group::SendHPPacketsTo(Mob *member)
|
||||
if (member->CastToClient()->ClientVersion() >= EQEmu::versions::ClientVersion::SoD) {
|
||||
outapp.SetOpcode(OP_MobManaUpdate);
|
||||
|
||||
MobManaUpdate_Struct *mmus = (MobManaUpdate_Struct *)outapp.pBuffer;
|
||||
mmus->spawn_id = members[i]->GetID();
|
||||
mmus->mana = members[i]->GetManaPercent();
|
||||
MobManaUpdate_Struct *mana_update = (MobManaUpdate_Struct *)outapp.pBuffer;
|
||||
mana_update->spawn_id = members[i]->GetID();
|
||||
mana_update->mana = members[i]->GetManaPercent();
|
||||
member->CastToClient()->QueuePacket(&outapp, false);
|
||||
|
||||
MobEnduranceUpdate_Struct *meus = (MobEnduranceUpdate_Struct *)outapp.pBuffer;
|
||||
MobEnduranceUpdate_Struct *endurance_update = (MobEnduranceUpdate_Struct *)outapp.pBuffer;
|
||||
outapp.SetOpcode(OP_MobEnduranceUpdate);
|
||||
meus->endurance = members[i]->GetEndurancePercent();
|
||||
endurance_update->endurance = members[i]->GetEndurancePercent();
|
||||
member->CastToClient()->QueuePacket(&outapp, false);
|
||||
}
|
||||
}
|
||||
@@ -436,19 +436,58 @@ void Group::SendHPPacketsFrom(Mob *member)
|
||||
|
||||
uint32 i;
|
||||
for(i = 0; i < MAX_GROUP_MEMBERS; i++) {
|
||||
if(members[i] && members[i] != member && members[i]->IsClient())
|
||||
{
|
||||
if(members[i] && members[i] != member && members[i]->IsClient()) {
|
||||
members[i]->CastToClient()->QueuePacket(&hp_app);
|
||||
if (members[i]->CastToClient()->ClientVersion() >= EQEmu::versions::ClientVersion::SoD)
|
||||
{
|
||||
if (members[i]->CastToClient()->ClientVersion() >= EQEmu::versions::ClientVersion::SoD) {
|
||||
outapp.SetOpcode(OP_MobManaUpdate);
|
||||
MobManaUpdate_Struct *mmus = (MobManaUpdate_Struct *)outapp.pBuffer;
|
||||
mmus->spawn_id = member->GetID();
|
||||
mmus->mana = member->GetManaPercent();
|
||||
MobManaUpdate_Struct *mana_update = (MobManaUpdate_Struct *)outapp.pBuffer;
|
||||
mana_update->spawn_id = member->GetID();
|
||||
mana_update->mana = member->GetManaPercent();
|
||||
members[i]->CastToClient()->QueuePacket(&outapp, false);
|
||||
MobEnduranceUpdate_Struct *meus = (MobEnduranceUpdate_Struct *)outapp.pBuffer;
|
||||
|
||||
MobEnduranceUpdate_Struct *endurance_update = (MobEnduranceUpdate_Struct *)outapp.pBuffer;
|
||||
outapp.SetOpcode(OP_MobEnduranceUpdate);
|
||||
meus->endurance = member->GetEndurancePercent();
|
||||
endurance_update->endurance = member->GetEndurancePercent();
|
||||
members[i]->CastToClient()->QueuePacket(&outapp, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Group::SendManaPacketFrom(Mob *member)
|
||||
{
|
||||
if (!member)
|
||||
return;
|
||||
EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct));
|
||||
|
||||
uint32 i;
|
||||
for (i = 0; i < MAX_GROUP_MEMBERS; i++) {
|
||||
if (members[i] && members[i] != member && members[i]->IsClient()) {
|
||||
if (members[i]->CastToClient()->ClientVersion() >= EQEmu::versions::ClientVersion::SoD) {
|
||||
outapp.SetOpcode(OP_MobManaUpdate);
|
||||
MobManaUpdate_Struct *mana_update = (MobManaUpdate_Struct *)outapp.pBuffer;
|
||||
mana_update->spawn_id = member->GetID();
|
||||
mana_update->mana = member->GetManaPercent();
|
||||
members[i]->CastToClient()->QueuePacket(&outapp, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Group::SendEndurancePacketFrom(Mob* member)
|
||||
{
|
||||
if (!member)
|
||||
return;
|
||||
|
||||
EQApplicationPacket outapp(OP_MobEnduranceUpdate, sizeof(MobManaUpdate_Struct));
|
||||
|
||||
uint32 i;
|
||||
for (i = 0; i < MAX_GROUP_MEMBERS; i++) {
|
||||
if (members[i] && members[i] != member && members[i]->IsClient()) {
|
||||
if (members[i]->CastToClient()->ClientVersion() >= EQEmu::versions::ClientVersion::SoD) {
|
||||
MobEnduranceUpdate_Struct *endurance_update = (MobEnduranceUpdate_Struct *)outapp.pBuffer;
|
||||
endurance_update->spawn_id = member->GetID();
|
||||
endurance_update->endurance = member->GetEndurancePercent();
|
||||
members[i]->CastToClient()->QueuePacket(&outapp, false);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user