DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
DayZSpectator.c
См. документацию.
2{
3 private float m_SpeedMultiplier = 1.0;
4
5 private float m_SendUpdateAcc = 0.0;
6
8 {
9 SetEventMask(EntityEvent.FRAME);
10 }
11
12 override void EOnFrame(IEntity other, float timeSlice)
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 = GetGame().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 {
56 }
57
58 m_SendUpdateAcc = m_SendUpdateAcc + timeSlice;
59 }
60};
vector GetOrientation()
Определения AreaDamageManager.c:306
proto native UAInputAPI GetUApi()
proto native float SurfaceRoadY(float x, float z, RoadSurfaceDetection rsd=RoadSurfaceDetection.LEGACY)
proto native void UpdateSpectatorPosition(vector position)
Updates spectator position on server = position of network bubble.
Определения Camera.c:85
void DayZSpectator()
Определения DayZSpectator.c:7
float m_SendUpdateAcc
Определения DayZSpectator.c:5
override void EOnFrame(IEntity other, float timeSlice)
Определения DayZSpectator.c:12
float m_SpeedMultiplier
Определения DayZSpectator.c:3
Определения EnEntity.c:165
Определения EnMath.c:7
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()
static const vector Up
Определения EnConvert.c:107
Определения EnConvert.c:106
proto native CGame GetGame()
proto native void SetPosition(vector position)
Set the world position of the Effect.
Определения Effect.c:438
EntityEvent
Entity events for event-mask, or throwing event from code.
Определения EnEntity.c:45
static const float RAD2DEG
Определения EnMath.c:16
class JsonUndergroundAreaTriggerData GetPosition
Определения UndergroundAreaLoader.c:9