DayZ 1.27
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 = GetGame().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 = GetGame().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 }
proto native vector GetScreenPosRelative(vector world_pos)
Transforms position in world to position in screen in percentage (0.0 - 1.0) as x,...
proto native WorkspaceWidget GetWorkspace()
TextWidget m_PlayerTagText
Определения IngameHud.c:118
Widget m_PlayerTag
Определения IngameHud.c:117
int m_PlayerSpineIndex
Определения IngameHud.c:115
PlayerBase m_CurrentTaggedPlayer
Определения IngameHud.c:116
proto native CGame GetGame()
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.

Перекрестные ссылки Math::Clamp(), WorkspaceWidget::CreateWidgets(), GetGame(), CGame::GetScreenPosRelative(), CGame::GetWorkspace(), m_CurrentTaggedPlayer, m_PlayerSpineIndex, m_PlayerTag и m_PlayerTagText.

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