DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
missionBase.c
См. документацию.
2{
3 PluginDeveloper m_ModuleDeveloper;
4 PluginKeyBinding m_ModuleKeyBinding
5
9
11
12 autoptr ObjectSnapCallback m_InventoryDropCallback;
13
16
18 {
19 SetDispatcher(new DispatcherCaller);
20
22
24
27
28 GetDayZGame().GetYieldDataInitInvoker().Insert(InitWorldYieldDataDefaults);
30
31 #ifndef SERVER
32 GetDayZGame().GetAnalyticsClient().RegisterEvents();
34
36 #ifdef DIAG_DEVELOPER
37 GetOnTimeChanged().Insert(m_DynamicMusicPlayer.SetTimeOfDate);
38 #endif
40 #endif
41 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
42 {
44 }
45 GetOnInputDeviceConnected().Insert(UpdateInputDevicesAvailability);
46 GetOnInputDeviceDisconnected().Insert(UpdateInputDevicesAvailability);
47
48 // There is a possibility different maps/servers may be using different effects
51 }
52
54 {
55 // prevent use after free with typename being destructed when switching mission / exitting game
56 SetDispatcher(null);
57
58 GetDayZGame().GetYieldDataInitInvoker().Remove(InitWorldYieldDataDefaults);
59
61
62 if ( GetGame().IsClient() )
63 {
64 GetDayZGame().GetAnalyticsClient().UnregisterEvents();
65 }
67
68 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
69 {
71 }
72
73 #ifndef SERVER
75 ExplosivesBase.Cleanup();
76 #endif
77 }
78
79 override ObjectSnapCallback GetInventoryDropCallback()
80 {
82 }
83
84 override void OnUpdate(float timeslice)
85 {
86 super.OnUpdate(timeslice);
87
88 #ifndef SERVER
89 m_DynamicMusicPlayer.OnUpdate(timeslice);
90 #endif
91 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
92 {
94 }
95 }
96
97 override void OnEvent(EventType eventTypeId, Param params)
98 {
99 super.OnEvent(eventTypeId, params);
100
101 m_DynamicMusicPlayer.OnGameEvent(eventTypeId, params);
102 }
103
105 {
106 string worldName = "empty";
107 GetGame().GetWorldName(worldName);
108 worldName.ToLower();
109
110 switch (worldName)
111 {
112 case "chernarusplus":
113 m_WorldData = new ChernarusPlusData();
115 break;
116
117 case "enoch":
118 m_WorldData = new EnochData();
120 break;
121
122 case "sakhal":
123 m_WorldData = new SakhalData();
125 break;
126
127 #ifdef PLATFORM_CONSOLE
128 case "mainmenuscenexbox":
129 m_WorldData = new MainMenuWorldData();
131 break
132 #endif
133
134 default:
135 m_WorldData = new ChernarusPlusData();
137 break;
138 }
139 }
140
143 {
144 //catch yield data beyond 3_Game level, defaults used for ChernarusPlusData
145 if (bank)
146 {
147 //fishies
148 bank.RegisterYieldItem(new YieldItemCarp(42));
151 bank.RegisterYieldItem(new YieldItemBitterlings(15));
152
153 //fishy junk
154 bank.RegisterYieldItem(new YieldItemJunk(1,"Wellies_Brown"));
155 bank.RegisterYieldItem(new YieldItemJunk(1,"Wellies_Grey"));
156 bank.RegisterYieldItem(new YieldItemJunk(1,"Wellies_Green"));
157 bank.RegisterYieldItem(new YieldItemJunk(1,"Wellies_Black"));
158 bank.RegisterYieldItem(new YieldItemJunkEmpty(1,"Pot"));
159
160 //non-fishies
162 bank.RegisterYieldItem(new YieldItemDeadRooster(1));
164 bank.RegisterYieldItem(new YieldItemDeadChicken_Spotted(1));
166 bank.RegisterYieldItem(new YieldItemDeadFox(2));
167 }
168 }
169
171 {
172 return m_WorldLighting;
173 }
174
176 {
177 return m_WorldData;
178 }
179
184
186 {
187 UIScriptedMenu menu = NULL;
188
189 switch (id)
190 {
191 case MENU_MAIN:
192#ifdef PLATFORM_CONSOLE
193 menu = new MainMenuConsole;
194#else
195 menu = new MainMenu;
196#endif
197 break;
198 case MENU_INGAME:
199#ifdef PLATFORM_CONSOLE
200 menu = new InGameMenuXbox;
201#else
202 menu = new InGameMenu;
203#endif
204 break;
205 case MENU_CHARACTER:
206 menu = new CharacterCreationMenu;
207 break;
208 case MENU_OPTIONS:
209 menu = new OptionsMenu;
210 break;
211 case MENU_STARTUP:
212 menu = new StartupMenu;
213 break;
214 case MENU_LOADING:
215 menu = new LoadingMenu;
216 break;
217 case MENU_INVENTORY:
218 menu = new InventoryMenu;
219 break;
220 case MENU_INSPECT:
221 menu = new InspectMenuNew;
222 break;
223 case MENU_EARLYACCESS:
224 menu = new EarlyAccessMenu;
225 break;
227 menu = new ScriptConsole;
228 break;
230 menu = new ScriptConsoleNewPresetDialog;
231 break;
233 menu = new ScriptConsoleRenamePresetDialog;
234 break;
236 menu = new ScriptConsoleUniversalInfoDialog;
237 break;
238 case MENU_CHAT_INPUT:
239 menu = new ChatInputMenu;
240 break;
242 menu = new PresetsMenu;
243 break;
244 case MENU_NOTE:
245 menu = new NoteMenu;
246 break;
247 case MENU_MAP:
248 menu = new MapMenu;
249 break;
250 case MENU_BOOK:
251 menu = new BookMenu;
252 break;
254 menu = new SceneEditorMenu;
255 break;
256 case MENU_HELP_SCREEN:
257 menu = new HelpScreen;
258 break;
259 case MENU_GESTURES:
260 menu = new GesturesMenu;
261 break;
262 case MENU_LOGOUT:
263 menu = new LogoutMenu;
264 break;
266 menu = new TitleScreenMenu;
267 break;
269 menu = new ControlsXboxNew;
270 break;
272 menu = new RadialQuickbarMenu;
273 break;
275 menu = new ServerBrowserMenuNew;
276 break;
277 case MENU_LOGIN_QUEUE:
278 menu = new LoginQueueBase;
279 break;
280 case MENU_LOGIN_TIME:
281 menu = new LoginTimeBase;
282 break;
284 menu = new CameraToolsMenu;
285 break;
286 case MENU_VIDEO:
287 menu = new MainMenuVideo;
288 break;
289 case MENU_KEYBINDINGS:
290 menu = new KeybindingsMenu;
291 break;
292 case MENU_TUTORIAL:
293 menu = new TutorialsMenu;
294 break;
295 case MENU_CREDITS:
296 menu = new CreditsMenu;
297 break;
299 menu = new InviteMenu;
300 break;
302 menu = new ItemDropWarningMenu;
303 break;
305 menu = new InputDeviceDisconnectWarningMenu;
306 break;
309 break;
311 menu = new RespawnDialogue;
312 break;
315 break;
316 case MENU_LOC_ADD:
317 menu = new ScriptConsoleAddLocation;
318 break;
320 menu = new MissionLoader;
321 break;
323 menu = new ConnectionDialogue;
324 break;
325 }
326
327 if (menu)
328 {
329 menu.SetID(id);
330 }
331
332 return menu;
333 }
334
336
338 {
339 g_Game.RefreshMouseCursorVisibility();
340 }
341
342 override void OnKeyPress(int key)
343 {
344 super.OnKeyPress(key);
345
346#ifdef DIAG_DEVELOPER
347 if ( PluginKeyBinding.instance )
348 {
349 PluginKeyBinding.instance.OnKeyPress(key);
350 }
351#endif
352 }
353
356
358 {
359 UIScriptedMenu current_menu = GetGame().GetUIManager().GetMenu();
360
361 if ( current_menu )
362 {
363 Widget widget_root = current_menu.GetLayoutRoot();
364
365 if ( widget_root )
366 {
367 m_WidgetsTotal = 0;
369
370 Print( widget_root.GetName() +" ("+ widget_root.GetTypeName() +")");
371
372 DumpWidget(widget_root.GetChildren(), 1);
373
374 Print( "Widgets TOTAL: "+ m_WidgetsTotal.ToString() +" INVISIBLE: "+ m_WidgetsInvisible.ToString() +" VISIBLE: "+ (m_WidgetsTotal - m_WidgetsInvisible).ToString() );
375 }
376 }
377 }
378
379 void DumpWidget(Widget w, int tabs)
380 {
381 if ( !w )
382 {
383 return;
384 }
385
387
388 string tmp;
389 for (int i = 0; i < tabs; i++)
390 {
391 tmp += " ";
392 }
393
394 string invisible = "";
395
396 if ( !w.IsVisibleHierarchy() )
397 {
398 invisible = "[invisible]";
400 }
401
402 Print( tmp +"- "+ w.GetName() +" ("+ w.GetTypeName() +") "+ invisible );
403
404 bool collapse = false;
405 if ( w.GetChildren() )
406 {
407 collapse = true;
408 Print(tmp +"{");
409 }
410
411 DumpWidget(w.GetChildren(), tabs + 1);
412
413 if ( collapse )
414 {
415 Print(tmp +"}");
416 }
417
418 DumpWidget(w.GetSibling(), tabs);
419 }
420
421 override void OnKeyRelease(int key)
422 {
423 super.OnKeyRelease(key);
424
425 if ( GetGame().IsDebug() )
426 {
427 if ( PluginKeyBinding.instance != NULL )
428 {
429 PluginKeyBinding.instance.OnKeyRelease(key);
430 }
431 }
432 }
433
434 override void OnMouseButtonPress(int button)
435 {
436 super.OnMouseButtonPress(button);
437
438 if ( GetGame().IsDebug() )
439 {
440 if ( PluginKeyBinding.instance != NULL )
441 {
442 PluginKeyBinding.instance.OnMouseButtonPress(button);
443 }
444 }
445 }
446
447 override void OnMouseButtonRelease(int button)
448 {
449 super.OnMouseButtonRelease(button);
450
451 if ( GetGame().IsDebug() )
452 {
453 if ( PluginKeyBinding.instance != NULL )
454 {
455 PluginKeyBinding.instance.OnMouseButtonRelease(button);
456 }
457 }
458 }
459
460 void OnLog(string msg_log)
461 {
462 if ( PluginDeveloper.GetInstance() )
463 {
464 if ( GetGame().IsServer() && !GetGame().IsMultiplayer() )
465 {
466 PluginDeveloper.GetInstance().PrintLogClient(msg_log);
467 }
468 else if ( GetGame().IsMultiplayer() && GetGame().IsClient() )
469 {
470 PluginDeveloper.GetInstance().PrintLogClient(msg_log);
471 }
472 }
473 }
474
476 {
477 for(int i = 0; i < m_DummyPlayers.Count(); i++)
478 {
479 if (m_DummyPlayers.Get(i))
480 {
481 m_DummyPlayers.Get(i).OnTick();
482 }
483 }
484 }
485
486 override void AddDummyPlayerToScheduler(Man player)
487 {
488 m_DummyPlayers.Insert(PlayerBase.Cast( player ));
489 }
490
491 #ifdef DIAG_DEVELOPER
492 void UpdateInputDeviceDiag()
493 {
494 DisplayInputDebug(DiagMenu.GetBool(DiagMenuIDs.MISC_INPUT_DEVICE_DISCONNECT_DBG));
495 }
496
497 void DisplayInputDebug(bool show)
498 {
499 DbgUI.BeginCleanupScope();
500 DbgUI.Begin("InputDeviceDebug", 60, 60);
501
502 if (show)
503 {
504 DbgUI.Text("Gamepad: " + g_Game.GetInput().IsActiveGamepadSelected());
505 DbgUI.Text("Mouse: " + g_Game.GetInput().IsMouseConnected());
506 DbgUI.Text("Keyboard: " + g_Game.GetInput().IsKeyboardConnected());
507 }
508
509 DbgUI.End();
510 DbgUI.EndCleanupScope();
511 }
512 #endif
513
515 PluginAdditionalInfo m_ModuleServerInfo;
516}
517
518class MissionDummy extends MissionBase
519{
520}
DayZGame g_Game
Определения DayZGame.c:3868
DayZGame GetDayZGame()
Определения DayZGame.c:3870
void SetDispatcher(Dispatcher dispatcher)
Определения Dispatcher.c:31
DiagMenuIDs
Определения EDiagMenuIDs.c:2
void ExplosivesBase()
Определения ExplosivesBase.c:42
void InventoryMenu()
Определения InventoryMenu.c:20
void PluginManagerInit()
Определения PluginManager.c:287
void PluginManagerDelete()
Определения PluginManager.c:297
proto native UAInputAPI GetUApi()
void YieldItemJunk(int baseWeight, string type)
Определения YieldsFishingJunk.c:44
static void Cleanup()
Определения AmmoTypes.c:74
static void Init()
Определения AmmoTypes.c:33
Определения AmmoTypes.c:2
proto native UIManager GetUIManager()
proto void GetWorldName(out string world_name)
void RegisterYieldItem(YieldItemBase data)
Определения CatchYieldBank.c:24
Определения CatchYieldBank.c:4
Определения EnDebug.c:233
Определения Enoch.c:3
LoginQueue position when using -connect since mission is not created yet.
Определения DayZGame.c:195
LoginTime when using -connect since mission is not created yet.
Определения DayZGame.c:329
override bool IsServer()
Определения missionServer.c:182
Определения missionGameplay.c:2
override void AddDummyPlayerToScheduler(Man player)
Определения missionBase.c:486
ref DynamicMusicPlayer m_DynamicMusicPlayer
Определения missionBase.c:14
PluginDeveloper m_ModuleDeveloper
Определения missionBase.c:3
override void OnEvent(EventType eventTypeId, Param params)
Определения missionBase.c:97
int m_WidgetsInvisible
Определения missionBase.c:355
override void OnMouseButtonRelease(int button)
Определения missionBase.c:447
void DumpWidget(Widget w, int tabs)
Определения missionBase.c:379
override void OnKeyPress(int key)
Определения missionBase.c:342
void InitWorldYieldDataDefaults(CatchYieldBank bank)
Used to initialize defaults to WorldData base class from 4_World module. For proper init of your cust...
Определения missionBase.c:142
ref array< PlayerBase > m_DummyPlayers
Определения missionBase.c:10
override DynamicMusicPlayer GetDynamicMusicPlayer()
Определения missionBase.c:180
PluginKeyBinding m_ModuleKeyBinding ref WidgetEventHandler m_WidgetEventHandler
Определения missionBase.c:6
override ObjectSnapCallback GetInventoryDropCallback()
Определения missionBase.c:79
void ~MissionBase()
Определения missionBase.c:53
autoptr ObjectSnapCallback m_InventoryDropCallback
Определения missionBase.c:12
void UpdateInputDevicesAvailability()
Определения missionBase.c:337
int m_WidgetsTotal
Определения missionBase.c:354
void OnLog(string msg_log)
Определения missionBase.c:460
void MissionBase()
Определения missionBase.c:17
ref DynamicMusicPlayerRegistry m_DynamicMusicPlayerRegistry
Определения missionBase.c:15
override void OnMouseButtonPress(int button)
Определения missionBase.c:434
override WorldLighting GetWorldLighting()
Определения missionBase.c:170
override void OnUpdate(float timeslice)
Определения missionBase.c:84
ref WorldData m_WorldData
Определения missionBase.c:7
override WorldData GetWorldData()
Определения missionBase.c:175
override void OnKeyRelease(int key)
Определения missionBase.c:421
PluginAdditionalInfo m_ModuleServerInfo
DEPRECATED.
Определения missionBase.c:515
override UIScriptedMenu CreateScriptedMenu(int id)
Определения missionBase.c:185
void InitialiseWorldData()
Определения missionBase.c:104
void DumpCurrentUILayout()
Определения missionBase.c:357
ref WorldLighting m_WorldLighting
Определения missionBase.c:8
void UpdateDummyScheduler()
Определения missionBase.c:475
Определения missionBase.c:2
static void Init()
Определения OutdoorThermometer.c:11
static void Update(float timeslice)
Определения OutdoorThermometer.c:44
static void Cleanup()
Определения OutdoorThermometer.c:18
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения PlayerBaseClient.c:2
static void Cleanup()
Cleanup method to properly clean up the static data.
Определения EffectManager.c:518
Manager class for managing Effect (EffectParticle, EffectSound)
Определения EffectManager.c:6
Определения Sakhal.c:3
static void Init()
Определения SoundSetMap.c:6
Определения SoundSetMap.c:2
static void DestroyInstance()
Определения TriggerEffectManager.c:15
proto native void UpdateControls()
proto native UIScriptedMenu GetMenu()
Returns most-top open menu.
Определения DayZGame.c:64
Определения EnWidgets.c:190
Keeps information about currently loaded world, like temperature.
Определения WorldData.c:3
Определения WorldLighting.c:2
Определения YieldsFish.c:69
Определения YieldsFish.c:97
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
proto void Print(void var)
Prints content of variable to console/log.
static proto bool GetBool(int id, bool reverse=false)
Get value as bool from the given script id.
const int MENU_CONNECT_ERROR
Определения constants.c:211
const int MENU_TUTORIAL
Определения constants.c:204
const int MENU_HELP_SCREEN
Определения constants.c:193
const int MENU_TITLE_SCREEN
Определения constants.c:196
const int MENU_KEYBINDINGS
Определения constants.c:203
const int MENU_XBOX_CONTROLS
Определения constants.c:197
const int MENU_SCRIPTCONSOLE
Определения constants.c:185
const int MENU_WARNING_TELEPORT
Определения constants.c:210
const int MENU_LOGOUT
Определения constants.c:195
const int MENU_INSPECT
Определения constants.c:179
const int MENU_LOGIN_TIME
Определения constants.c:207
const int MENU_MAP
Определения constants.c:191
const int MENU_MAIN
Определения constants.c:182
const int MENU_SERVER_BROWSER
Определения constants.c:200
const int MENU_WARNING_ITEMDROP
Определения constants.c:208
const int MENU_MISSION_LOADER
Определения constants.c:214
const int MENU_SCRIPTCONSOLE_UNIVERSAL_INFO_DIALOG
Определения constants.c:213
const int MENU_STARTUP
Определения constants.c:184
const int MENU_RESPAWN_DIALOGUE
Определения constants.c:209
const int MENU_OPTIONS
Определения constants.c:183
const int MENU_CREDITS
Определения constants.c:205
const int MENU_CAMERA_TOOLS
Определения constants.c:201
const int MENU_CHARACTER
Определения constants.c:174
const int MENU_INVITE_TIMER
Определения constants.c:206
const int MENU_GESTURES
Определения constants.c:194
const int MENU_CONNECTION_DIALOGUE
Определения constants.c:215
const int MENU_LOGIN_QUEUE
Определения constants.c:199
const int MENU_SCENE_EDITOR
Определения constants.c:177
const int MENU_SCRIPTCONSOLE_DIALOG_PRESET_NAME
Определения constants.c:187
const int MENU_WARNING_INPUTDEVICE_DISCONNECT
Определения constants.c:212
const int MENU_CONTROLS_PRESET
Определения constants.c:189
const int MENU_EARLYACCESS
Определения constants.c:176
const int MENU_SCRIPTCONSOLE_DIALOG_PRESET_RENAME
Определения constants.c:188
const int MENU_INVENTORY
Определения constants.c:180
const int MENU_NOTE
Определения constants.c:190
const int MENU_LOADING
Определения constants.c:181
const int MENU_RADIAL_QUICKBAR
Определения constants.c:198
const int MENU_BOOK
Определения constants.c:192
const int MENU_LOC_ADD
Определения constants.c:172
const int MENU_INGAME
Определения constants.c:178
const int MENU_CHAT_INPUT
Определения constants.c:186
const int MENU_VIDEO
Определения constants.c:202
proto int ToLower()
Changes string to lowercase. Returns length.
TypeID EventType
Определения EnWidgets.c:55