DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
PluginRemotePlayerDebugServer.c
См. документацию.
1class PluginRemotePlayerDebugServer extends PluginBase
2{
3 ref set<PlayerBase> m_ClientList = new set<PlayerBase>;
4
7 float m_AccuTime;
8 const int INTERVAL = 1;
9
12
13 override void OnUpdate(float delta_time)
14 {
15 #ifdef SERVER
16 if ( m_ClientList.Count() != 0 )
17 {
18 m_AccuTime += delta_time;
19
20 if ( m_AccuTime > INTERVAL )
21 {
22 m_AccuTime = 0;
23 SendDebug();
24 }
25 }
26 #endif
27 }
28
29 void SetWatching(bool enable)
30 {
31 m_Watching = enable;
32 }
33
35 {
36 return m_Watching;
37 }
38
40 {
41 if (!g_Game.IsDedicatedServer())
42 return;
43
44 array<Man> players = new array<Man>;
45 g_Game.GetPlayers(players);
46 m_PlayerDebugStats.Clear();
47
48 foreach (Man playerMan : players)
49 {
50 PlayerBase player = PlayerBase.Cast(playerMan);
52 m_PlayerDebugStats.Insert(rpd);
53 }
54 }
55
56 void SendDebug()
57 {
58#ifdef DIAG_DEVELOPER
61
62 for(int i = 0; i < m_ClientList.Count(); ++i)
63 {
64 PlayerBase player = m_ClientList[i];
65 if (player)
66 {
67 ScriptRPC rpc = new ScriptRPC();
69
71 {
72 if (player2)
73 {
74 player_damage.Insert(value);
75
76 }
77 //int xs = 1 + 1;
78 }
79
80 rpc.Write(player_damage);
81
82 rpc.Send(player, ERPCs.DEV_PLAYER_DEBUG_DATA, true, player.GetIdentity());
83 m_PlayerDebugDamage.Clear();
84 }
85 else
86 {
87 m_ClientList.Remove(i);
88 --i;
89 }
90 }
91#endif
92 }
93
94
95 void OnDamageEvent(PlayerBase player, TotalDamageResult damageResult)
96 {
97 if ( !GetWatching() || !damageResult )
98 return;
99
100 float damage_global = damageResult.GetDamage("","");
101 float damage_blood = damageResult.GetDamage("","Blood");
102 float damage_shock = damageResult.GetDamage("","Shock");
103
104 if ( m_PlayerDebugDamage.Contains(player) )
105 {
106 m_PlayerDebugDamage.Get(player).AddDamage( damage_global, damage_blood, damage_shock );
107 }
108 else
109 {
111 rpdd.AddDamage(damage_global, damage_blood, damage_shock);
112 m_PlayerDebugDamage.Insert(player, rpdd);
113 }
114 }
115
116
117 void OnRequestReceived(PlayerBase player, bool enable)
118 {
119 int index = m_ClientList.Find(player);
120
121 if (enable)
122 {
123 m_ClientList.Insert(player);
124 SetWatching(true);
125 }
126 else if (index != -1 && m_ClientList.Count() != 0)
127 {
128 m_ClientList.Remove(index);
129 }
130
131 if ( m_ClientList.Count() == 0 )
132 {
133 SetWatching(false);
134 }
135 }
136
138 {
139 bool enable;
140 ctx.Read(enable);
141 OnRequestReceived(player, enable);
142 }
143}
DayZGame g_Game
Определения DayZGame.c:3942
ERPCs
Определения ERPCs.c:2
eRemoteDebugType
Определения PluginRemotePlayerDebugClient.c:2
void RemotePlayerStatDebug(PlayerBase player)
Определения RemotePlayerStatDebug.c:16
Определения PlayerBaseClient.c:2
float m_AccuTime
[m]
Определения PluginRemotePlayerDebugServer.c:7
void OnDamageEvent(PlayerBase player, TotalDamageResult damageResult)
Определения PluginRemotePlayerDebugServer.c:95
bool GetWatching()
Определения PluginRemotePlayerDebugServer.c:34
void SetWatching(bool enable)
Определения PluginRemotePlayerDebugServer.c:29
void OnRPC(ParamsReadContext ctx, PlayerBase player)
bool m_Watching
Определения PluginRemotePlayerDebugServer.c:11
ref set< PlayerBase > m_ClientList
Определения PluginRemotePlayerDebugServer.c:3
void OnRequestReceived(PlayerBase player, bool enable)
void GatherPlayerInfo()
Определения PluginRemotePlayerDebugServer.c:39
eRemoteDebugType m_DebugType
Определения PluginRemotePlayerDebugServer.c:10
ref map< PlayerBase, ref RemotePlayerDamageDebug > m_PlayerDebugDamage
Определения PluginRemotePlayerDebugServer.c:6
const int INTERVAL
Определения PluginRemotePlayerDebugServer.c:8
void SendDebug()
Определения PluginRemotePlayerDebugServer.c:56
override void OnUpdate(float delta_time)
Определения PluginRemotePlayerDebugServer.c:13
ref array< ref RemotePlayerStatDebug > m_PlayerDebugStats
Определения PluginRemotePlayerDebugServer.c:5
Plugin interface for controlling of agent pool system.
Определения PluginBase.c:2
void AddDamage(float value_global, float value_blood, float value_shock)
Определения RemotePlayerDamageDebug.c:14
proto native void Send(Object target, int rpc_type, bool guaranteed, PlayerIdentity recipient=NULL)
Initiate remote procedure call. When called on client, RPC is evaluated on server; When called on ser...
Определения gameplay.c:105
proto bool Write(void value_out)
proto bool Read(void value_in)
proto native float GetDamage(string zoneName, string healthType)
Определения DamageSystem.c:2
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения CachedEquipmentStorage.c:4
Serializer ParamsReadContext
Определения gameplay.c:15