DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ScriptConsoleGeneralTab.c
См. документацию.
1#ifdef DIAG_DEVELOPER
2#define BROADCAST_BUNKER_SP_VIS_ENABLED
3#endif
4
6{
7 static int m_ObjectsScope = 2;
8 static protected vector m_LastEditPos = vector.Zero;
9 static protected vector m_LastEditDir = vector.Zero;
10
11 protected static float DEBUG_MAP_ZOOM = 1;
12 protected static bool SHOW_OTHERS = 0;
13
14 protected const string NUMERIC_LETTERS = "0123456789.-";
15 protected vector m_MapPos;
17
19
20 protected MissionGameplay m_MissionGameplay;
21 protected PluginDeveloper m_Developer;
22
23 protected SliderWidget m_TimeSlider;
24 protected ref Timer m_LateInit = new Timer();
25
27 protected bool m_InitialOpen = true;
28
29 //-------------------------------- WIDGETS ---------------------------------------
37
38 protected ButtonWidget m_LocationAddButton;
39 protected ButtonWidget m_LocationRemoveButton;
40 protected ButtonWidget m_TeleportButton;
41 protected ButtonWidget m_ButtonCopyPos;
42 protected ButtonWidget m_DiagDrawButton;
43 protected ButtonWidget m_DiagToggleButton;
44
45 protected CheckBoxWidget m_LogsEnabled;
46 protected CheckBoxWidget m_HudDCharStats;
47 protected CheckBoxWidget m_HudDCharLevels;
48 protected CheckBoxWidget m_HudDCharStomach;
49 protected CheckBoxWidget m_HudDCharModifiers;
50 protected CheckBoxWidget m_HudDCharAgents;
51 protected CheckBoxWidget m_HudDCharDebug;
52 protected CheckBoxWidget m_HudDFreeCamCross;
53 protected CheckBoxWidget m_HudDVersion;
54 protected CheckBoxWidget m_HudDHealth;
55 protected CheckBoxWidget m_HudDHorticulture;
56
57 protected CheckBoxWidget m_ShowOthers;
58
59 protected CheckBoxWidget m_HudDTemperature;
61
68
69 protected TextListboxWidget m_DiagToggleTextListbox;
70 protected TextListboxWidget m_PositionsListbox;
71 protected TextListboxWidget m_DiagDrawmodeTextListbox;
72 protected TextListboxWidget m_HelpTextListboxWidget;
73
74 protected FreeDebugCamera m_FreeDebugCamera;
75
76 override void InitializeTab(Widget root, ScriptConsole console, Widget button, ScriptConsoleTabBase parent = null)
77 {
78 super.InitializeTab(root, console, button, parent);
79
80 m_MissionGameplay = MissionGameplay.Cast(g_Game.GetMission());
81
82 m_DiagToggleTextListbox = TextListboxWidget.Cast(root.FindAnyWidget("DiagToggle"));
83 m_DiagToggleButton = ButtonWidget.Cast(root.FindAnyWidget("DiagToggleButton"));
84
85 m_DiagDrawmodeTextListbox = TextListboxWidget.Cast(root.FindAnyWidget("DiagDrawmode"));
86 m_DiagDrawButton = ButtonWidget.Cast(root.FindAnyWidget("DiagDrawButton"));
87
88 m_DebugMapWidget = MapWidget.Cast(root.FindAnyWidget("MapWidget"));
89
90 m_PositionsListbox = TextListboxWidget.Cast(root.FindAnyWidget("PositionsList"));
91 m_TeleportButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonTeleport"));
92 m_ButtonCopyPos = ButtonWidget.Cast(root.FindAnyWidget("Button_CopyPos"));
93
94 m_TeleportHeading = EditBoxWidget.Cast(root.FindAnyWidget("TeleportHeading"));
95 m_TeleportXYZ = EditBoxWidget.Cast(root.FindAnyWidget("TeleportXYZ"));
96 m_PlayerCurPos = TextWidget.Cast(root.FindAnyWidget("PlayerPosLabel"));
97 m_PlayerCurDir = TextWidget.Cast(root.FindAnyWidget("PlayerDirLabel"));
98 m_PlayerMouseDiff = TextWidget.Cast(root.FindAnyWidget("PlayerMouseDiff"));
99 m_MouseCurPos = TextWidget.Cast(root.FindAnyWidget("MousePosLabel"));
100 m_CameraCurPos = TextWidget.Cast(root.FindAnyWidget("CameraPosLabel"));
101 m_CameraCurDir = TextWidget.Cast(root.FindAnyWidget("CameraDirLabel"));
102 m_LogsEnabled = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_LogsEnabled"));
103 m_HudDCharStats = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterStats"));
104 m_HudDCharLevels = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterLevels"));
105 m_HudDCharStomach = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterStomach"));
106 m_HudDCharModifiers = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterModifiers"));
107 m_HudDCharAgents = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterAgents"));
108 m_HudDCharDebug = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterDebug"));
109 m_HudDFreeCamCross = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_FreeCamCross"));
110 m_HudDTemperature = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_Temp"));
111 m_HudDVersion = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_Version"));
112 m_HudDHealth = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_Health"));
113 m_HudDHorticulture = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_Horticulture"));
114
115 m_LocationAddButton = ButtonWidget.Cast(root.FindAnyWidget("AddButton"));
116 //m_LocationAddButton.SetHandler(ToolTipEventHandler.GetInstance());
117 m_LocationRemoveButton = ButtonWidget.Cast(root.FindAnyWidget("RemoveButton"));
118
119 m_TimeSlider = SliderWidget.Cast(root.FindAnyWidget("TimeSlider"));
120 m_DateYear = EditBoxWidget.Cast(root.FindAnyWidget("DateYear"));
121 m_DateMonth = EditBoxWidget.Cast(root.FindAnyWidget("DateMonth"));
122 m_DateDay = EditBoxWidget.Cast(root.FindAnyWidget("DateDay"));
123 m_DateHour = EditBoxWidget.Cast(root.FindAnyWidget("DateHour"));
124 m_DateMinute = EditBoxWidget.Cast(root.FindAnyWidget("DateMinute"));
125
126
127 m_ShowOthers = CheckBoxWidget.Cast(root.FindAnyWidget("ShowOthersCheckbox"));
128
129 m_HelpTextListboxWidget = TextListboxWidget.Cast(root.FindAnyWidget("HelpTextListboxWidget"));
130 m_Developer = PluginDeveloper.Cast(GetPlugin(PluginDeveloper));
131 m_FreeDebugCamera = FreeDebugCamera.GetInstance();
132
133 #ifdef DIAG_DEVELOPER
134 if (g_Game.Event_OnRPC.Count(BunkerBroadcastHandler.OnRPC) == 0)
135 g_Game.Event_OnRPC.Insert(BunkerBroadcastHandler.OnRPC);
136 #endif
137
138 Init();
139 //LateInit();
140 }
141
143 {
144 #ifdef DIAG_DEVELOPER
145 g_Game.Event_OnRPC.Remove(BunkerBroadcastHandler.OnRPC);
146 #endif
147
148 DEBUG_MAP_ZOOM = m_DebugMapWidget.GetScale();
149
150 PluginRemotePlayerDebugClient plugin_remote_client = PluginRemotePlayerDebugClient.Cast(GetPluginSafe(PluginRemotePlayerDebugClient));
151 if (SHOW_OTHERS && plugin_remote_client && g_Game.GetPlayer())
152 plugin_remote_client.RequestPlayerInfo(PlayerBase.Cast(g_Game.GetPlayer()), 0);
153 }
154
155 protected void Init()
156 {
157 // Update checkbox Character Values
158 m_HudDCharStats.SetChecked(m_ConfigDebugProfile.GetCharacterStatsVisible());
159 m_HudDCharLevels.SetChecked(m_ConfigDebugProfile.GetCharacterLevelsVisible());
160 m_HudDCharStomach.SetChecked(m_ConfigDebugProfile.GetCharacterStomachVisible());
161 m_HudDCharModifiers.SetChecked(m_ConfigDebugProfile.GetCharacterModifiersVisible());
162 m_HudDCharAgents.SetChecked(m_ConfigDebugProfile.GetCharacterAgentsVisible());
163 m_HudDCharDebug.SetChecked(m_ConfigDebugProfile.GetCharacterDebugVisible());
164 m_HudDFreeCamCross.SetChecked(m_ConfigDebugProfile.GetFreeCameraCrosshairVisible());
165 m_HudDVersion.SetChecked(m_ConfigDebugProfile.GetVersionVisible());
166 m_HudDTemperature.SetChecked(m_ConfigDebugProfile.GetTempVisible());
167 m_HudDHealth.SetChecked(m_ConfigDebugProfile.GetHealthVisible());
168 m_HudDHorticulture.SetChecked(m_ConfigDebugProfile.GetHorticultureVisible());
169
170
171 m_LogsEnabled.SetChecked(m_ConfigDebugProfile.GetLogsEnabled());
172
173 TStringArray diag_names = new TStringArray;
174 g_Game.GetDiagModeNames(diag_names);
175 int i;
176 for (i = 0; i < diag_names.Count(); i++)
177 {
178 m_DiagToggleTextListbox.AddItem(diag_names.Get(i), NULL, 0);
179 }
180
181 g_Game.GetDiagDrawModeNames(diag_names);
182 for (i = 0; i < diag_names.Count(); i++)
183 {
184 m_DiagDrawmodeTextListbox.AddItem(diag_names.Get(i), NULL, 0);
185 }
187
189
190 if (g_Game.GetPlayer())
191 {
193 m_DebugMapWidget.SetMapPos(g_Game.GetPlayer().GetWorldPosition());
194 }
196 m_TeleportXYZ.SetText(m_LastEditPos.ToString(true));
198 m_TeleportHeading.SetText(m_LastEditDir.ToString(true));
199
200 m_LateInit.Run(0.05, this, "LateInit", null, false);
201
202 int year,month,day,hour,minute;
203 g_Game.GetWorld().GetDate(year,month, day, hour, minute);
204 RefreshDateWidgets(year,month, day, hour, minute);
205 }
206
207 void RefreshDateWidgets(int year, int month, int day, int hour, int minute)
208 {
209 float time01 = Math.InverseLerp(0,60*24 - 1, (hour * 60) + minute);
210 m_DateYear.SetText(year.ToString());
211 m_DateMonth.SetText(month.ToString());
212 m_DateDay.SetText(day.ToString());
213 m_DateHour.SetText(hour.ToString());
214 m_DateMinute.SetText(minute.ToString());
215 m_TimeSlider.SetCurrent(time01 * 100);
216 }
217
219 {
220 int count = m_PositionsListbox.GetNumItems();
221 for (int i = 0; i < count; i++)
222 {
223 LocationParams data;
224 m_PositionsListbox.GetItemData(i,0,data);
225 if (data.param1 == name)
226 return false;
227 }
228 return true;
229 }
230
231 void LateInit()
232 {
233 m_ShowOthers.SetChecked(SHOW_OTHERS);
234
236 {
237 int prevRow = m_ConfigDebugProfile.GetSpawnLocIndex();
238 if (prevRow < m_PositionsListbox.GetNumItems())
239 m_PositionsListbox.SelectRow(prevRow);
240
241 }
242 PluginRemotePlayerDebugClient plugin_remote_client = PluginRemotePlayerDebugClient.Cast(GetPluginSafe(PluginRemotePlayerDebugClient));
243 if (SHOW_OTHERS && plugin_remote_client && g_Game.GetPlayer())
244 {
245 plugin_remote_client.RequestPlayerInfo(PlayerBase.Cast(g_Game.GetPlayer()), 1);
247 }
248
249 PluginRemotePlayerDebugServer plugin_remote_server = PluginRemotePlayerDebugServer.Cast(GetPluginSafe(PluginRemotePlayerDebugServer));
250 if (plugin_remote_server)
251 {
252 SHOW_OTHERS = true;
254 m_PlayerDebugStats = plugin_remote_server.m_PlayerDebugStats;
255 }
256
257 }
258
260 {
261 if (position[1] == 0)
262 position[1] = g_Game.SurfaceY(position[0], position[2]);
263 m_Developer.Teleport(player, position);
264 }
265
267 {
268 bool doTeleport, doSetDir;
269 vector pos, dir;
270 string text = m_TeleportXYZ.GetText();
271 string textDir = m_TeleportHeading.GetText();
272
273 array<float> numbersPos = TextToNumbersArray(text);
274 if (numbersPos.Count() != 0)
275 {
276 if (numbersPos.Count() == 1)
277 {
278 pos = vector.Zero;
279 }
280 else if (numbersPos.Count() == 2)
281 {
282 pos = Vector(numbersPos[0], g_Game.SurfaceY(numbersPos[0], numbersPos[1]), numbersPos[1]);
283 }
284 else if (numbersPos.Count() <= 5)
285 {
286 pos = Vector(numbersPos[0], numbersPos[1], numbersPos[2]);
287 }
288 else if (numbersPos.Count() > 5)
289 {
290 pos = Vector(numbersPos[0], numbersPos[1], numbersPos[2]);
291 dir = Vector(numbersPos[3], numbersPos[4], numbersPos[5]);
292
293 Teleport(player, pos);
294 m_LastEditPos = pos;
295 m_TeleportXYZ.SetText(m_LastEditPos.ToString());
296
297 m_Developer.SetDirection(player, dir);
298 m_LastEditDir = dir;
299 m_TeleportHeading.SetText(m_LastEditDir.ToString());
300
301 return;
302 }
303
304 doTeleport = true;
305 }
306 else
308
309 array<float> numbersDir = TextToNumbersArray(textDir);
310 if (numbersDir.Count() != 0)
311 {
312 if (numbersDir.Count() == 1)
313 {
314 dir = vector.Zero;
315 }
316 else if (numbersDir.Count() == 2)
317 {
318 dir = Vector(numbersDir[0], 0, numbersDir[1]);
319 }
320 else if (numbersDir.Count() <= 5)
321 {
322 dir = Vector(numbersDir[0], numbersDir[1], numbersDir[2]);
323 }
324 else if (numbersDir.Count() > 5)
325 {
326 pos = Vector(numbersDir[0], numbersDir[1], numbersDir[2]);
327 dir = Vector(numbersDir[3], numbersDir[4], numbersDir[5]);
328
329 Teleport(player, pos);
330 m_LastEditPos = pos;
331 m_TeleportXYZ.SetText(m_LastEditPos.ToString());
332
333 m_Developer.SetDirection(player, dir);
334 m_LastEditDir = dir;
335 m_TeleportHeading.SetText(m_LastEditDir.ToString());
336
337 return;
338 }
339
340 doSetDir = true;
341 }
342 else
344
345 if (doTeleport)
346 {
347 Teleport(player, pos);
348 m_LastEditPos = pos;
349 }
350
351 if (doSetDir)
352 {
353 m_Developer.SetDirection(player, dir);
354 m_LastEditDir = dir;
355 }
356 }
357
359 {
360 array<float> numbers = new array<float>();
361 int length = text.Length();
362 int numberStart = -1;
363 int numberLen;
364
365 for (int i = 0; i < length; i++) // find numbers and move them to array
366 {
367 string letter = text.Get(i);
368
369 if (numberStart == -1 && NUMERIC_LETTERS.Contains(letter) && letter != ".") // search for number
370 numberStart = i;
371
372 if (numberStart != -1 && (!NUMERIC_LETTERS.Contains(letter) || (letter == "-" && numberStart != i))) // search for number end
373 {
374 numberLen = i - numberStart;
375 numbers.Insert(text.Substring(numberStart, numberLen).ToFloat());
376 numberStart = -1;
377 }
378 else if (numberStart != -1 && (i + 1 == length)) // last letter
379 {
380 numberLen = i - numberStart + 1;
381 numbers.Insert(text.Substring(numberStart, numberLen).ToFloat());
382 numberStart = -1;
383 }
384 }
385
386 return numbers;
387 }
388
390 {
391 m_PositionsListbox.ClearItems();
392
394 m_ConfigDebugProfile.GetLocationsData(locData,true);
395 m_ConfigDebugProfileFixed.GetLocationsData(locData,false);
396 foreach (LocationParams dta: locData)
397 {
398 string name = dta.param1;
399 if (!dta.param2)
400 {
401 name = "[" + name + "]";
402 }
403 m_PositionsListbox.AddItem(name,dta,0);
404 }
405 }
406
408 {
409 string name;
410 LocationParams prms;
412 if (prms)
413 name =prms.param1;
414 return name;
415 }
417 {
418 LocationParams prms;
420 if (prms)
421 return prms.param3;
422 else
423 return vector.Zero;
424 }
425
427 {
428 if (m_PositionsListbox.GetSelectedRow() != -1)
429 {
430 m_PositionsListbox.GetItemData(m_PositionsListbox.GetSelectedRow(), 0, data);
431 }
432 }
433
435 {
436 LocationParams prms;
438 if (prms)
439 return prms.param2;
440 else
441 return false;
442 }
443
445 {
446 return m_PositionsListbox.GetSelectedRow();
447 }
448
450 {
451 return (m_PositionsListbox.GetSelectedRow() != -1);
452 }
453
455
457 {
458 if (!g_Game.GetPlayer())
459 {
460 return;
461 }
462
463 vector playerPos = g_Game.GetPlayer().GetPosition();
464 SetMapPos(playerPos);
465
466 vector playerDir = g_Game.GetPlayer().GetDirection();
467 SetDir(playerDir);
468 }
469
470 void UpdateTime(bool slider_used)
471 {
472 Param5<int,int,int,int,int> p5 = new Param5<int,int,int,int,int>(0,0,0,0,0);
473 int year, month, day, hour, minute;
474
475 year = m_DateYear.GetText().ToInt();
476 month = m_DateMonth.GetText().ToInt();
477 day = m_DateDay.GetText().ToInt();
478
479 if (slider_used)
480 {
481 int time_minutes = Math.Lerp(0, (24*60) - 1, m_TimeSlider.GetCurrent()/100);
482 hour = time_minutes / 60;
483 minute = time_minutes % 60;
484 }
485 else
486 {
487 hour = m_DateHour.GetText().ToInt();
488 minute = m_DateMinute.GetText().ToInt();
489 }
490
491 p5.param1 = year;
492 p5.param2 = month;
493 p5.param3 = day;
494 p5.param4 = hour;
495 p5.param5 = minute;
496
497 RefreshDateWidgets(year, month, day, hour, minute);
498 g_Game.GetWorld().SetDate(year, month, day, hour, minute);
499
500 g_Game.GetMission().GetOnTimeChanged().Invoke();
501
502 if (g_Game.GetPlayer())
503 {
504 g_Game.GetPlayer().RPCSingleParam(ERPCs.DEV_RPC_SET_TIME, p5, true);
505 }
506 }
507
509 {
510 int x,y;
511 GetMousePos(x,y);
512 vector mousePos, worldPos;
513 mousePos[0] = x;
514 mousePos[1] = y;
515 worldPos = m_DebugMapWidget.ScreenToMap(mousePos);
516 worldPos[1] = g_Game.SurfaceY(worldPos[0], worldPos[2]);
517
518 if (m_MouseCurPos)
519 {
520 m_MouseCurPos.SetText("Mouse: "+ MiscGameplayFunctions.TruncateToS(worldPos[0]) +", "+ MiscGameplayFunctions.TruncateToS(worldPos[1]) +", "+ MiscGameplayFunctions.TruncateToS(worldPos[2]));
521 }
522 if (m_PlayerMouseDiff && g_Game.GetPlayer())
523 {
524 vector playerPos = g_Game.GetPlayer().GetWorldPosition();
525 //playerPos[1] = 0;
526 float dst = (worldPos - playerPos).Length();
527
528 m_PlayerMouseDiff.SetText("Distance: " + MiscGameplayFunctions.TruncateToS(dst));
529 }
530 }
531
533 {
534 m_MapPos = pos;
535 m_PlayerCurPos.SetText("Position: "+ MiscGameplayFunctions.TruncateToS(pos[0]) +", "+ MiscGameplayFunctions.TruncateToS(pos[1]) +", "+ MiscGameplayFunctions.TruncateToS(pos[2]));
536 }
537
539 {
540 m_CameraCurPos.SetText("Camera Position: "+ MiscGameplayFunctions.TruncateToS(pos[0]) +", "+ MiscGameplayFunctions.TruncateToS(pos[1]) +", "+ MiscGameplayFunctions.TruncateToS(pos[2]));
541 }
542
543 void SetDir(vector dir)
544 {
545 m_PlayerCurDir.SetText("Direction: "+ MiscGameplayFunctions.TruncateToS(dir[0]) +", "+ MiscGameplayFunctions.TruncateToS(dir[1]) +", "+ MiscGameplayFunctions.TruncateToS(dir[2]));
546 }
547
549 {
550 m_CameraCurDir.SetText("Camera Direction: "+ MiscGameplayFunctions.TruncateToS(dir[0]) +", "+ MiscGameplayFunctions.TruncateToS(dir[1]) +", "+ MiscGameplayFunctions.TruncateToS(dir[2]));
551 }
552
554 {
555 return m_MapPos;
556 }
557
558 override bool OnMouseButtonDown(Widget w, int x, int y, int button)
559 {
560 super.OnMouseButtonDown(w,x,y,button);
561
562 if (w == m_DebugMapWidget)
563 {
564 if (button == 0)
565 {
566 if (m_FreeDebugCamera && m_FreeDebugCamera.IsActive())
567 {
568 SetMapCameraPos(m_FreeDebugCamera.GetWorldPosition());
569 SetCameraDir(m_FreeDebugCamera.GetDirection());
570 }
571 else
572 {
574 int mouseX, mouseY;
575 GetMousePos(mouseX,mouseY);
576 vector mousePos, worldPos;
577 mousePos[0] = mouseX;
578 mousePos[1] = mouseY;
579 worldPos = m_DebugMapWidget.ScreenToMap(mousePos);
580 worldPos[1] = g_Game.SurfaceY(worldPos[0], worldPos[2]);
581 SetMapPos(worldPos);
582 }
583 }
584 else if (button == 1 && g_Game.GetPlayer())
585 {
586 if (m_FreeDebugCamera && m_FreeDebugCamera.IsActive())
587 SetMapCameraPos(m_FreeDebugCamera.GetWorldPosition());
588 else
589 SetMapPos(g_Game.GetPlayer().GetWorldPosition());
590 }
591 }
592 return true;
593 }
594
595 override bool OnKeyDown(Widget w, int x, int y, int key)
596 {
597 super.OnKeyDown(w, x, y, key);
598 return false;
599 }
600
601 override bool OnChange(Widget w, int x, int y, bool finished)
602 {
603 super.OnChange(w, x, y, finished);
604
605 if (w == m_ShowOthers && g_Game.GetPlayer())
606 {
607 if (g_Game.IsDedicatedServer())
608 {
610 SHOW_OTHERS = true;
611 return true;
612 }
613
614 PluginRemotePlayerDebugClient plugin_remote_client = PluginRemotePlayerDebugClient.Cast(GetPluginSafe(PluginRemotePlayerDebugClient));
615 if (m_ShowOthers.IsChecked())
616 {
617 plugin_remote_client.RequestPlayerInfo(PlayerBase.Cast(g_Game.GetPlayer()), 1);
619 SHOW_OTHERS = true;
620 }
621 else
622 {
623 plugin_remote_client.RequestPlayerInfo(PlayerBase.Cast(g_Game.GetPlayer()), 0);
625 SHOW_OTHERS = false;
626 }
627 return true;
628 }
629 else if (w == m_TimeSlider || w == m_DateDay || w == m_DateYear || w == m_DateMonth || w == m_DateHour || w == m_DateMinute)
630 {
632 return true;
633 }
634
635 return false;
636 }
637
638 override bool OnItemSelected(Widget w, int x, int y, int row, int column, int oldRow, int oldColumn)
639 {
640 super.OnItemSelected(w, x, y, row, column, oldRow, oldColumn);
641 if (w == m_PositionsListbox)
642 {
643 if (m_InitialOpen)
644 {
645 m_InitialOpen = false;
646 return true;
647 }
648
650 m_TeleportXYZ.SetText(position.ToString());
652 {
654 }
655
656 return true;
657 }
658 return false;
659 }
660
661 override bool OnDoubleClick(Widget w, int x, int y, int button)
662 {
663 super.OnDoubleClick(w, x, y, button);
664 PlayerBase player = PlayerBase.Cast(g_Game.GetPlayer());
665
666 if (w == m_DebugMapWidget)
667 {
668 vector screen_to_map = m_DebugMapWidget.ScreenToMap(Vector(x,y, 0));
669 float pos_y_a = g_Game.SurfaceY(screen_to_map[0], screen_to_map[2]);
670 float pos_y_b = g_Game.SurfaceRoadY(screen_to_map[0], screen_to_map[2]);
671 float pos_y = Math.Max(pos_y_a, pos_y_b);
672 screen_to_map[1] = pos_y;
673
674 if (m_FreeDebugCamera && m_FreeDebugCamera.IsActive())
675 {
676 vector camPos = m_FreeDebugCamera.GetPosition();
677 float camPosY = camPos[1];
678 screen_to_map[1] = camPosY;
679 m_FreeDebugCamera.SetPosition(screen_to_map);
680 }
681 else
682 {
683 m_Developer.Teleport(player, screen_to_map);
684 }
685
686 return true;
687 }
688
689 if (w == m_PositionsListbox)
690 {
692 if (m_FreeDebugCamera && m_FreeDebugCamera.IsActive())
693 {
694 m_FreeDebugCamera.SetPosition(position);
695 }
696 else
697 {
698 Teleport(player, position);
699 }
700 return true;
701 }
702
703 if (w == m_TeleportHeading)
704 {
705 EditBoxWidget.Cast(w).SetText("");
706 return true;
707 }
708
709 if (w == m_TeleportXYZ)
710 {
711 EditBoxWidget.Cast(w).SetText("");
712 return true;
713 }
714 return false;
715 }
716
717 override bool OnClick(Widget w, int x, int y, int button)
718 {
719 super.OnClick(w, x, y, button);
720
721 int i;
722 PlayerBase player = PlayerBase.Cast(g_Game.GetPlayer());
723
724 PluginDeveloper module_dev = PluginDeveloper.Cast(GetPlugin(PluginDeveloper));
725
726 if (w == m_PositionsListbox)
727 {
728
730
732 {
734 }
735
736 return true;
737 }
738 else if (w == m_TeleportButton)
739 {
740 ProcessTeleportText(player);
741 return true;
742 }
743 else if (w == m_ButtonCopyPos)
744 {
745 if (m_IsShiftDown)
746 {
747 g_Game.CopyToClipboard(GetMapPos().ToString(false));
748 return true;
749 }
750
751
752 g_Game.CopyToClipboard(GetMapPos().ToString() + " " + g_Game.GetPlayer().GetDirection().ToString());
753 return true;
754 }
755 else if (w == m_LogsEnabled)
756 {
757 //Log("m_LogsEnabled: "+ToString(m_LogsEnabled.IsChecked()));
758
760 {
761 m_ConfigDebugProfile.SetLogsEnabled(m_LogsEnabled.IsChecked());
763 }
764
765 return true;
766 }
767 else if (w == m_HudDCharStats)
768 {
770 {
771 m_ConfigDebugProfile.SetCharacterStatsVisible(m_HudDCharStats.IsChecked());
772 }
773
774 // Refresh UI by new settings
775 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
776
777 return true;
778 }
779 else if (w == m_HudDCharLevels)
780 {
782 {
783 m_ConfigDebugProfile.SetCharacterLevelsVisible(m_HudDCharLevels.IsChecked());
784 }
785
786 // Refresh UI by new settings
787 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
788
789 return true;
790 }
791 else if (w == m_HudDCharStomach)
792 {
794 {
795 m_ConfigDebugProfile.SetCharacterStomachVisible(m_HudDCharStomach.IsChecked());
796 }
797
798 // Refresh UI by new settings
799 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
800
801 return true;
802 }
803 else if (w == m_HudDVersion)
804 {
806 {
807 m_ConfigDebugProfile.SetVersionVisible(m_HudDVersion.IsChecked());
808 }
809
810 // Refresh UI by new settings
811 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
812
813 return true;
814 }
815 else if (w == m_HudDTemperature)
816 {
818 {
819 m_ConfigDebugProfile.SetTempVisible(m_HudDTemperature.IsChecked());
820 }
821
822 // Refresh UI by new settings
823 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
824
825 return true;
826 }
827 else if (w == m_HudDHealth)
828 {
830 {
831 m_ConfigDebugProfile.SetHealthVisible(m_HudDHealth.IsChecked());
832 }
833
834 // Refresh UI by new settings
835 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
836
837 return true;
838 }
839 else if (w == m_HudDHorticulture)
840 {
842 {
843 m_ConfigDebugProfile.SetHorticultureVisible(m_HudDHorticulture.IsChecked());
844 }
845
846 // Refresh UI by new settings
847 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
848
849 return true;
850 }
851 else if (w == m_HudDCharModifiers)
852 {
854 {
855 m_ConfigDebugProfile.SetCharacterModifiersVisible(m_HudDCharModifiers.IsChecked());
856 }
857
858 // Refresh UI by new settings
859 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
860
861 return true;
862 }
863 else if (w == m_HudDCharAgents)
864 {
866 {
867 m_ConfigDebugProfile.SetCharacterAgentsVisible(m_HudDCharAgents.IsChecked());
868 }
869
870 // Refresh UI by new settings
871 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
872
873 return true;
874 }
875 else if (w == m_HudDCharDebug)
876 {
878 {
879 m_ConfigDebugProfile.SetCharacterDebugVisible(m_HudDCharDebug.IsChecked());
880 }
881
882 // Refresh UI by new settings
883 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
884
885 return true;
886 }
887 else if (w == m_HudDFreeCamCross)
888 {
890 {
891 m_ConfigDebugProfile.SetFreeCameraCrosshairVisible(m_HudDFreeCamCross.IsChecked());
892 }
893
894 // Refresh UI by new settings
895 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
896
897 g_Game.GetCallQueue(CALL_CATEGORY_SYSTEM).Call(g_Game.GetMission().RefreshCrosshairVisibility);
898
899 return true;
900 }
901
902 else if (w == m_DiagToggleButton)
903 {
904 int toggle_row_index = m_DiagToggleTextListbox.GetSelectedRow();
905 bool toggle_state = g_Game.GetDiagModeEnable(toggle_row_index);
906 g_Game.SetDiagModeEnable(toggle_row_index, !toggle_state);
907 return true;
908 }
909 else if (w == m_DiagDrawButton)
910 {
911 int draw_row_index = m_DiagDrawmodeTextListbox.GetSelectedRow();
912 g_Game.SetDiagDrawMode(draw_row_index);
913 return true;
914 }
915 // TOUCHED THIS
916 else if (w == m_LocationAddButton)
917 {
918 ScriptConsoleAddLocation menu = ScriptConsoleAddLocation.Cast(g_Game.GetUIManager().EnterScriptedMenu(MENU_LOC_ADD, m_ScriptConsole));
919 menu.SetPosition(GetMapPos());
920 return true;
921 }
922 else if (w == m_LocationRemoveButton)
923 {
924 m_ConfigDebugProfile.CustomLocationsRemove(GetCurrentLocationName());
926 return true;
927 }
928 return false;
929 }
930
931 override void OnRPCEx(int rpc_type, ParamsReadContext ctx)
932 {
933 super.OnRPCEx(rpc_type, ctx);
934
935 #ifdef DIAG_DEVELOPER
936 switch (rpc_type)
937 {
938 case ERPCs.DEV_PLAYER_DEBUG_DATA:
940 break;
941 }
942 #endif
943 }
944
945 override void Update(float timeslice)
946 {
947 super.Update(timeslice);
948
949 PlayerBase player = PlayerBase.Cast(g_Game.GetPlayer());
950
951 m_DebugMapWidget.ClearUserMarks();
952
953 vector playerPos = vector.Zero;
954 if (player)
955 {
956 playerPos = player.GetWorldPosition();
957 }
958
960 {
961 PluginRemotePlayerDebugServer plugin_remote_server = PluginRemotePlayerDebugServer.Cast(GetPluginSafe(PluginRemotePlayerDebugServer));
962 if (plugin_remote_server)
963 {
964 plugin_remote_server.GatherPlayerInfo();
965
966 if (m_FreeDebugCamera && m_FreeDebugCamera.IsActive())
967 {
968 playerPos = m_FreeDebugCamera.GetWorldPosition();
969 }
970 }
971
973 {
974 if (player && rpd.m_Player != player)
975 {
976 vector dir = rpd.m_Pos - playerPos;
977 dir[1] = 0;
978 string dist = ((int)dir.Length()).ToString();
979 string text = rpd.m_Name + " " +dist + "m";
980 m_DebugMapWidget.AddUserMark(rpd.m_Pos, text, COLOR_BLUE, "\\dz\\gear\\navigation\\data\\map_tree_ca.paa");
981 }
982 }
983 }
984
985 if (player)
986 {
987 m_DebugMapWidget.AddUserMark(playerPos, "You", COLOR_RED, "\\dz\\gear\\navigation\\data\\map_tree_ca.paa");
988 if (playerPos != GetMapPos())
989 m_DebugMapWidget.AddUserMark(GetMapPos(), "Pos", COLOR_BLUE, "\\dz\\gear\\navigation\\data\\map_tree_ca.paa");
990 }
991
992 if (m_FreeDebugCamera && m_FreeDebugCamera.IsActive())
993 {
994 vector cameraPos = m_FreeDebugCamera.GetWorldPosition();
995 m_DebugMapWidget.AddUserMark(cameraPos, "Camera", COLOR_GREEN, "\\dz\\gear\\navigation\\data\\map_tree_ca.paa");
996 }
997
1001
1002 foreach (MapMarker marker: ScriptConsole.m_MarkedEntities)
1003 {
1005 }
1006
1007 #ifdef BROADCAST_BUNKER_SP_VIS_ENABLED
1008 BunkerComponentsArray bunkers;
1009 TIntArray bunkersHistory;
1010 if (!g_Game.IsMultiplayer() && g_Game.IsServer())
1011 {
1014 }
1015 else
1016 {
1017 bunkers = BunkerBroadcastHandler.GetInstance().m_RegisteredBunkersStorage;
1018 bunkersHistory = BunkerBroadcastHandler.GetInstance().m_BunkersHistoryStorage;
1019 }
1020
1021 if (bunkers && bunkers.Count() > 0)
1022 {
1023 foreach (BunkerBroadcastComponentBase bunker : bunkers)
1024 {
1025 int color = 0xFFFFA500;
1026
1027 int bunkerId = bunker.GetId();
1028 if (bunkersHistory.Find(bunkerId) != INDEX_NOT_FOUND && !bunker.IsActive())
1029 {
1030 color = COLOR_RED;
1031 }
1032 else
1033 {
1034 if (bunker.IsActive())
1035 color = COLOR_GREEN;
1036 }
1037
1038 MapMarker bunkerMarker = new MapMarker(bunker.GetPosition(), string.Format("bunker #%1", bunkerId), color, eMapMarkerTypes.MARKERTYPE_MAP_MONUMENT);
1039
1040 m_DebugMapWidget.AddUserMark(bunkerMarker.GetMarkerPos(), bunkerMarker.GetMarkerText(), bunkerMarker.GetMarkerColor(), MapMarkerTypes.GetMarkerTypeFromID(bunkerMarker.GetMarkerIcon()));
1041 }
1042 }
1043 #endif
1044 }
1045
1046 override void OnSelected()
1047 {
1049 }
1050}
ActionOverrideData int
array< ref BunkerBroadcastComponentBase > BunkerComponentsArray
Определения BunkerBroadcastHandler.c:91
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
DayZGame g_Game
Определения DayZGame.c:4074
vector position
Определения DustKickupEffects.c:20
ERPCs
Определения ERPCs.c:2
proto string ToString()
Icon x
Icon y
Param3< string, bool, vector > LocationParams
Определения PluginConfigDebugProfile.c:25
PluginBase GetPlugin(typename plugin_type)
Определения PluginManager.c:326
PluginBase GetPluginSafe(typename plugin_type)
Определения PluginManager.c:350
void RemotePlayerStatDebug(PlayerBase player)
Определения RemotePlayerStatDebug.c:16
void ScriptConsole()
Определения ScriptConsole.c:114
TIntArray GetActiveBunkersHistory()
Определения BunkerBroadcastHandler.c:273
BunkerComponentsArray GetRegisteredBunkers()
Определения BunkerBroadcastHandler.c:259
static BunkerBroadcastHandler GetInstance()
Определения BunkerBroadcastHandler.c:134
Определения EnWidgets.c:354
static void SetLogsEnabled(bool enable)
Определения 3_Game/DayZ/tools/Debug.c:744
void OnRPC(ParamsReadContext ctx)
Определения TransferValues.c:165
static string GetMarkerTypeFromID(int id)
Определения MapMarkersInfo.c:36
Определения MapMarkersInfo.c:2
Определения gameplay.c:323
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
CheckBoxWidget m_HudDHorticulture
Определения ScriptConsoleGeneralTab.c:55
CheckBoxWidget m_HudDCharLevels
Определения ScriptConsoleGeneralTab.c:47
const string NUMERIC_LETTERS
Определения ScriptConsoleGeneralTab.c:14
CheckBoxWidget m_HudDCharModifiers
Определения ScriptConsoleGeneralTab.c:49
ButtonWidget m_ButtonCopyPos
Определения ScriptConsoleGeneralTab.c:41
TextListboxWidget m_DiagDrawmodeTextListbox
Определения ScriptConsoleGeneralTab.c:71
void ~ScriptConsoleGeneralTab()
Определения ScriptConsoleGeneralTab.c:142
EditBoxWidget m_TeleportXYZ
Определения ScriptConsoleGeneralTab.c:31
TextWidget m_CameraCurPos
Определения ScriptConsoleGeneralTab.c:66
void SetCameraDir(vector dir)
Определения ScriptConsoleGeneralTab.c:548
int GetCurrentPositionIndex()
Определения ScriptConsoleGeneralTab.c:444
EditBoxWidget m_DateMinute
Определения ScriptConsoleGeneralTab.c:36
TextListboxWidget m_DiagToggleTextListbox
Определения ScriptConsoleGeneralTab.c:69
MapWidget m_DebugMapWidget
Определения ScriptConsoleGeneralTab.c:60
TextListboxWidget m_PositionsListbox
Определения ScriptConsoleGeneralTab.c:70
override bool OnDoubleClick(Widget w, int x, int y, int button)
Определения ScriptConsoleGeneralTab.c:661
void SetMapCameraPos(vector pos)
Определения ScriptConsoleGeneralTab.c:538
static float DEBUG_MAP_ZOOM
Определения ScriptConsoleGeneralTab.c:11
bool IsCurrentPositionCustom()
Определения ScriptConsoleGeneralTab.c:434
static bool SHOW_OTHERS
Определения ScriptConsoleGeneralTab.c:12
EditBoxWidget m_DateDay
Определения ScriptConsoleGeneralTab.c:34
bool m_UpdatePlayerPositions
Определения ScriptConsoleGeneralTab.c:26
ref Timer m_LateInit
Определения ScriptConsoleGeneralTab.c:24
FreeDebugCamera m_FreeDebugCamera
Определения ScriptConsoleGeneralTab.c:74
bool m_PlayerPosRefreshBlocked
Определения ScriptConsoleGeneralTab.c:16
override bool OnClick(Widget w, int x, int y, int button)
Определения ScriptConsoleGeneralTab.c:717
CheckBoxWidget m_HudDCharStomach
Определения ScriptConsoleGeneralTab.c:48
CheckBoxWidget m_HudDVersion
Определения ScriptConsoleGeneralTab.c:53
vector GetCurrentLocationPos()
Определения ScriptConsoleGeneralTab.c:416
CheckBoxWidget m_HudDCharStats
Определения ScriptConsoleGeneralTab.c:46
bool IsLocationNameAvailable(string name)
Определения ScriptConsoleGeneralTab.c:218
EditBoxWidget m_TeleportHeading
Определения ScriptConsoleGeneralTab.c:30
TextListboxWidget m_HelpTextListboxWidget
Определения ScriptConsoleGeneralTab.c:72
override void OnSelected()
Определения ScriptConsoleGeneralTab.c:1046
override bool OnMouseButtonDown(Widget w, int x, int y, int button)
Определения ScriptConsoleGeneralTab.c:558
ButtonWidget m_LocationRemoveButton
Определения ScriptConsoleGeneralTab.c:39
CheckBoxWidget m_ShowOthers
Определения ScriptConsoleGeneralTab.c:57
EditBoxWidget m_DateHour
Определения ScriptConsoleGeneralTab.c:35
ref array< ref RemotePlayerStatDebug > m_PlayerDebugStats
Определения ScriptConsoleGeneralTab.c:18
CheckBoxWidget m_HudDHealth
Определения ScriptConsoleGeneralTab.c:54
TextWidget m_CameraCurDir
Определения ScriptConsoleGeneralTab.c:67
override bool OnChange(Widget w, int x, int y, bool finished)
Определения ScriptConsoleGeneralTab.c:601
TextWidget m_PlayerCurDir
Определения ScriptConsoleGeneralTab.c:63
SliderWidget m_TimeSlider
Определения ScriptConsoleGeneralTab.c:23
void ProcessTeleportText(PlayerBase player)
Определения ScriptConsoleGeneralTab.c:266
TextWidget m_PlayerCurPos
Определения ScriptConsoleGeneralTab.c:62
PluginDeveloper m_Developer
Определения ScriptConsoleGeneralTab.c:21
static int m_ObjectsScope
Определения ScriptConsoleGeneralTab.c:7
EditBoxWidget m_DateMonth
Определения ScriptConsoleGeneralTab.c:33
CheckBoxWidget m_LogsEnabled
Определения ScriptConsoleGeneralTab.c:45
void SetDir(vector dir)
Определения ScriptConsoleGeneralTab.c:543
void Teleport(PlayerBase player, vector position)
Определения ScriptConsoleGeneralTab.c:259
CheckBoxWidget m_HudDCharDebug
Определения ScriptConsoleGeneralTab.c:51
void GetCurrentPositionData(out LocationParams data)
Определения ScriptConsoleGeneralTab.c:426
override void InitializeTab(Widget root, ScriptConsole console, Widget button, ScriptConsoleTabBase parent=null)
Определения ScriptConsoleGeneralTab.c:76
CheckBoxWidget m_HudDFreeCamCross
Определения ScriptConsoleGeneralTab.c:52
CheckBoxWidget m_HudDTemperature
Определения ScriptConsoleGeneralTab.c:59
void UpdateTime(bool slider_used)
Определения ScriptConsoleGeneralTab.c:470
override void OnRPCEx(int rpc_type, ParamsReadContext ctx)
Определения ScriptConsoleGeneralTab.c:931
string GetCurrentLocationName()
Определения ScriptConsoleGeneralTab.c:407
TextWidget m_MouseCurPos
Определения ScriptConsoleGeneralTab.c:64
TextWidget m_PlayerMouseDiff
Определения ScriptConsoleGeneralTab.c:65
override void Update(float timeslice)
Определения ScriptConsoleGeneralTab.c:945
array< float > TextToNumbersArray(string text)
Определения ScriptConsoleGeneralTab.c:358
EditBoxWidget m_DateYear
Определения ScriptConsoleGeneralTab.c:32
override bool OnItemSelected(Widget w, int x, int y, int row, int column, int oldRow, int oldColumn)
Определения ScriptConsoleGeneralTab.c:638
ButtonWidget m_DiagToggleButton
Определения ScriptConsoleGeneralTab.c:43
bool IsCurrentPositionValid()
Определения ScriptConsoleGeneralTab.c:449
override bool OnKeyDown(Widget w, int x, int y, int key)
Определения ScriptConsoleGeneralTab.c:595
void RefreshPlayerPosEditBoxes()
Определения ScriptConsoleGeneralTab.c:456
MissionGameplay m_MissionGameplay
Определения ScriptConsoleGeneralTab.c:20
ButtonWidget m_TeleportButton
Определения ScriptConsoleGeneralTab.c:40
void RefreshDateWidgets(int year, int month, int day, int hour, int minute)
Определения ScriptConsoleGeneralTab.c:207
ButtonWidget m_DiagDrawButton
Определения ScriptConsoleGeneralTab.c:42
CheckBoxWidget m_HudDCharAgents
Определения ScriptConsoleGeneralTab.c:50
void SetMapPos(vector pos)
Определения ScriptConsoleGeneralTab.c:532
ButtonWidget m_LocationAddButton
Определения ScriptConsoleGeneralTab.c:38
bool m_IsShiftDown
Определения ScriptConsoleTabBase.c:5
PluginConfigDebugProfile m_ConfigDebugProfile
Определения ScriptConsoleTabBase.c:11
ScriptConsole m_ScriptConsole
Определения ScriptConsoleTabBase.c:9
PluginConfigDebugProfileFixed m_ConfigDebugProfileFixed
Определения ScriptConsoleTabBase.c:12
proto bool Read(void value_in)
Определения EnWidgets.c:220
Определения DayZPlayerImplement.c:39
Определения EnWidgets.c:190
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native float Length()
Returns length of vector (magnitude)
static const vector Zero
Определения EnConvert.c:123
proto string ToString(bool beautify=true)
Vector to string.
Определения EnConvert.c:119
const int INDEX_NOT_FOUND
Определения gameplay.c:13
Serializer ParamsReadContext
Определения gameplay.c:15
const int COLOR_BLUE
Определения 1_Core/DayZ/constants.c:66
const int COLOR_RED
Определения 1_Core/DayZ/constants.c:64
const int COLOR_GREEN
Определения 1_Core/DayZ/constants.c:65
array< int > TIntArray
Определения EnScript.c:733
class array< Class T > TStringArray
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
const int MENU_LOC_ADD
Определения 3_Game/DayZ/constants.c:178
proto void GetMousePos(out int x, out int y)
proto native int Length()
Returns length of string.
proto string Get(int index)
Gets n-th character from string.
proto native float ToFloat()
Converts string to float.
proto string Substring(int start, int len)
Substring of 'str' from 'start' position 'len' number of characters.
const int CALL_CATEGORY_SYSTEM
Определения 3_Game/DayZ/tools/tools.c:8
proto native void SetFocus(Widget w)