28 int m_DetailedInfoRequested = 0;
36 string m_PlayerModsDetailedSynced;
37 string m_EnvironmentDebugMessage;
63 m_StatsUpdateStatus =
false;
64 m_LevelsUpdateStatus =
false;
65 m_ModsUpdateStatus =
false;
66 m_AgentsUpdateStatus =
false;
67 m_StomachUpdateStatus =
false;
94 case ERPCs.DEV_STATS_UPDATE:
100 case ERPCs.DEV_LEVELS_UPDATE:
106 case ERPCs.DEV_MODS_UPDATE:
112 case ERPCs.DEV_AGENTS_UPDATE:
118 case ERPCs.DEV_STOMACH_UPDATE:
123 case ERPCs.DEV_TEMP_UPDATE:
128 case ERPCs.DEV_HEALTH_UPDATE:
136 for (
int i = 0; i < m_RegisteredPlayers.Count(); i++)
138 if (m_RegisteredPlayers.GetElement(i).m_Bitmask == 0)
140 m_RegisteredPlayers.RemoveElement(i);
148 if ( m_RegisteredPlayers.Count() == 0)
164 for (
int i = 0; i < m_RegisteredPlayers.Count(); ++i )
166 PlayerBase player = m_RegisteredPlayers.GetKey( i );
167 if ( !player || !player.IsAlive() )
169 m_RegisteredPlayers.RemoveElement(i);
174 int bit_mask = m_RegisteredPlayers.Get( player ).m_Bitmask;
217 int current_mask = m_RegisteredPlayers.Get(player).m_Bitmask;
219 m_RegisteredPlayers.Get(player).m_Bitmask = current_mask | system_bit;
221 m_RegisteredPlayers.Get(player).m_Bitmask = current_mask & ~system_bit;
231 return (m_RegisteredPlayers.Get(player).m_Bitmask & system_bit);
259 if ( m_RegisteredPlayers.Contains( player ))
279 case ERPCs.DEV_STATS_UPDATE:
284 case ERPCs.DEV_LEVELS_UPDATE:
289 case ERPCs.DEV_MODS_UPDATE:
294 case ERPCs.DEV_AGENTS_UPDATE:
299 case ERPCs.DEV_STOMACH_UPDATE:
304 case ERPCs.DEV_HEALTH_UPDATE:
309 case ERPCs.DEV_RPC_STATS_DATA:
314 case ERPCs.DEV_RPC_LEVELS_DATA:
319 case ERPCs.DEV_RPC_MODS_DATA:
324 case ERPCs.DEV_RPC_MODS_DATA_DETAILED:
329 case ERPCs.DEV_RPC_AGENTS_DATA:
333 case ERPCs.DEV_RPC_STOMACH_DATA:
338 case ERPCs.DEV_RPC_MODS_ACTIVATE:
342 case ERPCs.DEV_RPC_MODS_DETAILED:
347 case ERPCs.DEV_RPC_MODS_DEACTIVATE:
352 case ERPCs.DEV_RPC_MODS_LOCK:
360 case ERPCs.DEV_RPC_MODS_RESET:
362 player.GetModifiersManager().DeactivateAllModifiers();
366 case ERPCs.DEV_RPC_STATS_RESET:
368 player.GetPlayerStats().ResetAllStats();
372 case ERPCs.DEV_RPC_STAT_SET:
377 case ERPCs.DEV_TEMP_UPDATE:
382 case ERPCs.DEV_RPC_HEALTH_DATA:
387 case ERPCs.DEV_RPC_HEALTH_SET:
393 case ERPCs.DEV_RPC_HORTICULTURE_UPDATE:
399 case ERPCs.DEV_RPC_HORTICULTURE_SPEED:
410 Param1<bool> p =
new Param1<bool>( 0 );
422 Param1<int> p =
new Param1<int>( 0 );
454 for (
int i = 0; i < player.m_PlayerStats.GetPCO().
Get().
Count(); i++ )
456 string label = player.m_PlayerStats.GetPCO().Get().Get( i ).GetLabel();
457 float value = (
float) player.m_PlayerStats.GetPCO().Get().Get( i ).Get();
458 float value_norm = (
float) player.m_PlayerStats.GetPCO().Get().Get( i ).GetNormalized();
464 rpc_params.InsertAt(
new Param1<int>(rpc_params.Count() ), 0);
466 GetDayZGame().RPC( player,
ERPCs.DEV_RPC_STATS_DATA, rpc_params,
true, player.GetIdentity() );
474 m_PlayerStatsSynced.Clear();
477 Param1<int> p_count =
new Param1<int>(0);
483 if ( ctx.Read(p_count) )
485 param_count = p_count.param1;
489 for (
int i = 0; i < param_count; i++ )
492 m_PlayerStatsSynced.Insert(
new SyncedValue( p.param1, p.param2,
false, p.param3 ) );
502 m_PlayerStatsSynced.Clear();
505 for (
int i = 0; i < player.m_PlayerStats.GetPCO().
Get().
Count(); i++ )
507 string label = player.m_PlayerStats.GetPCO().Get().Get( i ).GetLabel();
508 float value = player.m_PlayerStats.GetPCO().Get().Get( i ).Get();
509 float value_norm = player.m_PlayerStats.GetPCO().Get().Get( i ).GetNormalized();
510 m_PlayerStatsSynced.Insert(
new SyncedValue( label, value,
false, value_norm ) );
513 m_PlayerStatsSynced.Insert(
new SyncedValue(
"(NaS)Immunity", player.GetImmunity() ,
false, 0));
514 m_PlayerStatsSynced.Insert(
new SyncedValue(
"(NaS) BrokenLegs", player.m_BrokenLegState,
false, 0));
522 for (
int i = 0; i < player.m_PlayerStats.GetPCO().
Get().
Count(); i++ )
524 string label = player.m_PlayerStats.GetPCO().Get().Get( i ).GetLabel();
525 if ( label == p.param1 )
527 player.m_PlayerStats.GetPCO().Get().Get( i).SetByFloatEx(p.param2);
550 m_IsTargetChanged = state;
561 if (m_HealthObserverMode.Get(player) ==
false)
566 target =
EntityAI.Cast(itemDiagPlugin.GetWatchedItem(player));
578 bool targetChanged =
false;
579 if (target != m_HealthObserverEntity.Get(player))
581 targetChanged =
true;
582 m_HealthObserverEntity.Set(player, target);
585 rpc_params.InsertAt(
new Param2<int, bool>(rpc_params.Count(), targetChanged), 0);
587 GetDayZGame().RPC( player,
ERPCs.DEV_RPC_HEALTH_DATA, rpc_params,
true, player.GetIdentity() );
593 m_TargetHealthSynced.Clear();
596 Param4<string, float, float, bool> p =
new Param4<string, float, float, bool>(
"", 0, 0,
false);
599 if ( ctx.Read(paramsHeader) )
601 paramCount = paramsHeader.param1;
605 for (
int i = 0; i < paramCount; i++ )
608 m_TargetHealthSynced.Insert(
new SyncedValue( p.param1, p.param2, p.param4, p.param3 ) );
617 bool isTitleEntry =
true;
618 rpc_params.Insert(
new Param4<string, float, float, bool>(
"", 0, typeID, isTitleEntry ) );
621 isTitleEntry =
false;
623 target.GetAdditionalHealthTypes(
"", outHealthTypes);
624 if (healthType ==
"Health" || outHealthTypes.Find(healthType) != -1)
626 value = target.GetHealth(
"", healthType);
627 rpc_params.Insert(
new Param4<string, float, float, bool>(
"Global", value, typeID, isTitleEntry ) );
631 int count = dmgZones.Count();
632 for (
int i = 0; i < count; i++)
634 string zoneName = dmgZones.GetKey(i);
635 outHealthTypes.Clear();
636 target.GetAdditionalHealthTypes(zoneName, outHealthTypes);
638 if (healthType !=
"Health")
640 if (outHealthTypes.Find(healthType) == -1)
644 if (target.GetMaxHealth(zoneName, healthType) == 0)
647 isTitleEntry =
false;
648 value = target.GetHealth(zoneName, healthType);
649 rpc_params.Insert(
new Param4<string, float, float, bool>( zoneName, value, typeID, isTitleEntry ) );
660 int buttonID = p.param1;
661 string zoneName = p.param2;
662 string healthType = p.param3;
667 m_HealthObserverMode.Set(player,
true);
668 else if (buttonID == 5)
669 m_HealthObserverMode.Set(player,
false);
675 if (m_HealthObserverMode.Get(player) ==
false)
680 target =
EntityAI.Cast(itemDiagPlugin.GetWatchedItem(player));
683 if (zoneName ==
"Global")
686 float zoneMax = target.GetMaxHealth(zoneName, healthType);
687 float zoneCurrentHealth = target.GetHealth(zoneName, healthType);
692 else if (buttonID == 1)
693 targetHealth = zoneMax;
694 else if (buttonID == 2)
695 targetHealth = zoneCurrentHealth + zoneMax * 0.1;
696 else if (buttonID == 3)
697 targetHealth = zoneCurrentHealth - zoneMax * 0.1;
699 target.SetHealth(zoneName, healthType, targetHealth);
704 Param6<int, GardenBase, int, int, int, int> p =
new Param6<int, GardenBase, int, int, int, int>(-1, null, 0, 0, 0, 0);
710 if (p.param1 != -1 && garden)
712 Slot gSlot = garden.GetSlotByIndex(p.param1);
713 if (gSlot && gSlot.GetPlant())
714 gSlot.GetPlant().DebugSetTimes(p.param3, p.param4, p.param5, p.param6);
717 PlantBase.DebugSetGlobalTimes(p.param3, p.param4, p.param5, p.param6);
722 Param1<float> p =
new Param1<float>(1);
726 PlantBase.DebugSetTickSpeedMultiplier(p.param1);
746 int param_count = rpc_params.Count();
749 GetDayZGame().RPC( player,
ERPCs.DEV_RPC_LEVELS_DATA, rpc_params,
true, player.GetIdentity() );
757 m_PlayerLevelsSynced.Clear();
765 param_count = p3.param2;
769 for (
int i = 0; i < param_count; i++ )
772 m_PlayerLevelsSynced.Insert(
new SyncedValueLevel( p3.param1, p3.param2, p3.param3 ) );
789 mods_manager.DbgGetModifiers( modifiers );
791 float param_count = (
float ) modifiers.Count();
792 rpc_params.Insert(
new Param1<int>( param_count ));
795 for (
int i = 0; i < modifiers.Count(); ++i )
797 int id = modifiers.Get(i).GetID();
798 string name = modifiers.Get(i).GetName();
799 bool active = modifiers.Get(i).IsActive();
800 bool locked = modifiers.Get(i).IsLocked();
802 rpc_params.Insert(
new Param4<int, string, bool, bool>(
id,
name, active, locked ) );
806 GetDayZGame().RPC( player,
ERPCs.DEV_RPC_MODS_DATA, rpc_params,
true, player.GetIdentity() );
819 Param1<string> p1 =
new Param1<string>(
"");
821 int mod_id = m_RegisteredPlayers.Get(player).m_DetailedModifierIndex;
822 p1.param1 = mods_manager.GetModifier(mod_id).GetDebugText();
825 GetDayZGame().RPCSingleParam( player,
ERPCs.DEV_RPC_MODS_DATA_DETAILED, p1,
true, player.GetIdentity() );
833 m_PlayerModsSynced.Clear();
836 Param1<int> p1 =
new Param1<int>(0);
837 Param4<int, string, bool, bool> p4 =
new Param4<int, string, bool, bool>( 0,
"",
false,
false );
842 param_count = (
int) p1.param1;
846 for (
int i = 0; i < param_count; i++ )
850 m_PlayerModsSynced.Insert(
new SyncedValueModifier( p4.param1, p4.param2, p4.param3, p4.param4 ) );
857 Param1<string> p1 =
new Param1<string>(
"");
862 m_PlayerModsDetailedSynced = p1.param1;
885 int modifier_id =
Math.AbsInt(
id );
886 m_RegisteredPlayers.Get(player).m_DetailedModifierIndex = modifier_id;
907 mods_manager.ActivateModifier(
Math.AbsInt(
id ) );
918 mods_manager.DeactivateModifier(
Math.AbsInt(
id ) );
929 mods_manager.SetModifierLock(
Math.AbsInt(
id ), lock );
940 return mods_manager.GetModifierLock(
Math.AbsInt(
id ) );
979 if ( ( player && player.GetIdentity() && player.m_AgentPool != null ) || ( player && !
GetGame().IsMultiplayer() && player.m_AgentPool != null ) )
984 player.m_AgentPool.GetDebugObject( agent_pool );
986 GetDayZGame().RPC( player,
ERPCs.DEV_RPC_AGENTS_DATA, agent_pool,
true, player.GetIdentity() );
994 m_PlayerAgentsSynced.Clear();
996 Param4<string, string, int, float> p4 =
new Param4<string, string, int, float>(
"",
"" , 0, 0.0);
997 Param1<int> p1 =
new Param1<int>(0);
1002 paramCount = p1.param1;
1005 for (
int i = 0; i < paramCount; i++)
1008 m_PlayerAgentsSynced.Insert(
new SyncedValueAgent(p4.param1, p4.param2, p4.param3, p4.param4));
1022 int count = player.m_PlayerStomach.GetDebugObject( stomach );
1023 stomach.InsertAt(
new Param1<int>(count), 0);
1025 GetDayZGame().RPC( player,
ERPCs.DEV_RPC_STOMACH_DATA, stomach,
true, player.GetIdentity() );
1033 m_PlayerStomachSynced.Clear();
1035 Param1<int> p1 =
new Param1<int>(0);
1036 int param_count = 0;
1039 param_count = p1.param1;
1045 for (
int i = 0; i < param_count; i++ )
1047 Param5<int,int,int,float,float> p5 =
new Param5<int,int,int,float,float>(0,0,0,0,0);
1049 m_PlayerStomachSynced.Insert(p5);
1052 Param1<float> p1b =
new Param1<float>(0);
1054 m_PlayerStomachSynced.Insert(p1b);
1056 Param1<float> paramTemp =
new Param1<float>(0);
1057 ctx.Read(paramTemp);
1058 m_PlayerStomachSynced.Insert(paramTemp);
1067 GetGame().GetInput().ChangeGameFocus( 1 );
1068 GetGame().GetUIManager().ShowUICursor(
true );
1073 GetGame().GetInput().ChangeGameFocus( -1 );
1074 GetGame().GetUIManager().ShowUICursor(
false );
1079 if (
GetGame().GetInput().HasGameFocus() )
1081 GetGame().GetInput().ChangeGameFocus( 1 );
1082 GetGame().GetUIManager().ShowUICursor(
true );
1086 GetGame().GetInput().ResetGameFocus();
1087 GetGame().GetUIManager().ShowUICursor(
false );
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
Plugin interface for controlling of agent pool system.
void OnRPCHealthSet(ParamsReadContext ctx, PlayerBase player)
void OnRPCTemp(ParamsReadContext ctx, PlayerBase player)
void SetTargetChanged(bool state)
void SendRPCMods(PlayerBase player)
bool GetIsTargetChanged()
void OnRPCStomach(ParamsReadContext ctx)
int GetRPCModifierID(ParamsReadContext ctx)
void PluginDeveloperSync()
void SendRPCStats(PlayerBase player)
bool IsPlayerRegistered(PlayerBase player)
bool m_StomachUpdateStatus
void OnRPCMods(ParamsReadContext ctx)
void OnRPCHorticultureSpeed(ParamsReadContext ctx, PlayerBase player)
ref array< ref SyncedValue > m_TargetHealthSynced
void OnRPCHealth(ParamsReadContext ctx, PlayerBase player)
void SetupZoneValues(inout array< ref Param > rpc_params, DamageZoneMap dmgZones, EntityAI target, string healthType, int typeID)
void OnRPCLevels(ParamsReadContext ctx)
bool m_AgentsUpdateStatus
void SendRPCLevels(PlayerBase player)
ref map< PlayerBase, bool > m_HealthObserverMode
void DeactivateModifier(int id, PlayerBase player=NULL)
void OnRPCStats(ParamsReadContext ctx)
void SendRPCModsDetail(PlayerBase player)
void SendRPCStomach(PlayerBase player)
void SetSystemInBitmask(PlayerBase player, int system_bit, bool state)
void ActivateModifier(int id, PlayerBase player=NULL)
bool IsSetSystemInBitmask(PlayerBase player, int system_bit)
bool m_LevelsUpdateStatus
ref array< ref SyncedValue > GetHealthZonesSynched()
void RegisterPlayer(PlayerBase player)
void SendRPCAgents(PlayerBase player)
ref map< PlayerBase, EntityAI > m_HealthObserverEntity
void OnRPCStatSet(ParamsReadContext ctx, PlayerBase player)
bool GetRPCUpdateState(ParamsReadContext ctx)
void OnRPC(PlayerBase player, int rpc_type, ParamsReadContext ctx)
void SendRPCHealth(PlayerBase player)
void EnableUpdate(bool enable, int type, PlayerBase player)
void OnRPCAgents(ParamsReadContext ctx)
void OnRPCHorticultUpdate(ParamsReadContext ctx, PlayerBase player)
void LockModifier(int id, bool lock, PlayerBase player=NULL)
void RequestDetailedInfo(int id, notnull PlayerBase player)
void SendRPCTemp(PlayerBase player)
bool IsModifierLocked(int id, PlayerBase player=NULL)
void OnRPCModsDetailed(ParamsReadContext ctx)
void GetRPCModifierLock(ParamsReadContext ctx, out int id, out bool lock)
Serialization general interface. Serializer API works with:
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
map< string, ref array< string > > DamageZoneMap
proto native CGame GetGame()
void ModifiersManager(PlayerBase player)
void RegisterPlayerData()
enum PDS_SYSTEMS m_Bitmask
int m_DetailedModifierIndex
void PluginItemDiagnostic()
PluginBase GetPlugin(typename plugin_type)
void SyncedValueLevel(string name, float value, float value2)
void SyncedValueAgent(string name, string value, int id, float temporaryResistance)