DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ ShowPlayerTag()

void Hud::ShowPlayerTag ( float timeslice)
inlineprotected

См. определение в файле IngameHud.c строка 1096

1097 {
1098 if ( m_CurrentTaggedPlayer && m_CurrentTaggedPlayer.GetIdentity() )
1099 {
1100 if ( !m_PlayerTag )
1101 {
1102 m_PlayerTag = g_Game.GetWorkspace().CreateWidgets("gui/layouts/new_ui/hud/hud_player_tag.layout");
1103 m_PlayerTagText = TextWidget.Cast( m_PlayerTag.FindAnyWidget( "TagText" ) );
1104 }
1105 m_PlayerSpineIndex = m_CurrentTaggedPlayer.GetBoneIndex( "Spine2" );
1106 vector player_pos = m_CurrentTaggedPlayer.GetBonePositionWS( m_PlayerSpineIndex );
1107 vector screen_pos = g_Game.GetScreenPosRelative( player_pos );
1108
1109 if ( screen_pos[2] > 0 )
1110 {
1111 if ( screen_pos[0] > 0 && screen_pos[0] < 1 )
1112 {
1113 if ( screen_pos[1] > 0 && screen_pos[1] < 1 )
1114 {
1115 m_PlayerTagText.SetAlpha( Math.Clamp( m_PlayerTagText.GetAlpha() + timeslice * 10, 0, 1 ) );
1116 m_PlayerTag.SetPos( 0.55, 0.55 );
1117 m_PlayerTagText.SetText( m_CurrentTaggedPlayer.GetIdentity().GetPlainName() );
1118
1119 //m_PlayerTagText.SetSize( 1, 1 - screen_pos[2] / 25 );
1120 return;
1121 }
1122 }
1123 }
1124 }
1125
1126 if ( m_PlayerTag )
1127 {
1128 float new_alpha = Math.Clamp( m_PlayerTagText.GetAlpha() - timeslice * 10, 0, 1 );
1129 m_PlayerTagText.SetAlpha( Math.Clamp( m_PlayerTagText.GetAlpha() - timeslice * 10, 0, 1 ) );
1130 if ( new_alpha == 0 )
1131 {
1132 m_PlayerTagText.SetText( "" );
1133 m_CurrentTaggedPlayer = null;
1134 }
1135 }
1136 }
DayZGame g_Game
Определения DayZGame.c:3942
TextWidget m_PlayerTagText
Определения IngameHud.c:118
Widget m_PlayerTag
Определения IngameHud.c:117
int m_PlayerSpineIndex
Определения IngameHud.c:115
PlayerBase m_CurrentTaggedPlayer
Определения IngameHud.c:116

Перекрестные ссылки Math::Clamp(), g_Game, m_CurrentTaggedPlayer, m_PlayerSpineIndex, m_PlayerTag и m_PlayerTagText.

Используется в Update().