1
0

Last name, prefix and guild name are now visualized for the older clients, for some reason suffix is not cooperating (perhaps the char sizing is wrong on one of these)

This commit is contained in:
Emagi 2024-12-12 15:20:08 -05:00
parent e48a84e7a7
commit c1fc68c139
3 changed files with 33 additions and 18 deletions

View File

@ -683,9 +683,9 @@
<Data ElementName="temporary_scale" Type="float" Size="1" /> <!-- 667 -->
<Data ElementName="name" Type="char" Size="64" /> <!-- 671 -->
<Data ElementName="last_name" Type="char" Size="64" /> <!-- 735 -->
<Data ElementName="name_suffix" Type="char" Size="64" /> <!-- 799 -->
<Data ElementName="name_prefix" Type="char" Size="64" /> <!-- 863 -->
<Data ElementName="unknown31" Type="char" Size="64" /> <!--927-->
<Data ElementName="suffix" Type="char" Size="64" /> <!-- 799 -->
<Data ElementName="prefix" Type="char" Size="64" /> <!-- 863 -->
<Data ElementName="guild" Type="char" Size="64" /> <!--927-->
<Data ElementName="second_suffix" Type="char" Size="64" /> <!-- 991 -->
<Data ElementName="persistent_spell_visuals" Type="int16" Size="8" /> <!-- 1055 -->
<Data ElementName="persistent_spell_levels" Type="int8" Size="8" /> <!-- 1071 -->
@ -778,9 +778,9 @@
<Data ElementName="temporary_scale" Type="float" Size="1" /> <!-- 667 -->
<Data ElementName="name" Type="char" Size="64" /> <!-- 671 -->
<Data ElementName="last_name" Type="char" Size="64" /> <!-- 735 -->
<Data ElementName="name_suffix" Type="char" Size="64" /> <!-- 799 -->
<Data ElementName="name_prefix" Type="char" Size="64" /> <!-- 863 -->
<Data ElementName="unknown31" Type="char" Size="64" /> <!--927-->
<Data ElementName="suffix" Type="char" Size="64" /> <!-- 799 -->
<Data ElementName="prefix" Type="char" Size="64" /> <!-- 863 -->
<Data ElementName="guild" Type="char" Size="64" /> <!--927-->
<Data ElementName="second_suffix" Type="char" Size="64" /> <!-- 991 -->
<Data ElementName="persistent_spell_visuals" Type="int16" Size="8" /> <!-- 1055 -->
<Data ElementName="persistent_spell_levels" Type="int8" Size="8" /> <!-- 1071 -->

View File

@ -9346,6 +9346,8 @@ void Commands::Command_TitleSetSuffix(Client* client, Seperator* sep)
database.SaveCharSuffixIndex(index, client->GetCharacterID());
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)
strncpy(appearance.name,to_string(GetID()).c_str(),128);
if(footer->GetVersion() > 561) {
footer->setMediumStringByName("name", appearance.name);
footer->setMediumStringByName("guild", appearance.sub_title);
footer->setMediumStringByName("prefix", appearance.prefix_title);
@ -482,6 +482,13 @@ void Spawn::InitializeFooterPacketData(Player* player, PacketStruct* footer) {
footer->setDataByName("spawn_type", 6);
else
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) {
@ -532,6 +539,7 @@ EQ2Packet* Spawn::spawn_serialize(Player* player, int16 version, int16 offset, i
pos_struct->ResetData();
InitializePosPacketData(player, pos_struct);
if (version <= 283) {
if (offset == 777) {
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;
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
sint32 radius = rule_manager.GetZoneRule(GetZoneID(), R_PVP, InvisPlayerDiscoveryRange)->GetSInt32();
if (radius != 0 && (Spawn*)spawn != this && this->IsPlayer() && !spawn->CanSeeInvis((Entity*)this))