DayZ 1.27
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 array<Man> players = new array<Man>;
42 GetGame().GetPlayers(players);
43 m_PlayerDebugStats.Clear();
44
45 foreach (Man playerMan : players)
46 {
47 PlayerBase player = PlayerBase.Cast(playerMan);
49 m_PlayerDebugStats.Insert(rpd);
50 }
51 }
52
53 void SendDebug()
54 {
55#ifdef DIAG_DEVELOPER
58
59 for(int i = 0; i < m_ClientList.Count(); ++i)
60 {
61 PlayerBase player = m_ClientList[i];
62 if (player)
63 {
64 ScriptRPC rpc = new ScriptRPC();
66
68 {
69 if (player2)
70 {
71 player_damage.Insert(value);
72
73 }
74 //int xs = 1 + 1;
75 }
76
77 rpc.Write(player_damage);
78
79 rpc.Send(player, ERPCs.DEV_PLAYER_DEBUG_DATA, true, player.GetIdentity());
80 m_PlayerDebugDamage.Clear();
81 }
82 else
83 {
84 m_ClientList.Remove(i);
85 --i;
86 }
87 }
88#endif
89 }
90
91
92 void OnDamageEvent(PlayerBase player, TotalDamageResult damageResult)
93 {
94 if ( !GetWatching() || !damageResult )
95 return;
96
97 float damage_global = damageResult.GetDamage("","");
98 float damage_blood = damageResult.GetDamage("","Blood");
99 float damage_shock = damageResult.GetDamage("","Shock");
100
101 if ( m_PlayerDebugDamage.Contains(player) )
102 {
103 m_PlayerDebugDamage.Get(player).AddDamage( damage_global, damage_blood, damage_shock );
104 }
105 else
106 {
108 rpdd.AddDamage(damage_global, damage_blood, damage_shock);
109 m_PlayerDebugDamage.Insert(player, rpdd);
110 }
111 }
112
113
114 void OnRequestReceived(PlayerBase player, bool enable)
115 {
116 int index = m_ClientList.Find(player);
117
118 if (enable)
119 {
120 m_ClientList.Insert(player);
121 SetWatching(true);
122 }
123 else if (index != -1 && m_ClientList.Count() != 0)
124 {
125 m_ClientList.Remove(index);
126 }
127
128 if ( m_ClientList.Count() == 0 )
129 {
130 SetWatching(false);
131 }
132 }
133
135 {
136 bool enable;
137 ctx.Read(enable);
138 OnRequestReceived(player, enable);
139 }
140}
map
Определения ControlsXboxNew.c:4
ERPCs
Определения ERPCs.c:2
eRemoteDebugType
Определения PluginRemotePlayerDebugClient.c:2
void RemotePlayerStatDebug(PlayerBase player)
Определения RemotePlayerStatDebug.c:16
proto native void GetPlayers(out array< Man > players)
Определения PlayerBaseClient.c:2
float m_AccuTime
[m]
Определения PluginRemotePlayerDebugServer.c:7
void OnDamageEvent(PlayerBase player, TotalDamageResult damageResult)
Определения PluginRemotePlayerDebugServer.c:92
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:53
override void OnUpdate(float delta_time)
Определения PluginRemotePlayerDebugServer.c:13
ref array< ref RemotePlayerStatDebug > m_PlayerDebugStats
Определения PluginRemotePlayerDebugServer.c:5
Определения 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.
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()