Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
pluginremoteplayerdebugserver.c
Go to the documentation of this file.
1
class
PluginRemotePlayerDebugServer
extends
PluginBase
2
{
3
ref set<PlayerBase>
m_ClientList
=
new
set<PlayerBase>;
4
5
ref
array<ref RemotePlayerStatDebug>
m_PlayerDebugStats
=
new
array<ref RemotePlayerStatDebug>
;
6
ref
map<PlayerBase, ref RemotePlayerDamageDebug>
m_PlayerDebugDamage
=
new
map<PlayerBase, ref RemotePlayerDamageDebug>
;
7
float
m_AccuTime
;
8
const
int
INTERVAL
= 1;
9
10
eRemoteDebugType
m_DebugType
;
11
bool
m_Watching
;
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
34
bool
GetWatching
()
35
{
36
return
m_Watching
;
37
}
38
39
void
GatherPlayerInfo
()
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);
51
RemotePlayerStatDebug
rpd =
new
RemotePlayerStatDebug
(player);
52
m_PlayerDebugStats
.Insert(rpd);
53
}
54
}
55
56
void
SendDebug
()
57
{
58
#ifdef DIAG_DEVELOPER
59
GatherPlayerInfo
();
60
array<ref RemotePlayerDamageDebug>
player_damage =
new
array<ref RemotePlayerDamageDebug>
;
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
();
68
rpc.
Write
(
m_PlayerDebugStats
);
69
70
foreach
(
PlayerBase
player2,
RemotePlayerDamageDebug
value :
m_PlayerDebugDamage
)
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
{
110
RemotePlayerDamageDebug
rpdd =
new
RemotePlayerDamageDebug
(player);
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
137
void
OnRPC
(
ParamsReadContext
ctx,
PlayerBase
player)
138
{
139
bool
enable;
140
ctx.
Read
(enable);
141
OnRequestReceived
(player, enable);
142
}
143
}
PlayerBase
Definition
playerbaseclient.c:2
PluginBase
Class PluginMessageManager provides some basic Message Distribution mechanics, if you get instance of...
Definition
pluginbase.c:2
PluginBase::m_DebugType
eRemoteDebugType m_DebugType
Definition
pluginremoteplayerdebugserver.c:10
PluginBase::m_PlayerDebugDamage
ref map< PlayerBase, ref RemotePlayerDamageDebug > m_PlayerDebugDamage
Definition
pluginremoteplayerdebugserver.c:6
PluginBase::OnRPC
void OnRPC(ParamsReadContext ctx, PlayerBase player)
Definition
pluginremoteplayerdebugserver.c:137
PluginBase::INTERVAL
const int INTERVAL
Definition
pluginremoteplayerdebugserver.c:8
PluginBase::GatherPlayerInfo
void GatherPlayerInfo()
Definition
pluginremoteplayerdebugserver.c:39
PluginBase::SendDebug
void SendDebug()
Definition
pluginremoteplayerdebugserver.c:56
PluginBase::GetWatching
bool GetWatching()
Definition
pluginremoteplayerdebugserver.c:34
PluginBase::m_ClientList
ref set< PlayerBase > m_ClientList
Definition
pluginremoteplayerdebugserver.c:3
PluginBase::m_Watching
bool m_Watching
Definition
pluginremoteplayerdebugserver.c:11
PluginBase::m_PlayerDebugStats
ref array< ref RemotePlayerStatDebug > m_PlayerDebugStats
Definition
pluginremoteplayerdebugserver.c:5
PluginBase::OnDamageEvent
void OnDamageEvent(PlayerBase player, TotalDamageResult damageResult)
Definition
pluginremoteplayerdebugserver.c:95
PluginBase::m_AccuTime
float m_AccuTime
[m]
Definition
pluginremoteplayerdebugserver.c:7
PluginBase::OnRequestReceived
void OnRequestReceived(PlayerBase player, bool enable)
Definition
pluginremoteplayerdebugserver.c:117
PluginBase::SetWatching
void SetWatching(bool enable)
Definition
pluginremoteplayerdebugserver.c:29
PluginBase::OnUpdate
override void OnUpdate(float delta_time)
Definition
pluginremoteplayerdebugserver.c:13
RemotePlayerDamageDebug
Definition
remoteplayerdamagedebug.c:2
RemotePlayerDamageDebug::AddDamage
void AddDamage(float value_global, float value_blood, float value_shock)
Definition
remoteplayerdamagedebug.c:14
ScriptRPC
Definition
gameplay.c:105
ScriptRPC::Send
proto native void Send(Object target, int rpc_type, bool guaranteed, PlayerIdentity recipient=NULL)
Initiate remote procedure call.
Serializer::Write
proto bool Write(void value_out)
Serializer::Read
proto bool Read(void value_in)
TotalDamageResult
Definition
damagesystem.c:2
TotalDamageResult::GetDamage
proto native float GetDamage(string zoneName, string healthType)
array
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Definition
isboxcollidinggeometryproxyclasses.c:28
map
Definition
cachedequipmentstorage.c:4
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
ERPCs
ERPCs
Definition
erpcs.c:2
ParamsReadContext
Serializer ParamsReadContext
Definition
gameplay.c:15
eRemoteDebugType
eRemoteDebugType
Definition
pluginremoteplayerdebugclient.c:2
RemotePlayerStatDebug
void RemotePlayerStatDebug(PlayerBase player)
Definition
remoteplayerstatdebug.c:16
Games
Dayz
scripts
4_world
plugins
pluginbase
plugindeveloper
pluginremoteplayerdebugserver.c
Generated by
1.17.0