1class PluginRemotePlayerDebugServer
extends PluginBase
3 ref set<PlayerBase> m_ClientList =
new set<PlayerBase>;
5 ref array<ref RemotePlayerStatDebug>
m_PlayerDebugStats =
new array<ref RemotePlayerStatDebug>;
6 ref map<PlayerBase, ref RemotePlayerDamageDebug>
m_PlayerDebugDamage =
new map<PlayerBase, ref RemotePlayerDamageDebug>;
8 const int INTERVAL = 1;
13 override void OnUpdate(
float delta_time)
16 if ( m_ClientList.Count() != 0 )
18 m_AccuTime += delta_time;
20 if ( m_AccuTime > INTERVAL )
29 void SetWatching(
bool enable)
39 void GatherPlayerInfo()
41 if (!
g_Game.IsDedicatedServer())
44 array<Man> players =
new array<Man>;
45 g_Game.GetPlayers(players);
48 foreach (Man playerMan : players)
50 PlayerBase player = PlayerBase.Cast(playerMan);
60 array<ref RemotePlayerDamageDebug> player_damage =
new array<ref RemotePlayerDamageDebug>;
62 for(
int i = 0; i < m_ClientList.Count(); ++i)
64 PlayerBase player = m_ClientList[i];
67 ScriptRPC rpc =
new ScriptRPC();
74 player_damage.Insert(value);
80 rpc.Write(player_damage);
82 rpc.Send(player,
ERPCs.DEV_PLAYER_DEBUG_DATA,
true, player.GetIdentity());
87 m_ClientList.Remove(i);
95 void OnDamageEvent(PlayerBase player, TotalDamageResult damageResult)
97 if ( !GetWatching() || !damageResult )
100 float damage_global = damageResult.GetDamage(
"",
"");
101 float damage_blood = damageResult.GetDamage(
"",
"Blood");
102 float damage_shock = damageResult.GetDamage(
"",
"Shock");
110 RemotePlayerDamageDebug rpdd =
new RemotePlayerDamageDebug(player);
111 rpdd.AddDamage(damage_global, damage_blood, damage_shock);
117 void OnRequestReceived(PlayerBase player,
bool enable)
119 int index = m_ClientList.Find(player);
123 m_ClientList.Insert(player);
126 else if (index != -1 && m_ClientList.Count() != 0)
128 m_ClientList.Remove(index);
131 if ( m_ClientList.Count() == 0 )
141 OnRequestReceived(player, enable);
Plugin interface for controlling of agent pool system.
void OnRPC(PlayerBase player, int rpc_type, ParamsReadContext ctx)
Serializer ParamsReadContext
eRemoteDebugType m_DebugType
ref map< PlayerBase, ref RemotePlayerDamageDebug > m_PlayerDebugDamage
ref array< ref RemotePlayerStatDebug > m_PlayerDebugStats
void RemotePlayerStatDebug(PlayerBase player)