DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
PluginCharPlacement.c
См. документацию.
1class PluginCharPlacement extends PluginBase
2{
5 ref Timer m_Timer;
14
15 const float FOV = 0.5236;
16
17 void CheckInit()
18 {
19 if ( m_Initialized )
20 {
21 Print("logging...");
22 Log(FOV.ToString(),"FOV");
23 Log(m_camera_dir.ToString(),"camera dir");
24 Log(m_cam_pos.ToString(),"camera pos");
25 Log(m_demoPos.ToString(),"character pos");
26
27 return;
28 }
29
30 if( FreeDebugCamera.GetInstance().IsActive() )
31 Init();
32 }
33
34 void Init()
35 {
36 if(m_Character)
37 m_Character.Delete();
38
39 m_Initialized = true;
40 m_Character = PlayerBase.Cast( GetGame().CreateObject("SurvivorF_Judy", FreeDebugCamera.GetInstance().GetPosition(), false, false/*ai*/) );
41
42 FreeDebugCamera.GetInstance().SetFOV(FOV); //default scene FOV
43 m_demoRot = "0 0 0";
44 }
45
46 override void OnUpdate(float delta_time)
47 {
48 if(!m_Initialized) return;
49 if(!FreeDebugCamera.GetInstance().IsActive()) return;
50 if(!m_Character) return;
51 m_camera_orientation = FreeDebugCamera.GetInstance().GetOrientation();
53 FreeDebugCamera.GetInstance().SetOrientation(m_camera_orientation); //remove to unlock vertical axis
54 m_cam_pos = FreeDebugCamera.GetInstance().GetPosition();
55 m_character_pos = m_Character.GetPosition();
56 m_camera_dir = FreeDebugCamera.GetInstance().GetDirection();
57
58 m_camera_dir.Normalize();
59 m_Character.SetPosition(CalculatePos());//(FreeDebugCamera.GetInstance().GetPosition() + ( m_camera_dir * 2) );
61 m_Character.SetOrientation(m_demoRot);//(FreeDebugCamera.GetInstance().GetPosition() - m_demoPos);
62 }
63
64 override void OnDestroy()
65 {
66 FreeDebugCamera.GetInstance().SetFOV(g_Game.GetUserFOV());
67 }
68
70 {
71 vector cam_pos = FreeDebugCamera.GetInstance().GetPosition();
73 Math3D.DirectionAndUpMatrix(m_camera_dir/* - SnapToGround(cam_pos)*/, "0 1 0", m_cameraTrans);
74 m_cameraTrans[3] = cam_pos;
75 m_demoPos = Vector(/*0.685547, -0.988281,*/0,0, 3.68823).Multiply4(m_cameraTrans);
77
78 return m_demoPos;
79 }
80}
DayZGame g_Game
Определения DayZGame.c:3868
proto native float SurfaceY(float x, float z)
Определения EnMath3D.c:28
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
vector CalculatePos()
Определения PluginCharPlacement.c:69
void CheckInit()
Определения PluginCharPlacement.c:17
PlayerBase m_Character
Определения PluginCharPlacement.c:4
vector m_camera_orientation
Определения PluginCharPlacement.c:13
vector m_cameraTrans[4]
Определения PluginCharPlacement.c:10
void Init()
Определения PluginCharPlacement.c:34
vector m_demoPos
Определения PluginCharPlacement.c:11
vector m_demoRot
Определения PluginCharPlacement.c:12
ref Timer m_Timer
Определения PluginAdminLog.c:26
vector m_camera_dir
Определения PluginCharPlacement.c:9
vector m_character_pos
Определения PluginCharPlacement.c:8
void Log(string msg, string label)
Определения PluginBase.c:10
PluginDeveloper m_ModuleDeveloper
Определения PluginCharPlacement.c:3
override void OnDestroy()
Определения PluginCharPlacement.c:64
void PluginDeveloper()
Определения PluginDeveloper.c:49
const float FOV
Определения PluginCharPlacement.c:15
vector m_cam_pos
Определения PluginCharPlacement.c:7
bool m_Initialized
Определения PluginCharPlacement.c:6
override void OnUpdate(float delta_time)
Определения PluginCharPlacement.c:46
Определения PluginBase.c:2
Определения DayZPlayerImplement.c:63
proto vector Multiply4(vector mat[4])
Transforms position.
Определения EnConvert.c:106
proto native CGame GetGame()
proto void Print(void var)
Prints content of variable to console/log.
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static void MatrixIdentity4(out vector mat[4])
Creates identity matrix.
Определения EnMath3D.c:256
static proto void DirectionAndUpMatrix(vector dir, vector up, out vector mat[4])
Creates rotation matrix from direction and up vector.
static proto float Atan2(float y, float x)
Returns angle in radians from tangent.
static const float RAD2DEG
Определения EnMath.c:16