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

◆ EOnFrame()

override void DayZSpectator::EOnFrame ( IEntity other,
float timeSlice )
inlineprivate

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

13 {
14 if (GetUApi().GetInputByID(UACarShiftGearUp).LocalPress())
16 if (GetUApi().GetInputByID(UACarShiftGearDown).LocalPress())
18
19 float speed = 5.0 * m_SpeedMultiplier;
20 if (GetUApi().GetInputByID(UATurbo).LocalValue())
21 speed *= 2;
22
23 float forward = GetUApi().GetInputByID(UAMoveForward).LocalValue() - GetUApi().GetInputByID(UAMoveBack).LocalValue();
24 float strafe = GetUApi().GetInputByID(UAMoveRight).LocalValue() - GetUApi().GetInputByID(UAMoveLeft).LocalValue();
25
26 vector direction = GetDirection();
27 vector directionAside = vector.Up * direction;
28
29 vector oldPos = GetPosition();
30 vector forwardChange = forward * timeSlice * direction * speed;
31 vector strafeChange = strafe * timeSlice * directionAside * speed;
32 vector newPos = oldPos + forwardChange + strafeChange;
33 float yMin = g_Game.SurfaceRoadY(newPos[0], newPos[2]);
34 if (newPos[1] < yMin)
35 newPos[1] = yMin;
36
37 SetPosition(newPos);
38
39 float yawDiff = GetUApi().GetInputByID(UAAimLeft).LocalValue() - GetUApi().GetInputByID(UAAimRight).LocalValue();
40 float pitchDiff = GetUApi().GetInputByID(UAAimDown).LocalValue() - GetUApi().GetInputByID(UAAimUp).LocalValue();
41 vector oldOrient = GetOrientation();
42 vector newOrient = oldOrient;
43 newOrient[0] = newOrient[0] - Math.RAD2DEG * yawDiff * timeSlice;
44 newOrient[1] = newOrient[1] - Math.RAD2DEG * pitchDiff * timeSlice;
45 if (newOrient[1] < -89)
46 newOrient[1] = -89;
47 if (newOrient[1] > 89)
48 newOrient[1] = 89;
49
50 SetOrientation(newOrient);
51
52 if (m_SendUpdateAcc > 0.5)
53 {
54 g_Game.UpdateSpectatorPosition(newPos);
56 }
57
58 m_SendUpdateAcc = m_SendUpdateAcc + timeSlice;
59 }
vector GetOrientation()
Определения AreaDamageManager.c:306
DayZGame g_Game
Определения DayZGame.c:3942
proto native UAInputAPI GetUApi()
float m_SendUpdateAcc
Определения DayZSpectator.c:5
float m_SpeedMultiplier
Определения DayZSpectator.c:3
proto native UAInput GetInputByID(int iID)
returns list of all bindable (i.e. visible) inputs from the active group ('core' by default)
proto native float LocalValue()
proto native void SetPosition(vector position)
Set the world position of the Effect.
Определения Effect.c:463
vector GetPosition()
Get the world position of the Effect.
Определения Effect.c:473

Перекрестные ссылки g_Game, UAInputAPI::GetInputByID(), GetOrientation(), GetPosition(), GetUApi(), UAInput::LocalValue(), m_SendUpdateAcc, m_SpeedMultiplier, Math::RAD2DEG, SetPosition() и vector::Up.