DayZ 1.30
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
28
29 GetDayZGame().GetYieldDataInitInvoker().Insert(InitWorldYieldDataDefaults);
31
32 #ifndef SERVER
33 GetDayZGame().GetAnalyticsClient().RegisterEvents();
35
37 #ifdef DIAG_DEVELOPER
38 GetOnTimeChanged().Insert(m_DynamicMusicPlayer.SetTimeOfDate);
39 #endif
40 AmmoTypesAPI.Init();
41 #endif
42 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
43 {
45 }
46 GetOnInputDeviceConnected().Insert(UpdateInputDevicesAvailability);
47 GetOnInputDeviceDisconnected().Insert(UpdateInputDevicesAvailability);
48
49 // There is a possibility different maps/servers may be using different effects
52 }
53
55 {
56 // prevent use after free with typename being destructed when switching mission / exitting game
57 SetDispatcher(null);
58
59 GetDayZGame().GetYieldDataInitInvoker().Remove(InitWorldYieldDataDefaults);
60
62
63 if ( g_Game.IsClient() )
64 {
65 GetDayZGame().GetAnalyticsClient().UnregisterEvents();
66 }
68
69 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
70 {
72 }
73
74 #ifndef SERVER
75 AmmoTypesAPI.Cleanup();
76 ExplosivesBase.Cleanup();
77 #endif
78 }
79
80 override ObjectSnapCallback GetInventoryDropCallback()
81 {
83 }
84
85 override void OnUpdate(float timeslice)
86 {
87 super.OnUpdate(timeslice);
88
89 #ifndef SERVER
90 #ifndef NO_GUI
91 m_DynamicMusicPlayer.OnUpdate(timeslice);
92 #endif
93 #endif
94 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
95 {
97 }
98 }
99
100 override void OnEvent(EventType eventTypeId, Param params)
101 {
102 super.OnEvent(eventTypeId, params);
103
104 m_DynamicMusicPlayer.OnGameEvent(eventTypeId, params);
105 }
106
108 {
109 string worldName = "empty";
110 g_Game.GetWorldName(worldName);
111 worldName.ToLower();
112
113 switch (worldName)
114 {
115 case "chernarusplus":
118 break;
119
120 case "enoch":
121 m_WorldData = new EnochData();
123 break;
124
125 case "sakhal":
126 m_WorldData = new SakhalData();
128 break;
129
130 case "nasdara":
131 m_WorldData = new NasdaraData();
133 break;
134
135 case "samplemap5":
136 m_WorldData = new NasdaraData();
138 break;
139
140 #ifdef PLATFORM_CONSOLE
141 case "mainmenuscenexbox":
142 m_WorldData = new MainMenuWorldData();
144 break
145 #endif
146
147 default:
150 break;
151 }
152 }
153
156 {
157 //catch yield data beyond 3_Game level, defaults used for ChernarusPlusData
158 if (bank)
159 {
160 //fishies
161 bank.RegisterYieldItem(new YieldItemCarp(42));
164 bank.RegisterYieldItem(new YieldItemBitterlings(15));
165
166 //fishy junk
167 bank.RegisterYieldItem(new YieldItemJunk(1,"Wellies_Brown"));
168 bank.RegisterYieldItem(new YieldItemJunk(1,"Wellies_Grey"));
169 bank.RegisterYieldItem(new YieldItemJunk(1,"Wellies_Green"));
170 bank.RegisterYieldItem(new YieldItemJunk(1,"Wellies_Black"));
171 bank.RegisterYieldItem(new YieldItemJunkEmpty(1,"Pot"));
172
173 //non-fishies
175 bank.RegisterYieldItem(new YieldItemDeadRooster(1));
177 bank.RegisterYieldItem(new YieldItemDeadChicken_Spotted(1));
179 bank.RegisterYieldItem(new YieldItemDeadFox(2));
180 }
181 }
182
184 {
185 return m_WorldLighting;
186 }
187
189 {
190 return m_WorldData;
191 }
192
197
199 {
200 UIScriptedMenu menu = NULL;
201
202 switch (id)
203 {
204 case MENU_MAIN:
205#ifdef PLATFORM_CONSOLE
206 menu = new MainMenuConsole;
207#else
208 menu = new MainMenu;
209#endif
210 break;
211 case MENU_INGAME:
212#ifdef PLATFORM_CONSOLE
213 menu = new InGameMenuXbox;
214#else
215 menu = new InGameMenu;
216#endif
217 break;
218 case MENU_CHARACTER:
219 menu = new CharacterCreationMenu;
220 break;
221 case MENU_OPTIONS:
222 menu = new OptionsMenu;
223 break;
224 case MENU_STARTUP:
225 menu = new StartupMenu;
226 break;
227 case MENU_LOADING:
228 menu = new LoadingMenu;
229 break;
230 case MENU_INVENTORY:
231 menu = new InventoryMenu;
232 break;
233 case MENU_INSPECT:
234 menu = new InspectMenuNew;
235 break;
236 case MENU_EARLYACCESS:
237 menu = new EarlyAccessMenu;
238 break;
240 menu = new ScriptConsole;
241 break;
243 menu = new ScriptConsoleNewPresetDialog;
244 break;
246 menu = new ScriptConsoleRenamePresetDialog;
247 break;
249 menu = new ScriptConsoleUniversalInfoDialog;
250 break;
251 case MENU_CHAT_INPUT:
252 menu = new ChatInputMenu;
253 break;
255 menu = new PresetsMenu;
256 break;
257 case MENU_NOTE:
258 menu = new NoteMenu;
259 break;
260 case MENU_MAP:
261 menu = new MapMenu;
262 break;
263 case MENU_BOOK:
264 menu = new BookMenu;
265 break;
267 menu = new SceneEditorMenu;
268 break;
269 case MENU_HELP_SCREEN:
270 menu = new HelpScreen;
271 break;
272 case MENU_GESTURES:
273 menu = new GesturesMenu;
274 break;
275 case MENU_LOGOUT:
276 menu = new LogoutMenu;
277 break;
279 menu = new TitleScreenMenu;
280 break;
282 menu = new ControlsXboxNew;
283 break;
285 menu = new RadialQuickbarMenu;
286 break;
288 menu = new ServerBrowserMenuNew;
289 break;
290 case MENU_LOGIN_QUEUE:
291 menu = new LoginQueueBase;
292 break;
293 case MENU_LOGIN_TIME:
294 menu = new LoginTimeBase;
295 break;
297 menu = new CameraToolsMenu;
298 break;
299 case MENU_VIDEO:
300 menu = new MainMenuVideo;
301 break;
302 case MENU_KEYBINDINGS:
303 menu = new KeybindingsMenu;
304 break;
305 case MENU_TUTORIAL:
306 menu = new TutorialsMenu;
307 break;
308 case MENU_CREDITS:
309 menu = new CreditsMenu;
310 break;
312 menu = new InviteMenu;
313 break;
315 menu = new ItemDropWarningMenu;
316 break;
318 menu = new InputDeviceDisconnectWarningMenu;
319 break;
322 break;
324 menu = new RespawnDialogue;
325 break;
328 break;
329 case MENU_LOC_ADD:
330 menu = new ScriptConsoleAddLocation;
331 break;
333 menu = new MissionLoader;
334 break;
336 menu = new ConnectionDialogue;
337 break;
339 menu = new DigitalCodeLockUI;
340 break;
341#ifdef DIAG_DEVELOPER
343 menu = new UndergroundTriggerEditorMenu();
344#endif
345 break;
346 }
347
348 if (menu)
349 {
350 menu.SetID(id);
351 }
352
353 return menu;
354 }
355
357
359 {
360 g_Game.RefreshMouseCursorVisibility();
361 }
362
363 override void OnKeyPress(int key)
364 {
365 super.OnKeyPress(key);
366
367#ifdef DIAG_DEVELOPER
368 if ( PluginKeyBinding.instance )
369 {
370 PluginKeyBinding.instance.OnKeyPress(key);
371 }
372#endif
373 }
374
377
379 {
380 UIScriptedMenu current_menu = g_Game.GetUIManager().GetMenu();
381
382 if ( current_menu )
383 {
384 Widget widget_root = current_menu.GetLayoutRoot();
385
386 if ( widget_root )
387 {
388 m_WidgetsTotal = 0;
390
391 Print( widget_root.GetName() +" ("+ widget_root.GetTypeName() +")");
392
393 DumpWidget(widget_root.GetChildren(), 1);
394
395 Print( "Widgets TOTAL: "+ m_WidgetsTotal.ToString() +" INVISIBLE: "+ m_WidgetsInvisible.ToString() +" VISIBLE: "+ (m_WidgetsTotal - m_WidgetsInvisible).ToString() );
396 }
397 }
398 }
399
400 void DumpWidget(Widget w, int tabs)
401 {
402 if ( !w )
403 {
404 return;
405 }
406
408
409 string tmp;
410 for (int i = 0; i < tabs; i++)
411 {
412 tmp += " ";
413 }
414
415 string invisible = "";
416
417 if ( !w.IsVisibleHierarchy() )
418 {
419 invisible = "[invisible]";
421 }
422
423 Print( tmp +"- "+ w.GetName() +" ("+ w.GetTypeName() +") "+ invisible );
424
425 bool collapse = false;
426 if ( w.GetChildren() )
427 {
428 collapse = true;
429 Print(tmp +"{");
430 }
431
432 DumpWidget(w.GetChildren(), tabs + 1);
433
434 if ( collapse )
435 {
436 Print(tmp +"}");
437 }
438
439 DumpWidget(w.GetSibling(), tabs);
440 }
441
442 override void OnKeyRelease(int key)
443 {
444 super.OnKeyRelease(key);
445
446 if ( g_Game.IsDebug() )
447 {
448 if ( PluginKeyBinding.instance != NULL )
449 {
450 PluginKeyBinding.instance.OnKeyRelease(key);
451 }
452 }
453 }
454
455 override void OnMouseButtonPress(int button)
456 {
457 super.OnMouseButtonPress(button);
458
459 if ( g_Game.IsDebug() )
460 {
461 if ( PluginKeyBinding.instance != NULL )
462 {
463 PluginKeyBinding.instance.OnMouseButtonPress(button);
464 }
465 }
466 }
467
468 override void OnMouseButtonRelease(int button)
469 {
470 super.OnMouseButtonRelease(button);
471
472 if ( g_Game.IsDebug() )
473 {
474 if ( PluginKeyBinding.instance != NULL )
475 {
476 PluginKeyBinding.instance.OnMouseButtonRelease(button);
477 }
478 }
479 }
480
481 void OnLog(string msg_log)
482 {
483 if ( PluginDeveloper.GetInstance() )
484 {
485 if ( g_Game.IsServer() && !g_Game.IsMultiplayer() )
486 {
487 PluginDeveloper.GetInstance().PrintLogClient(msg_log);
488 }
489 else if ( g_Game.IsMultiplayer() && g_Game.IsClient() )
490 {
491 PluginDeveloper.GetInstance().PrintLogClient(msg_log);
492 }
493 }
494 }
495
497 {
498 for(int i = 0; i < m_DummyPlayers.Count(); i++)
499 {
500 if (m_DummyPlayers.Get(i))
501 {
502 m_DummyPlayers.Get(i).OnTick();
503 }
504 }
505 }
506
507 override void AddDummyPlayerToScheduler(Man player)
508 {
509 m_DummyPlayers.Insert(PlayerBase.Cast( player ));
510 }
511
512 #ifdef DIAG_DEVELOPER
513 void UpdateInputDeviceDiag()
514 {
515 DisplayInputDebug(DiagMenu.GetBool(DiagMenuIDs.MISC_INPUT_DEVICE_DISCONNECT_DBG));
516 }
517
518 void DisplayInputDebug(bool show)
519 {
520 DbgUI.BeginCleanupScope();
521 DbgUI.Begin("InputDeviceDebug", 60, 60);
522
523 if (show)
524 {
525 DbgUI.Text("Gamepad: " + g_Game.GetInput().IsActiveGamepadSelected());
526 DbgUI.Text("Mouse: " + g_Game.GetInput().IsMouseConnected());
527 DbgUI.Text("Keyboard: " + g_Game.GetInput().IsKeyboardConnected());
528 }
529
530 DbgUI.End();
531 DbgUI.EndCleanupScope();
532 }
533 #endif
534
536 PluginAdditionalInfo m_ModuleServerInfo;
537}
538
539class MissionDummy extends MissionBase
540{
541}
void AmmoTypesAPI()
Определения AmmoTypes.c:17
DayZGame g_Game
Определения DayZGame.c:4074
DayZGame GetDayZGame()
Определения DayZGame.c:4076
void SetDispatcher(Dispatcher dispatcher)
Определения Dispatcher.c:31
void DynamicMusicPlayer(DynamicMusicPlayerRegistry configuration)
Определения DynamicMusicPlayer.c:132
DiagMenuIDs
Определения EDiagMenuIDs.c:2
void ExplosivesBase()
Определения ExplosivesBase.c:45
void InventoryMenu()
Определения InventoryMenu.c:20
void PluginManagerInit()
Определения PluginManager.c:297
void PluginManagerDelete()
Определения PluginManager.c:307
void ScriptConsole()
Определения ScriptConsole.c:114
proto native UAInputAPI GetUApi()
void YieldItemJunk(int baseWeight, string type)
Определения YieldsFishingJunk.c:44
void RegisterYieldItem(YieldItemBase data)
Определения CatchYieldBank.c:24
Определения CatchYieldBank.c:4
Определения ChernarusPlus.c:3
static void Init()
Определения ConstructionManagerStatic.c:13
Static part of the construction system, for global handling mostly.
Определения ConstructionManagerStatic.c:4
Определения EnDebug.c:241
Определения Enoch.c:3
LoginQueue position when using -connect since mission is not created yet.
Определения DayZGame.c:204
LoginTime when using -connect since mission is not created yet.
Определения DayZGame.c:347
Определения missionGameplay.c:2
override void AddDummyPlayerToScheduler(Man player)
Определения missionBase.c:507
ref DynamicMusicPlayer m_DynamicMusicPlayer
Определения missionBase.c:14
PluginDeveloper m_ModuleDeveloper
Определения missionBase.c:3
override void OnEvent(EventType eventTypeId, Param params)
Определения missionBase.c:100
int m_WidgetsInvisible
Определения missionBase.c:376
override void OnMouseButtonRelease(int button)
Определения missionBase.c:468
void DumpWidget(Widget w, int tabs)
Определения missionBase.c:400
override void OnKeyPress(int key)
Определения missionBase.c:363
void InitWorldYieldDataDefaults(CatchYieldBank bank)
Used to initialize defaults to WorldData base class from 4_World module. For proper init of your cust...
Определения missionBase.c:155
ref array< PlayerBase > m_DummyPlayers
Определения missionBase.c:10
override DynamicMusicPlayer GetDynamicMusicPlayer()
Определения missionBase.c:193
PluginKeyBinding m_ModuleKeyBinding ref WidgetEventHandler m_WidgetEventHandler
Определения missionBase.c:6
override ObjectSnapCallback GetInventoryDropCallback()
Определения missionBase.c:80
void ~MissionBase()
Определения missionBase.c:54
autoptr ObjectSnapCallback m_InventoryDropCallback
Определения missionBase.c:12
void UpdateInputDevicesAvailability()
Определения missionBase.c:358
int m_WidgetsTotal
Определения missionBase.c:375
void OnLog(string msg_log)
Определения missionBase.c:481
void MissionBase()
Определения missionBase.c:17
ref DynamicMusicPlayerRegistry m_DynamicMusicPlayerRegistry
Определения missionBase.c:15
override void OnMouseButtonPress(int button)
Определения missionBase.c:455
override WorldLighting GetWorldLighting()
Определения missionBase.c:183
override void OnUpdate(float timeslice)
Определения missionBase.c:85
ref WorldData m_WorldData
Определения missionBase.c:7
override WorldData GetWorldData()
Определения missionBase.c:188
override void OnKeyRelease(int key)
Определения missionBase.c:442
PluginAdditionalInfo m_ModuleServerInfo
DEPRECATED.
Определения missionBase.c:536
override UIScriptedMenu CreateScriptedMenu(int id)
Определения missionBase.c:198
void InitialiseWorldData()
Определения missionBase.c:107
void DumpCurrentUILayout()
Определения missionBase.c:378
ref WorldLighting m_WorldLighting
Определения missionBase.c:8
void UpdateDummyScheduler()
Определения missionBase.c:496
Определения missionBase.c:2
Определения Nasdara.c:3
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:527
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()
Определения 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 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
Определения 3_Game/DayZ/constants.c:217
const int MENU_TUTORIAL
Определения 3_Game/DayZ/constants.c:210
const int MENU_HELP_SCREEN
Определения 3_Game/DayZ/constants.c:199
const int MENU_TITLE_SCREEN
Определения 3_Game/DayZ/constants.c:202
const int MENU_KEYBINDINGS
Определения 3_Game/DayZ/constants.c:209
const int MENU_XBOX_CONTROLS
Определения 3_Game/DayZ/constants.c:203
const int MENU_SCRIPTCONSOLE
Определения 3_Game/DayZ/constants.c:191
const int MENU_WARNING_TELEPORT
Определения 3_Game/DayZ/constants.c:216
const int MENU_LOGOUT
Определения 3_Game/DayZ/constants.c:201
const int MENU_INSPECT
Определения 3_Game/DayZ/constants.c:185
const int MENU_UNDERGROUND_TRIGGER_EDITOR
Определения 3_Game/DayZ/constants.c:223
const int MENU_LOGIN_TIME
Определения 3_Game/DayZ/constants.c:213
const int MENU_MAP
Определения 3_Game/DayZ/constants.c:197
const int MENU_MAIN
Определения 3_Game/DayZ/constants.c:188
const int MENU_SERVER_BROWSER
Определения 3_Game/DayZ/constants.c:206
const int MENU_WARNING_ITEMDROP
Определения 3_Game/DayZ/constants.c:214
const int MENU_MISSION_LOADER
Определения 3_Game/DayZ/constants.c:220
const int MENU_SCRIPTCONSOLE_UNIVERSAL_INFO_DIALOG
Определения 3_Game/DayZ/constants.c:219
const int MENU_STARTUP
Определения 3_Game/DayZ/constants.c:190
const int MENU_DIGITAL_CODELOCK
Определения 3_Game/DayZ/constants.c:222
const int MENU_RESPAWN_DIALOGUE
Определения 3_Game/DayZ/constants.c:215
const int MENU_OPTIONS
Определения 3_Game/DayZ/constants.c:189
const int MENU_CREDITS
Определения 3_Game/DayZ/constants.c:211
const int MENU_CAMERA_TOOLS
Определения 3_Game/DayZ/constants.c:207
const int MENU_CHARACTER
Определения 3_Game/DayZ/constants.c:180
const int MENU_INVITE_TIMER
Определения 3_Game/DayZ/constants.c:212
const int MENU_GESTURES
Определения 3_Game/DayZ/constants.c:200
const int MENU_CONNECTION_DIALOGUE
Определения 3_Game/DayZ/constants.c:221
const int MENU_LOGIN_QUEUE
Определения 3_Game/DayZ/constants.c:205
const int MENU_SCENE_EDITOR
Определения 3_Game/DayZ/constants.c:183
const int MENU_SCRIPTCONSOLE_DIALOG_PRESET_NAME
Определения 3_Game/DayZ/constants.c:193
const int MENU_WARNING_INPUTDEVICE_DISCONNECT
Определения 3_Game/DayZ/constants.c:218
const int MENU_CONTROLS_PRESET
Определения 3_Game/DayZ/constants.c:195
const int MENU_EARLYACCESS
Определения 3_Game/DayZ/constants.c:182
const int MENU_SCRIPTCONSOLE_DIALOG_PRESET_RENAME
Определения 3_Game/DayZ/constants.c:194
const int MENU_INVENTORY
Определения 3_Game/DayZ/constants.c:186
const int MENU_NOTE
Определения 3_Game/DayZ/constants.c:196
const int MENU_LOADING
Определения 3_Game/DayZ/constants.c:187
const int MENU_RADIAL_QUICKBAR
Определения 3_Game/DayZ/constants.c:204
const int MENU_BOOK
Определения 3_Game/DayZ/constants.c:198
const int MENU_LOC_ADD
Определения 3_Game/DayZ/constants.c:178
const int MENU_INGAME
Определения 3_Game/DayZ/constants.c:184
const int MENU_CHAT_INPUT
Определения 3_Game/DayZ/constants.c:192
const int MENU_VIDEO
Определения 3_Game/DayZ/constants.c:208
proto int ToLower()
Changes string to lowercase. Returns length.
TypeID EventType
Определения EnWidgets.c:55