PvP nameplates: correct GC icons (62601/62602/62603), configurable GC IDs, Role/Job icon for enemy players

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-01-31 22:40:28 -05:00
parent 11b4c268f0
commit 80f45f5a31
7 changed files with 275 additions and 42 deletions
+21 -4
View File
@@ -128,17 +128,34 @@ namespace HSUI.Interface.Nameplates
return _playerHud;
}
if (data.GameObject is ICharacter character)
// In PvP, optionally show only enemy player nameplates (hide allies)
if (Config.PvPShowOnlyEnemyPlayers && Plugin.ClientState.IsPvP)
{
if ((character.StatusFlags & StatusFlags.PartyMember) != 0) // PartyMember
if (data.GameObject is ICharacter character)
{
if ((character.StatusFlags & StatusFlags.PartyMember) != 0 ||
(character.StatusFlags & StatusFlags.AllianceMember) != 0 ||
(character.StatusFlags & StatusFlags.Friend) != 0)
{
return null; // Hide party, alliance, and friend nameplates
}
}
// Other players: show only hostile (enemy team), hide allies
if (data.GameObject == null) { return null; }
return Utils.IsHostile(data.GameObject) ? _enemyHud : null;
}
if (data.GameObject is ICharacter character2)
{
if ((character2.StatusFlags & StatusFlags.PartyMember) != 0) // PartyMember
{
return _partyMemberHud;
}
else if ((character.StatusFlags & StatusFlags.AllianceMember) != 0) // AllianceMember
else if ((character2.StatusFlags & StatusFlags.AllianceMember) != 0) // AllianceMember
{
return _allianceMemberHud;
}
else if ((character.StatusFlags & StatusFlags.Friend) != 0) // Friend
else if ((character2.StatusFlags & StatusFlags.Friend) != 0) // Friend
{
return _friendsHud;
}