1
0

restore changes to fix earlier clients seeing the name visuals (other than suffix which seems to be missing)

This commit is contained in:
Emagi 2024-12-12 15:38:27 -05:00
parent f5e1e6ceee
commit 19dccd751a
2 changed files with 27 additions and 12 deletions

View File

@ -9346,6 +9346,8 @@ void Commands::Command_TitleSetSuffix(Client* client, Seperator* sep)
database.SaveCharSuffixIndex(index, client->GetCharacterID()); database.SaveCharSuffixIndex(index, client->GetCharacterID());
client->SendTitleUpdate(); client->SendTitleUpdate();
client->GetPlayer()->info_changed = true;
client->GetPlayer()->GetZone()->AddChangedSpawn(client->GetPlayer());
} }
} }

View File

@ -470,7 +470,7 @@ void Spawn::InitializeFooterPacketData(Player* player, PacketStruct* footer) {
if (strlen(appearance.name) < 1) if (strlen(appearance.name) < 1)
strncpy(appearance.name,to_string(GetID()).c_str(),128); strncpy(appearance.name,to_string(GetID()).c_str(),128);
if(footer->GetVersion() > 561) {
footer->setMediumStringByName("name", appearance.name); footer->setMediumStringByName("name", appearance.name);
footer->setMediumStringByName("guild", appearance.sub_title); footer->setMediumStringByName("guild", appearance.sub_title);
footer->setMediumStringByName("prefix", appearance.prefix_title); footer->setMediumStringByName("prefix", appearance.prefix_title);
@ -482,6 +482,13 @@ void Spawn::InitializeFooterPacketData(Player* player, PacketStruct* footer) {
footer->setDataByName("spawn_type", 6); footer->setDataByName("spawn_type", 6);
else else
footer->setDataByName("spawn_type", 3); footer->setDataByName("spawn_type", 3);
}
else {
footer->setDataByName("guild", appearance.sub_title);
footer->setDataByName("prefix", appearance.prefix_title);
footer->setDataByName("suffix", appearance.suffix_title);
footer->setDataByName("last_name", appearance.last_name);
}
} }
EQ2Packet* Spawn::spawn_serialize(Player* player, int16 version, int16 offset, int32 value, int16 offset2, int16 offset3, int16 offset4, int32 value2) { EQ2Packet* Spawn::spawn_serialize(Player* player, int16 version, int16 offset, int32 value, int16 offset2, int16 offset3, int16 offset4, int32 value2) {
@ -532,6 +539,7 @@ EQ2Packet* Spawn::spawn_serialize(Player* player, int16 version, int16 offset, i
pos_struct->ResetData(); pos_struct->ResetData();
InitializePosPacketData(player, pos_struct); InitializePosPacketData(player, pos_struct);
if (version <= 283) { if (version <= 283) {
if (offset == 777) { if (offset == 777) {
info_struct->setDataByName("name", "This is a really long name\n"); info_struct->setDataByName("name", "This is a really long name\n");
@ -2387,6 +2395,11 @@ void Spawn::InitializeInfoPacketData(Player* spawn, PacketStruct* packet) {
bool spawnHiddenFromClient = false; bool spawnHiddenFromClient = false;
int8 classicFlags = 0; int8 classicFlags = 0;
if(version <= 561 && IsPlayer()) {
InitializeFooterPacketData(spawn, packet);
}
// radius of 0 is always seen, -1 is never seen (unless items/spells override), larger than 0 is a defined radius to restrict visibility // radius of 0 is always seen, -1 is never seen (unless items/spells override), larger than 0 is a defined radius to restrict visibility
sint32 radius = rule_manager.GetZoneRule(GetZoneID(), R_PVP, InvisPlayerDiscoveryRange)->GetSInt32(); sint32 radius = rule_manager.GetZoneRule(GetZoneID(), R_PVP, InvisPlayerDiscoveryRange)->GetSInt32();
if (radius != 0 && (Spawn*)spawn != this && this->IsPlayer() && !spawn->CanSeeInvis((Entity*)this)) if (radius != 0 && (Spawn*)spawn != this && this->IsPlayer() && !spawn->CanSeeInvis((Entity*)this))