9 static int m_SystemsMask;
12 bool m_ModifiersEnabled =
true;
14 bool m_StaminaDisabled;
15 bool m_ClientInventoryDesync =
false;
19 bool m_LogPlayerStats;
20 Shape m_VehicleFreeAreaBox;
21 ref EnvDebugData m_EnvDebugData;
22 ref FallDamageDebugData m_FallDamageDebugData;
24 ref WeaponLiftDiag m_WeaponLiftDiag =
new WeaponLiftDiag();
26 ref UndergroundDiag m_UndergroundDiag =
new UndergroundDiag();
39 protected void BindCallbacks()
106 #ifdef ENABLE_LOGGING
266 super.OnRPC(player, rpc_type, ctx);
270 case ERPCs.DIAG_MISC_ENVIRONMENT_DEBUG_DATA:
273 m_EnvDebugData =
new EnvDebugData();
275 ctx.
Read(m_EnvDebugData);
279 case ERPCs.DIAG_MISC_FALLDAMAGE_DEBUG_DATA:
281 if (!m_FallDamageDebugData)
282 m_FallDamageDebugData =
new FallDamageDebugData();
284 ctx.
Read(m_FallDamageDebugData);
288 case ERPCs.DIAG_VEHICLES_DUMP_CRASH_DATA_CONTENTS:
290 Param1<array<ref CrashDebugData>> par =
new Param1<array<ref CrashDebugData>>(null);
293 CrashDebugData.DumpDataArray(par.param1);
300 override void OnUpdate(
float delta_time)
302 super.OnUpdate(delta_time);
312 UpdateMiscVehicleGetOutBox();
313 UpdateEnvironmentDebug();
315 UpdateMaterialDebug();
316 UpdateWeaponLiftDiag(delta_time);
318 UpdateUndegroundDiag(delta_time);
323 void CheckTimeAccel()
325 if (!FeatureTimeAccel.m_CurrentTimeAccel)
332 TimeAccelParam param = GetTimeAccelMenuState();
334 if (!FeatureTimeAccel.AreTimeAccelParamsSame(param, FeatureTimeAccel.m_CurrentTimeAccel))
336 int timeAccelBig = param.param2;
337 float timeAccelSmall = param.param2 - timeAccelBig;
338 FeatureTimeAccel.CopyTimeAccelClipboard(param.param1, timeAccelBig, timeAccelSmall, param.param3 );
339 FeatureTimeAccel.SendTimeAccel(
g_Game.GetPlayer(), param);
340 FeatureTimeAccel.m_CurrentTimeAccel = param;
346 static void CBInventoryHandsAckMove(
bool enable,
int id)
348 PluginInventoryDebug pluginInventoryDebug = PluginInventoryDebug.Cast(
GetPlugin(PluginInventoryDebug));
349 DiagToggleRPCServer(enable, pluginInventoryDebug.m_IsHandAckEnable,
ERPCs.DIAG_INVENTORY_ACK_HANDS);
352 static void CBEnableDesyncRepair(
bool enable,
int id)
354 PluginInventoryDebug pluginInventoryDebug = PluginInventoryDebug.Cast(
GetPlugin(PluginInventoryDebug));
355 DiagToggleRPCServer(enable, pluginInventoryDebug.m_IsDesyncRepairEnable,
ERPCs.DIAG_INVENTORY_REPAIR_DESYNC);
358 static void CBClientDesync(
bool enable,
int id)
360 PluginInventoryDebug pluginInventoryDebug = PluginInventoryDebug.Cast(
GetPlugin(PluginInventoryDebug));
361 pluginInventoryDebug.SetLocalOnlyMoveEnable(enable);
365 static void CBCraftingGenerate(
bool enabled,
int id)
367 PluginRecipesManager pluginRecipesManager = PluginRecipesManager.Cast(
GetPlugin(PluginRecipesManager));
368 DiagButtonAction(enabled,
id,
ScriptCaller.Create(pluginRecipesManager.CallbackGenerateCache));
372 static void CBCraftingInstant(
bool enabled)
374 PluginRecipesManager pluginRecipesManager = PluginRecipesManager.Cast(
GetPlugin(PluginRecipesManager));
375 DiagToggleRPC(enabled, pluginRecipesManager.IsEnableDebugCrafting(),
ERPCs.DIAG_CRAFTING_INSTANT);
379 static void CBCraftingDump(
bool enabled,
int id)
381 PluginRecipesManager pluginRecipesManager = PluginRecipesManager.Cast(
GetPlugin(PluginRecipesManager));
382 DiagButtonAction(enabled,
id,
ScriptCaller.Create(pluginRecipesManager.GenerateHumanReadableRecipeList));
386 static void CBCheatsModifiers(
bool enabled)
389 DiagToggleRPCServer(enabled, pluginDiag.m_ModifiersEnabled,
ERPCs.DIAG_CHEATS_MODIFIERS);
393 static void CBCheatsKillPlayer(
bool enabled,
int id)
395 DiagButtonRPC(enabled,
id,
ERPCs.DIAG_CHEATS_KILL_PLAYER,
true);
399 static void CBCheatsInvincibility(
int value)
402 DiagToggleRPCServer(value, pluginDiag.m_IsInvincible,
ERPCs.DIAG_CHEATS_INVINCIBILITY);
406 static void CBCheatsStaminaDisable(
bool enabled)
410 player.SetStaminaDisabled(enabled);
413 DiagToggleRPCServer(enabled, pluginDiag.m_StaminaDisabled,
ERPCs.DIAG_CHEATS_DISABLE_STAMINA);
417 static void CBCheatsResetPlayer(
bool enabled,
int id)
421 player.ResetPlayer(
false);
422 DiagButtonRPC(enabled,
id,
ERPCs.DIAG_CHEATS_RESET_PLAYER,
true);
426 static void CBCheatsResetPlayerMax(
bool enabled,
int id)
430 player.ResetPlayer(
true);
431 DiagButtonRPC(enabled,
id,
ERPCs.DIAG_CHEATS_RESET_PLAYER_MAX,
true);
435 static void CBCheatsInventoryAccess(
bool enabled)
437 DiagToggleRPCServer(enabled,
PlayerBase.DEBUG_INVENTORY_ACCESS,
ERPCs.DIAG_CHEATS_INVENTORY_ACCESS);
441 static void CBCheatsFixItems(
bool enabled,
int id)
443 DiagButtonRPC(enabled,
id,
ERPCs.DIAG_CHEATS_ITEMS_FIX,
true);
446 static void CBCreateHit(
bool enabled,
int id)
448 DiagButtonRPC(enabled,
id,
ERPCs.DIAG_CHEATS_CREATE_HIT,
true);
451 static void CBCreateHitLight(
bool enabled,
int id)
453 DiagButtonRPC(enabled,
id,
ERPCs.DIAG_CHEATS_CREATE_HIT_LIGHT,
true);
457 static void CBPlayerAgentsInjectActions(
bool enabled)
463 static void CBSoftSkillsShowDebug(
bool enabled)
470 static void CBSoftSkillsToggleState(
bool enabled)
477 static void CBSoftSkillsToggleModel(
bool enabled)
480 DiagToggleRPC(enabled, ssMngr.
IsLinear(),
ERPCs.DIAG_SOFT_SKILLS_TOGGLE_MODEL);
484 static void CBSoftSkillsSpecialtyValue(
float value)
491 static void CBLifespanBloodyHands(
bool enabled)
496 bool hasBloodyHands = player.HasBloodyHands();
497 DiagToggleRPCServer(enabled, hasBloodyHands,
ERPCs.DIAG_LIFESPAN_BLOODY_HANDS);
502 static void CBLifespanPlaytimeUpdate(
float value)
505 DiagToggleRPCServer(value * 60, pluginDiag.m_Playtime,
ERPCs.DIAG_LIFESPAN_PLAYTIME_UPDATE);
509 static void CBMiscPersonalLight(
bool enabled)
511 PlayerBaseClient.m_PersonalLightDisabledByDebug = enabled;
512 PlayerBaseClient.UpdatePersonalLight();
516 static void CBMiscItemDebugActions(
bool enabled)
522 static void CBMiscLogPlayerStats(
bool enabled)
525 DiagToggleRPC(enabled, pluginDiag.m_LogPlayerStats,
ERPCs.DIAG_MISC_LOG_PLAYER_STATS);
529 static void CBMiscForceHintIndex(
int index)
535 static void CBMiscPermanentCrossHair(
bool enabled)
537 PluginPermanentCrossHair crosshair = PluginPermanentCrossHair.Cast(
GetPlugin(PluginPermanentCrossHair));
538 crosshair.SwitchPermanentCrossHair(enabled);
542 void UpdateMiscVehicleGetOutBox()
546 if (m_VehicleFreeAreaBox)
548 m_VehicleFreeAreaBox.Destroy();
549 m_VehicleFreeAreaBox = null;
558 else if (m_VehicleFreeAreaBox)
560 m_VehicleFreeAreaBox.Destroy();
561 m_VehicleFreeAreaBox = null;
566 static void CBMiscToggleHud(
bool enabled)
569 mission.GetHud().Show(!enabled);
572 mission.HideCrosshairVisibility();
576 mission.RefreshCrosshairVisibility();
581 static void CBMiscEnvironmentDebug(
bool enabled)
583 SendDiagRPC(enabled,
ERPCs.DIAG_MISC_ENVIRONMENT_DEBUG);
586 void UpdateEnvironmentDebug()
589 Environment.DisplayEnvDebugPlayerInfo(
true, m_EnvDebugData);
590 else if (m_EnvDebugData)
591 m_EnvDebugData = null;
595 void UpdateMaterialDebug()
604 void UpdateWeaponLiftDiag(
float delta_time)
610 GetWeaponLiftDiag().DrawDiag(weaponLiftDebug, delta_time);
617 static WeaponLiftDiag GetWeaponLiftDiag()
620 return pluginDiag.m_WeaponLiftDiag;
624 void UpdateUndegroundDiag(
float deltaTIme)
629 m_UndergroundDiag.DrawDiag(deltaTIme);
637 string materialPath =
"Graphics/Materials/postprocess/ghost";
647 float channelWeights[] = { 0, 0, 0, 0 };
648 float noiseOffset[] = { 0, 0 };
649 float noiseScale[] = { 1, 1 };
650 float noiseLo[] = { 0, 0, 0, 0 };
651 float noiseHi[] = { 1, 1, 1, 1 };
652 float ghostOffset[] = { 0, 0 };
653 float ghostScale[] = { 1, 1 };
654 float colormod[] = { 1, 1, 1, 0.5 };
655 int spacer_height = 10;
657 float rw, gw, bw, aw;
668 float nsx = 1, nsy = 1;
678 float rl = 0, rh = 1;
679 float gl = 0, gh = 1;
680 float bl = 0, bh = 1;
681 float al = 0, ah = 1;
702 float gox = 50, goy = 25;
703 float gsx = 0.85, gsy = 0.85;
713 float cmr = 1, cmg = 1, cmb = 1, cma = 1;
723 channelWeights = { rw, gw, bw, aw };
724 noiseOffset = { nox, noy };
725 noiseScale = { nsx, nsy };
726 noiseLo = { rl, gl, bl, al };
727 noiseHi = { rh, gh, bh, ah };
728 ghostOffset = { gox, goy };
729 ghostScale = { gsx, gsy };
730 colormod = { cmr, cmg, cmb, cma };
750 #ifdef ENABLE_LOGGING
751 static void CBMiscEnvironmentLoggingDryWet(
bool enabled)
753 SendDiagRPC(enabled,
ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_DRYWET);
756 static void CBMiscEnvironmentLoggingItemHeat(
bool enabled)
758 SendDiagRPC(enabled,
ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_ITEMHEAT);
762 static void CBMiscFallDamageDebug(
bool enabled)
764 SendDiagRPC(enabled,
ERPCs.DIAG_MISC_FALLDAMAGE_DEBUG);
767 void UpdateFallDamageDebug()
771 else if (m_FallDamageDebugData)
772 m_FallDamageDebugData = null;
776 static void CBMiscDisplayPlayerInfo(
int value)
778 PluginRemotePlayerDebugClient prpdc = PluginRemotePlayerDebugClient.Cast(
GetPlugin(PluginRemotePlayerDebugClient));
783 static void CBMiscUniversalTemperatureSources(
bool enabled)
786 client.RequestUniversalTemperatureSources(
PlayerBase.Cast(
g_Game.GetPlayer()), enabled);
790 static void CBMiscBulletImpact(
bool enabled,
int id)
799 static void CBMiscGoUnconscious(
bool enabled,
int id)
801 DiagButtonRPC(enabled,
id,
ERPCs.DIAG_MISC_GO_UNCONSCIOUS,
true);
805 static void CBMiscGoUnconsciousDelayed(
bool enabled,
int id)
807 DiagButtonRPC(enabled,
id,
ERPCs.DIAG_MISC_GO_UNCONSCIOUS_DELAYED,
true);
811 static void CBMiscQuickRestrain(
bool enabled)
814 DiagToggleRPC(enabled, player.IsQuickRestrain(),
ERPCs.DIAG_MISC_QUICK_RESTRAIN);
818 static void CBMiscHairHide(
bool enabled,
int id)
821 DiagButtonRPCIntInt(enabled,
id, value, enabled,
ERPCs.DIAG_MISC_HAIR_LEVEL_HIDE,
true);
825 static void CBMiscHairHideAll(
bool enabled)
834 static void CBMiscCamShake(
bool enabled,
int id)
837 DiagButtonAction(enabled,
id,
ScriptCaller.Create(cam.SpawnDiagCameraShake));
841 static void CBMiscQuickFishing(
bool enabled)
844 DiagToggleRPC(enabled, player.IsQuickFishing(),
ERPCs.DIAG_MISC_QUICK_FISHING);
848 static void CBMiscShockImpact(
bool enabled,
int id)
850 DiagButtonAction(enabled,
id,
ScriptCaller.Create(ShockImpact));
853 static void ShockImpact()
855 static float intensity;
860 player.SpawnShockEffect(intensity);
864 static void CBMiscPlugArrows(
bool enabled)
866 g_Game.EnableEMPlugs(enabled);
870 static void CBMiscTargetableByAI(
bool enabled,
int id)
874 DiagToggleRPC(enabled, player.m_CanBeTargetedDebug,
ERPCs.DIAG_MISC_TARGETABLE_BY_AI);
878 static void CBMiscHitIndication()
908 static void CBMiscHitIndicationSpawnHit(
bool enabled,
int id)
910 DiagButtonAction(enabled,
id,
ScriptCaller.Create(SpawnHitDirEffect));
913 static void SpawnHitDirEffect()
920 static void CBDebugMonitor(
bool enabled,
int id)
922 SendDiagRPC(enabled,
ERPCs.DIAG_MISC_DEBUG_MONITOR,
true);
925 g_Game.GetMission().CreateDebugMonitor();
927 g_Game.GetMission().HideDebugMonitor();
930 static void CBPRADrawAll(
bool enabled,
int id)
936 static void CBPRADetect(
bool enabled,
int id)
944 Print(
"player: " + player +
" | at position: " + player.GetPosition() +
" | intersects area: " + pra.
areaName);
946 Print(
"player: " + player +
" | at position: " + player.GetPosition() +
" | is NOT in any PlayerRestrictedArea");
952 static void CBMiscFreezeEntity(
bool enabled,
int id)
954 DiagButtonAction(enabled,
id,
ScriptCaller.Create(FreezeEntity));
957 static void FreezeEntity()
973 FreeDebugCamera camera = FreeDebugCamera.GetInstance();
974 entity =
EntityAI.Cast(camera.GetCrosshairObject());
978 entity.DisableSimulation(!entity.GetIsSimulationDisabled());
982 static void CBMiscFreezePlayer(
bool enabled,
int id)
984 DiagButtonAction(enabled,
id,
ScriptCaller.Create(FreezePlayer));
987 static void FreezePlayer()
991 player.DisableSimulation(!player.GetIsSimulationDisabled());
995 static void CBVehicleDebugOutput(
int value)
1001 bitValue = EVehicleDebugOutputType.DAMAGE_APPLIED;
1005 bitValue = EVehicleDebugOutputType.DAMAGE_APPLIED | EVehicleDebugOutputType.DAMAGE_CONSIDERED;
1007 else if (value == 3)
1009 bitValue = EVehicleDebugOutputType.CONTACT;
1011 else if (value == 4)
1013 bitValue = EVehicleDebugOutputType.DAMAGE_APPLIED | EVehicleDebugOutputType.CONTACT;
1015 SendDiagRPC(bitValue,
ERPCs.DIAG_VEHICLE_DEBUG_OUTPUT,
true);
1019 static void CBDumpCrashData(
bool value)
1023 SendDiagRPC(
true,
ERPCs.DIAG_VEHICLES_DUMP_CRASH_DATA_REQUEST,
true);
1031 static void SimulateMode(
bool enabled,
int id,
int rpc)
1039 DiagButtonRPC(enabled,
id, rpc,
true);
1044 DiagButtonRPCSelf(enabled,
id, rpc);
1049 DiagButtonRPC(enabled,
id, rpc,
true);
1050 DiagButtonRPCSelf(enabled,
id, rpc);
1057 static void CBSimulateInfiniteLoop(
bool enabled,
int id)
1059 SimulateMode(enabled,
id,
ERPCs.DIAG_SIMULATE_INFINITE_LOOP);
1063 static void CBSimulateNullPointer(
bool enabled,
int id)
1065 SimulateMode(enabled,
id,
ERPCs.DIAG_SIMULATE_NULL_POINTER);
1069 static void CBSimulateDivisionByZero(
bool enabled,
int id)
1071 SimulateMode(enabled,
id,
ERPCs.DIAG_SIMULATE_DIVISION_BY_ZERO);
1075 static void CBSimulateErrorFunction(
bool enabled,
int id)
1077 SimulateMode(enabled,
id,
ERPCs.DIAG_SIMULATE_ERROR_FUNCTION);
1081 static void CBWeaponParticles(
bool enabled)
1087 static void CBWeaponDebug(
bool enabled)
1090 DiagToggleAction(enabled,
ScriptCaller.Create(player.ShowWeaponDebug), player.IsWeaponDebugEnabled());
1094 static void CBWeaponAimNoise(
bool enabled)
1105 static void CBWeaponRecoil(
bool enabled)
1116 static void CBWeaponUnlimitedAmmo(
bool enabled)
1122 static void CBWeaponBurstVersion(
int value)
1126 DiagToggleRPC(value, wpnMngr.GetBurstOption(),
ERPCs.DIAG_WEAPON_BURST_VERSION);
1130 static void CBBleedingSources(
bool enabled)
1133 player.GetBleedingManagerRemote().SetDiag(enabled);
1137 static void CBBleedingDisableBloodLoss(
bool enabled)
1139 SendDiagRPC(enabled,
ERPCs.DIAG_BLEEDING_DISABLE_BLOOD_LOSS,
true);
1143 static void CBBleedingActivateSource(
int value)
1145 SendDiagRPC(value,
ERPCs.DIAG_BLEEDING_ACTIVATE_SOURCE,
true);
1149 static void CBBleedingActivateAllSources(
bool enabled,
int id)
1151 DiagButtonRPC(enabled,
id,
ERPCs.DIAG_BLEEDING_ACTIVATE_ALL_SOURCES,
true);
1155 static void CBBleedingActivateSourceLevel(
int value)
1167 bone =
"lefttoebase";
1181 for (
int i = 0; i < count; ++i)
1191 CBBleedingActivateSource(idx);
1195 static void CBBleedingReload(
bool enabled,
int id)
1198 BleedingSourcesManagerRemote bsMngrRem = player.GetBleedingManagerRemote();
1199 DiagButtonAction(enabled,
id,
ScriptCaller.Create(bsMngrRem.Reload));
1203 static void CBBBleedingIndicators()
1210 if (player && player.GetBleedingManagerRemote())
1212 player.GetBleedingManagerRemote().Reload();
1244 static void CBLogsActions(
bool enabled)
1250 static void CBLogsWeapons(
bool enabled)
1256 static void CBLogsSync(
bool enabled)
1262 static void CBLogsBaseBuilding(
bool enabled)
1268 static void CBLogsSymptoms(
bool enabled)
1274 static void CBLogsInventoryMove(
bool enabled)
1280 static void CBLogsInventoryReservation(
bool enabled)
1286 static void CBLogsInventoryHFSM(
bool enabled)
1292 static void CBLogsQuickbar(
bool enabled)
1298 static void CBLogsBleedingChances(
bool enabled)
1304 static void CBTriggerDebug(
bool enabled)
1306 EnableDebugSystemClient(ESubscriberSystems.TRIGGERS, enabled);
1310 static void CBBaseBuildingWood(
bool enabled)
1312 SendDiagRPC(enabled,
ERPCs.DIAG_BASEBUILDING_WOOD,
true);
1316 static void CBBaseBuildingGate(
bool enabled)
1318 SendDiagRPC(enabled,
ERPCs.DIAG_BASEBUILDING_GATE,
true);
1322 static void CBFinishersFinisherForced(
int value)
1325 DiagToggleRPC(value - 1, player.GetMeleeCombat().DebugGetForcedFinisherType(),
ERPCs.DIAG_FINISHERS_FORCE_FINISHER);
1329 static void CBCameraToolsEnableRemoteCamera(
bool enabled)
1336 if (!enabled && player.m_CameraToolsMenuClient)
1338 player.m_CameraToolsMenuClient.DelayedDestroy();
1342 g_Game.RPCSingleParam( null,
ERPCs.DIAG_CAMERATOOLS_CAM_SUBSCRIBE, param,
true );
1359 vector end = start + (
g_Game.GetCurrentCameraDirection() * 5.0);
1361 vector hitPos, hitNormal;
1381 mask = (
ItemBase.GetDebugActionsMask() | type);
1385 mask = (
ItemBase.GetDebugActionsMask() & (~type));
1394 static void EnableDebugSystemClient(ESubscriberSystems system,
bool enable)
1399 mask = (m_SystemsMask | system);
1403 mask = (m_SystemsMask & (~system));
1406 if (mask != m_SystemsMask)
1410 m_SystemsMask = mask;
1418 static void DiagButtonActionParams(
bool enabled,
int id,
ScriptCaller action,
Param params)
1422 action.Invoke(params);
1428 static void DiagButtonAction(
bool enabled,
int id,
ScriptCaller action)
1430 DiagButtonActionParams(enabled,
id, action, null);
1434 static void DiagButtonRPC(
bool enabled,
int id,
int rpc,
bool serverOnly =
false)
1437 SendDiagRPCBasicParam params =
new SendDiagRPCBasicParam(rpc, serverOnly);
1439 DiagButtonActionParams(enabled,
id, action, params);
1443 static void DiagButtonRPCSelf(
bool enabled,
int id,
int rpc)
1446 SendDiagRPCSelfBasicParam params =
new SendDiagRPCSelfBasicParam(rpc);
1448 DiagButtonActionParams(enabled,
id, action, params);
1452 static void DiagButtonRPCIntInt(
bool enabled,
int id,
int value,
int value2,
int rpc,
bool serverOnly =
false)
1460 DiagButtonActionParams(enabled,
id, action, params);
1464 static void DiagToggleRPC(
bool value,
int current,
int rpc)
1466 if (value != current)
1468 SendDiagRPC(value, rpc,
false);
1473 static void DiagToggleRPC(
int value,
int current,
int rpc)
1475 if (value != current)
1477 SendDiagRPC(value, rpc,
false);
1482 static void DiagToggleRPC(
float value,
int current,
int rpc)
1484 if (value != current)
1486 SendDiagRPC(value, rpc,
false);
1491 static void DiagToggleRPCServer(
bool value, out
bool current,
int rpc)
1493 if (value != current)
1496 SendDiagRPC(value, rpc,
true);
1501 static void DiagToggleRPCServer(
int value, out
int current,
int rpc)
1503 if (value != current)
1506 SendDiagRPC(value, rpc,
true);
1511 static void DiagToggleRPCServer(
float value, out
float current,
int rpc)
1513 if (value != current)
1516 SendDiagRPC(value, rpc,
true);
1521 static void DiagToggleRPCAction(
int value,
ScriptCaller action,
int current,
int rpc)
1523 if (value != current)
1525 SendDiagRPC(value, rpc);
1526 action.Invoke(value);
1531 static void DiagToggleAction(
int value,
ScriptCaller action,
int current)
1533 if (value != current)
1535 action.Invoke(value);
1540 static void SendDiagRPCSelf(
Param value,
int rpc)
1545 g_Game.RPCSelfSingleParam(player, rpc, value);
1550 static void SendDiagRPCSelfBasic(SendDiagRPCSelfBasicParam param)
1552 SendDiagRPCSelf(null, param.param1);
1556 static void SendDiagRPCSelfParam(SendDiagRPCSelfParamParam param)
1558 SendDiagRPCSelf(param.param2, param.param1);
1562 static void SendDiagRPC(
Param value,
int rpc,
bool serverOnly =
false)
1568 if (
g_Game.IsMultiplayer() && playerIdentity)
1570 g_Game.RPCSingleParam(player, rpc, value,
true, playerIdentity);
1573 if (!
g_Game.IsMultiplayer() || !serverOnly)
1575 g_Game.RPCSelfSingleParam(player, rpc, value);
1581 static void SendDiagRPCBasic(SendDiagRPCBasicParam param)
1583 SendDiagRPC(null, param.param1, param.param2);
1587 static void SendDiagRPCParam(SendDiagRPCParamParam param)
1589 SendDiagRPC(param.param3, param.param1, param.param2);
1593 static void SendDiagRPC(
int rpc,
bool serverOnly =
false)
1595 SendDiagRPC(null, rpc, serverOnly);
1599 static void SendDiagRPC(
bool value,
int rpc,
bool serverOnly =
false)
1606 static void SendDiagRPC(
int value,
int rpc,
bool serverOnly =
false)
1613 static void SendDiagRPC(
float value,
int rpc,
bool serverOnly =
false)
1620 static void CBUpdateSBDummyServers()
1622 m_SBDiagScriptInvoker.Invoke();
1627 return m_SBDiagScriptInvoker;