DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
DayZIntroScene.c
См. документацию.
2{
4 protected Camera m_Camera;
5 protected vector m_CameraTrans[4];
8 protected Weather m_Weather;
9 protected vector m_Target;
10
11 protected ref OptionsMenu m_OptionsMenu;
12
14 {
15 string root_path = "cfgCharacterScenes " + g_Game.GetWorldName();
16
17 int count = g_Game.ConfigGetChildrenCount(root_path);
18 int index = Math.RandomInt(0, count - 1);
19 string childName;
20 g_Game.ConfigGetChildName(root_path, index, childName);
21
22 string scene_path = root_path + " " + childName;
23 m_Target = SwapYZ(g_Game.ConfigGetVector(scene_path + " target"));
24 vector position = SwapYZ(g_Game.ConfigGetVector(scene_path + " position"));
25 TIntArray date = new TIntArray;
26 TFloatArray storm = new TFloatArray;
27 g_Game.ConfigGetIntArray(scene_path + " date", date);
28 float fov = g_Game.ConfigGetFloat(scene_path + " fov");
29 float overcast = g_Game.ConfigGetFloat(scene_path + " overcast");
30 float rain = g_Game.ConfigGetFloat(scene_path + " rain");
31 float fog = g_Game.ConfigGetFloat(scene_path + " fog");
32 float windspeed = -1;
33 if ( g_Game.ConfigIsExisting(scene_path + " windspeed") ) windspeed = g_Game.ConfigGetFloat(scene_path + " windspeed");
34 g_Game.ConfigGetFloatArray(scene_path + " storm", storm);
35
36 World world = g_Game.GetWorld();
37
38 if (world && date.Count() >= 5)
39 {
40 world.SetDate(date.Get(0), date.Get(1), date.Get(2), date.Get(3), date.Get(4));
41 }
42
44 Class.CastTo(m_Camera, g_Game.CreateObject("staticcamera", SnapToGround(position), true)); //Vector(position[0] , position[1] + 1, position[2])
45
47
48 if (m_Camera)
49 {
50 //m_Camera.SetPosition(Vector(m_Camera.GetPosition()[0],m_Camera.GetPosition()[1]+0,m_Camera.GetPosition()[2]));
51 m_Camera.LookAt(m_Target);
52 m_Camera.SetFOV(fov);
53 m_Camera.SetFocus(5.0, 0.0); //5.0, 1.0
54
55 m_Camera.SetActive(true);
56
58 m_CameraTrans[3] = m_Camera.GetPosition();
59 m_CharacterPos = Vector(0.685547, -0.988281, 3.68823).Multiply4(m_CameraTrans);
60
61 float pos_x = m_CharacterPos[0];
62 float pos_z = m_CharacterPos[2];
63 float pos_y = GetGame().SurfaceY(pos_x, pos_z);
64 vector ground_demo_pos = Vector(pos_x, pos_y, pos_z);
65 m_CharacterPos = ground_demo_pos;
66
67 vector to_cam_dir = m_Camera.GetPosition() - m_CharacterPos;
68 m_CharacterRot[0] = Math.Atan2(to_cam_dir[0], to_cam_dir[2]) * Math.RAD2DEG;
69 }
70
71 m_Weather = g_Game.GetWeather();
72 m_Weather.GetOvercast().SetLimits( overcast, overcast );
73 m_Weather.GetRain().SetLimits( rain, rain );
74 m_Weather.GetFog().SetLimits( fog, fog );
75
76 m_Weather.GetOvercast().Set( overcast, 0, 0);
77 m_Weather.GetRain().Set( rain, 0, 0);
78 m_Weather.GetFog().Set( fog, 0, 0);
79
80 if ( storm.Count() == 3 )
81 {
82 m_Weather.SetStorm(storm.Get(0),storm.Get(1),storm.Get(2));
83 }
84
85 if ( windspeed != -1 )
86 {
87 m_Weather.SetWindSpeed(windspeed);
88 m_Weather.SetWindMaximumSpeed(windspeed);
89 m_Weather.SetWindFunctionParams(1,1,1);
90 }
91
93 m_Character.LoadCharacterData(m_CharacterPos, m_CharacterRot);
94
95 PPEffects.Init(); //Deprecated, left in for legacy purposes only
96
98 }
99
105
106 //==============================================
107 // GetIntroSceneCharacter
108 //==============================================
113
114 //==============================================
115 // GetIntroCamera
116 //==============================================
118 {
119 return m_Camera;
120 }
121
122 //==============================================
123 // ResetIntroCamera
124 //==============================================
126 {
128 {
129 GetIntroCamera().LookAt( GetIntroCharacter().GetPosition() + Vector( 0, 1, 0 ) );
130 //GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater( SceneCharacterSetPos, 250 );
131 }
132 }
133
135 protected void SetInitPostprocesses()
136 {
137 PPERequesterBank.GetRequester(PPERequester_BurlapSackEffects).Stop();
138 }
139
140 protected void GetSelectedUserName()
141 {
142 string name;
143 BiosUserManager user_manager = GetGame().GetUserManager();
144 if( user_manager )
145 {
146 BiosUser user = user_manager.GetSelectedUser();
147 if( user )
148 {
149 g_Game.SetPlayerGameName( user.GetName() );
150 return;
151 }
152 }
154 }
155
156 // ------------------------------------------------------------
157 protected vector SwapYZ(vector vec)
158 {
159 vector tmp;
160 tmp[0] = vec[0];
161 tmp[1] = vec[2];
162 tmp[2] = vec[1];
163
164 return tmp;
165 }
166
167 // ------------------------------------------------------------
169 {
170 float pos_x = pos[0];
171 float pos_z = pos[2];
172 float pos_y = GetGame().SurfaceY(pos_x, pos_z);
173 vector tmp_pos = Vector(pos_x, pos_y, pos_z);
174 tmp_pos[1] = tmp_pos[1] + pos[1];
175
176 return tmp_pos;
177 }
178};
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
DayZGame g_Game
Определения DayZGame.c:3868
PPERequesterCategory
Определения PPEConstants.c:29
proto native owned string GetName()
Определения BiosUserManager.c:9
proto native BiosUser GetSelectedUser()
Returns the currently selected user.
proto native float SurfaceY(float x, float z)
override ScriptCallQueue GetCallQueue(int call_category)
Определения DayZGame.c:1187
proto native BiosUserManager GetUserManager()
proto native void ObjectDelete(Object obj)
Определения Camera.c:85
Super root of all classes in Enforce script.
Определения EnScript.c:11
void GetSelectedUserName()
Определения DayZIntroScene.c:140
vector m_CharacterPos
Определения DayZIntroScene.c:6
vector SwapYZ(vector vec)
Определения DayZIntroScene.c:157
void ~DayZIntroScene()
Определения DayZIntroScene.c:100
IntroSceneCharacter GetIntroCharacter()
Определения DayZIntroScene.c:109
ref OptionsMenu m_OptionsMenu
Определения DayZIntroScene.c:11
void SetInitPostprocesses()
Since this can get created at the same time as DayZGame, non-static postprocesses need to be deffered...
Определения DayZIntroScene.c:135
Weather m_Weather
Определения DayZIntroScene.c:8
Camera GetIntroCamera()
Определения DayZIntroScene.c:117
void ResetIntroCamera()
Определения DayZIntroScene.c:125
Camera m_Camera
Определения DayZIntroScene.c:4
vector m_CameraTrans[4]
Определения DayZIntroScene.c:5
ref IntroSceneCharacter m_Character
Определения DayZIntroScene.c:3
void DayZIntroScene()
Определения DayZIntroScene.c:13
vector m_CharacterRot
Определения DayZIntroScene.c:7
vector m_Target
Определения DayZIntroScene.c:9
vector SnapToGround(vector pos)
Определения DayZIntroScene.c:168
Определения constants.c:659
PlayerBase GetCharacterObj()
Определения IntroSceneCharacter.c:57
vector GetPosition()
Определения IntroSceneCharacter.c:129
void IntroSceneCharacter()
Определения IntroSceneCharacter.c:19
TODO doc.
Определения EnScript.c:118
Определения EnMath3D.c:28
Определения EnMath.c:7
static PPEManager GetPPEManager()
Returns the manager instance singleton.
Определения PPEManager.c:27
Static component of PPE manager, used to hold the instance.
Определения PPEManager.c:3
static void Init()
Определения PPEffects.c:52
Deprecated; 'PPEManager' used instead.
Определения PPEffects.c:3
proto void Call(func fn, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
adds call into the queue with given parameters and arguments (arguments are held in memory until the ...
Определения Weather.c:165
proto native void SetDate(int year, int month, int day, int hour, int minute)
Sets actual ingame world time.
Определения World.c:2
proto vector Multiply4(vector mat[4])
Transforms position.
Определения EnConvert.c:106
proto native CGame GetGame()
const string DEFAULT_CHARACTER_NAME
Определения constants.c:980
array< float > TFloatArray
Определения EnScript.c:686
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
array< int > TIntArray
Определения EnScript.c:687
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 proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
static const float RAD2DEG
Определения EnMath.c:16
const int CALL_CATEGORY_GUI
Определения tools.c:9