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

◆ SetScene()

void DayZIntroScene::SetScene ( )
inlineprotected

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

30 {
31 string root_path = "cfgCharacterScenes " + g_Game.GetWorldName();
32
33 int count = g_Game.ConfigGetChildrenCount(root_path);
34 int index = Math.RandomInt(0, count - 1);
35 string childName;
36 g_Game.ConfigGetChildName(root_path, index, childName);
37
38 string scene_path = root_path + " " + childName;
39 m_Target = SwapYZ(g_Game.ConfigGetVector(scene_path + " target"));
40 vector position = SwapYZ(g_Game.ConfigGetVector(scene_path + " position"));
41 TIntArray date = new TIntArray;
42 TFloatArray storm = new TFloatArray;
43 g_Game.ConfigGetIntArray(scene_path + " date", date);
44 float fov = g_Game.ConfigGetFloat(scene_path + " fov");
45 float overcast = g_Game.ConfigGetFloat(scene_path + " overcast");
46 float rain = g_Game.ConfigGetFloat(scene_path + " rain");
47 float snowfall = g_Game.ConfigGetFloat(scene_path + " snowfall");
48 float fog = g_Game.ConfigGetFloat(scene_path + " fog");
49 float windspeed = -1;
50 if ( g_Game.ConfigIsExisting(scene_path + " windspeed") )
51 windspeed = g_Game.ConfigGetFloat(scene_path + " windspeed");
52 g_Game.ConfigGetFloatArray(scene_path + " storm", storm);
53
54 World world = g_Game.GetWorld();
55
56 if (world && date.Count() >= 5)
57 {
58 world.SetDate(date.Get(0), date.Get(1), date.Get(2), date.Get(3), date.Get(4));
59 }
60
61 g_Game.ObjectDelete( m_Camera );
62 Class.CastTo(m_Camera, g_Game.CreateObject("staticcamera", SnapToGround(position), true)); //Vector(position[0] , position[1] + 1, position[2])
63
64 Math3D.MatrixIdentity4(m_CameraTrans);
65
66 if (m_Camera)
67 {
68 //m_Camera.SetPosition(Vector(m_Camera.GetPosition()[0],m_Camera.GetPosition()[1]+0,m_Camera.GetPosition()[2]));
69 m_Camera.LookAt(m_Target);
70 m_Camera.SetFOV(fov);
71 m_Camera.SetFocus(5.0, 0.0); //5.0, 1.0
72
73 m_Camera.SetActive(true);
74
75 Math3D.DirectionAndUpMatrix(m_Target - SnapToGround(position), "0 1 0", m_CameraTrans);
76 m_CameraTrans[3] = m_Camera.GetPosition();
77 m_CharacterPos = Vector(0.685547, -0.988281, 3.68823).Multiply4(m_CameraTrans);
78
79 float pos_x = m_CharacterPos[0];
80 float pos_z = m_CharacterPos[2];
81 float pos_y = g_Game.SurfaceY(pos_x, pos_z);
82 vector ground_demo_pos = Vector(pos_x, pos_y, pos_z);
83 m_CharacterPos = ground_demo_pos;
84
85 vector to_cam_dir = m_Camera.GetPosition() - m_CharacterPos;
86 m_CharacterRot[0] = Math.Atan2(to_cam_dir[0], to_cam_dir[2]) * Math.RAD2DEG;
87 }
88
89 m_Weather = g_Game.GetWeather();
90 m_Weather.GetOvercast().SetLimits( overcast, overcast );
91 m_Weather.GetRain().SetLimits( rain, rain );
92 m_Weather.GetSnowfall().SetLimits( snowfall, snowfall );
93 m_Weather.GetFog().SetLimits( fog, fog );
94
95 m_Weather.GetOvercast().Set( overcast, 0, 0);
96 m_Weather.GetRain().Set( rain, 0, 0);
97 m_Weather.GetSnowfall().Set( snowfall, 0, 0);
98 m_Weather.GetFog().Set( fog, 0, 0);
99
100 if ( storm.Count() == 3 )
101 {
102 m_Weather.SetStorm(storm.Get(0),storm.Get(1),storm.Get(2));
103 }
104
105 if ( windspeed != -1 )
106 {
107 m_Weather.SetWindSpeed(windspeed);
108 m_Weather.SetWindMaximumSpeed(windspeed);
109 m_Weather.SetWindFunctionParams(1,1,1);
110 }
111
112 if (m_Weather.GetSandstorm().IsActive())
113 m_Weather.GetSandstorm().Stop(0, false);
114
116 m_Character.LoadCharacterData(m_CharacterPos, m_CharacterRot);
117
118 PPEffects.Init(); //Deprecated, left in for legacy purposes only
119
121 }
DayZGame g_Game
Определения DayZGame.c:4074
vector position
Определения DustKickupEffects.c:20
vector m_CharacterPos
Определения DayZIntroScene.c:6
vector SwapYZ(vector vec)
Определения DayZIntroScene.c:174
void SetInitPostprocesses()
Since this can get created at the same time as DayZGame, non-static postprocesses need to be deffered...
Определения DayZIntroScene.c:152
Weather m_Weather
Определения DayZIntroScene.c:8
Camera m_Camera
Определения DayZIntroScene.c:4
vector m_CameraTrans[4]
Определения DayZIntroScene.c:5
ref IntroSceneCharacter m_Character
Определения DayZIntroScene.c:3
vector m_CharacterRot
Определения DayZIntroScene.c:7
vector m_Target
Определения DayZIntroScene.c:9
vector SnapToGround(vector pos)
Определения DayZIntroScene.c:185
void IntroSceneCharacter()
Определения IntroSceneCharacter.c:19
proto vector Multiply4(vector mat[4])
Transforms position.
array< float > TFloatArray
Определения EnScript.c:732
array< int > TIntArray
Определения EnScript.c:733
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
proto native void SetDate(int year, int month, int day, int hour, int minute)
Sets actual ingame world time.
const int CALL_CATEGORY_GUI
Определения 3_Game/DayZ/tools/tools.c:9

Перекрестные ссылки Math::Atan2(), CALL_CATEGORY_GUI, Class::CastTo(), Math3D::DirectionAndUpMatrix(), g_Game, PPEffects::Init(), Managed::IntroSceneCharacter(), m_Camera, m_CameraTrans, m_Character, m_CharacterPos, m_CharacterRot, m_Target, m_Weather, Math3D::MatrixIdentity4(), vector::Multiply4(), position, Math::RAD2DEG, Math::RandomInt(), World::SetDate(), SetInitPostprocesses(), SnapToGround(), SwapYZ() и Vector().

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