DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
DebugMonitorValues.c
См. документацию.
2{
3 const int TYPE_HEALTH = 1;
4 const int TYPE_BLOOD = 2;
5 const int TYPE_BODY_TEMP = 3;
6 const int TYPE_POSITION = 4;
7 const int TYPE_LAST_DAMAGE = 5;
8
10
11 const int TYPE_HEAT_COMFORT = 7;
12 const int TYPE_THERMAL_BIAS = 8;
13
14 const int LAST_DAMAGE_FALL = 1;
15 const int LAST_DAMAGE_HIT = 2;
16
17 const float VALUE_CHECK_INTERVAL = 1;
18 const float SENSITIVTY_PERCENTAGE = 1;//how much the value needs to change up/down from previous update to trigger a new update(in percent)
19
22
24
27
29
31
34
37
41
43
45 {
46 m_Player = player;
47 Init();
48 }
49
50 void Init()
51 {
52 m_HealthMaxValue = m_Player.GetMaxHealth("", "Health");
53 m_BloodMaxValue = m_Player.GetMaxHealth("", "Blood");
54 }
55
56 void OnScheduledTick(float deltatime)
57 {
58 if ( g_Game.IsClient() ) return;
59 if ( !g_Game.IsDebugMonitor() ) return; // turned off in server config
60
61 m_TimeSinceLastTick += deltatime;
62
64 {
67 }
68 }
69
86
87 float GetBlood()
88 {
89 return m_BloodClient;
90 }
91
92 float GetHealth()
93 {
94 return m_HealthClient;
95 }
96
98 {
99 return m_LastDamageClient;
100 }
101
106
108 {
109 return m_HeatComfortClient;
110 }
111
113 {
114 return m_ThermalBiasClient;
115 }
116
117 void SetLastDamage(string value)
118 {
119 m_CurrentLastDamage = value;
120 }
121
123 {
124 float health_current = m_Player.GetHealth("","Health");
125 float health_normalized = health_current / m_HealthMaxValue;
126 float difference_normalized = health_normalized - m_LastHealthUpdate;
127 float diff_abs = Math.AbsFloat(difference_normalized);
128
129 if ( diff_abs > ( SENSITIVTY_PERCENTAGE /100 ) )
130 {
131 Param1<float> param = new Param1<float>( health_current );
132
133 SendValue(TYPE_HEALTH, param);
134 m_LastHealthUpdate = health_normalized;
135 }
136 }
137
139 {
140 float blood_current = m_Player.GetHealth("","Blood");
141 float blood_normalized = blood_current / m_BloodMaxValue;
142 float difference_normalized = blood_normalized - m_LastBloodUpdate;
143 float diff_abs = Math.AbsFloat(difference_normalized);
144
145 if ( diff_abs > ( SENSITIVTY_PERCENTAGE /100 ) )
146 {
147 Param1<float> param = new Param1<float>( blood_current );
148
149 SendValue(TYPE_BLOOD, param);
150 m_LastBloodUpdate = blood_normalized;
151 }
152 }
153
155 {
157 {
158 Param1<string> param = new Param1<string>(m_CurrentLastDamage);
161 }
162 }
163
165 {
166 float environmentTemperature = m_Player.m_Environment.GetTemperature();
167 Param1<float> param = new Param1<float>(environmentTemperature);
169 }
170
171 protected void CheckHeatComfort()
172 {
173 float heatComfort = m_Player.GetStatHeatComfort().Get();
174 Param1<float> param = new Param1<float>(heatComfort);
176 }
177
178 protected void CheckThermalBias()
179 {
180 float thermalBias = m_Player.GetThermalBiasHandler().Get();
181 Param1<float> param = new Param1<float>(thermalBias);
183 }
184
185 void SendValue(int value_type, Param param)
186 {
187 switch(value_type)
188 {
189 case DebugMonitorValues.TYPE_HEALTH:
190 case DebugMonitorValues.TYPE_BLOOD:
191 case DebugMonitorValues.TYPE_ENVIRONMENT_TEMPERATURE:
192 case DebugMonitorValues.TYPE_HEAT_COMFORT:
193 case DebugMonitorValues.TYPE_THERMAL_BIAS:
194 {
195 Param1<float> value_float = Param1<float>.Cast( param );
196
197 CachedObjectsParams.PARAM2_INT_FLOAT.param1 = value_type;
198 CachedObjectsParams.PARAM2_INT_FLOAT.param2 = value_float.param1;
199 //Print("SendingValue type " + value_type.ToString() + " value " + value_float.ToString());
200 g_Game.RPCSingleParam(m_Player, ERPCs.RPC_DEBUG_MONITOR_FLT, CachedObjectsParams.PARAM2_INT_FLOAT, true, m_Player.GetIdentity());
201 }
202 break;
203 case DebugMonitorValues.TYPE_LAST_DAMAGE:
204 {
205 Param1<string> value_string = Param1<string>.Cast( param );
206
207 CachedObjectsParams.PARAM2_INT_STRING.param1 = value_type;
208 CachedObjectsParams.PARAM2_INT_STRING.param2 = value_string.param1;
209 //Print("SendingValue type " + value_type.ToString() + " value " + value_string);
210 g_Game.RPCSingleParam(m_Player, ERPCs.RPC_DEBUG_MONITOR_STR, CachedObjectsParams.PARAM2_INT_STRING, true, m_Player.GetIdentity());
211 }
212 break;
213 }
214 }
215
216 void ReceiveValue(int value_type, Param param)
217 {
218 g_Game.GetMission().CreateDebugMonitor();
219
220 switch (value_type)
221 {
222 case DebugMonitorValues.TYPE_HEALTH:
223 {
224 Param1<float> valueHealth = Param1<float>.Cast( param );
225 //Print("ReceivedValue health " + valueHealth.param1.ToString());
226 m_HealthClient = valueHealth.param1;
227 }
228 break;
229 case DebugMonitorValues.TYPE_BLOOD:
230 {
231 Param1<float> valueBlood = Param1<float>.Cast( param );
232 //Print("ReceivedValue blood " + valueBlood.param1.ToString());
233 m_BloodClient = valueBlood.param1;
234 }
235 break;
236 case DebugMonitorValues.TYPE_ENVIRONMENT_TEMPERATURE:
237 {
238 Param1<float> valueEnvironmentTemperature = Param1<float>.Cast(param);
239 m_EnvironmentTemperatureClient = valueEnvironmentTemperature.param1;
240 }
241 break;
242 case DebugMonitorValues.TYPE_HEAT_COMFORT:
243 {
244 Param1<float> heatComfort = Param1<float>.Cast(param);
245 m_HeatComfortClient = heatComfort.param1;
246 }
247 break;
248 case DebugMonitorValues.TYPE_THERMAL_BIAS:
249 {
250 Param1<float> thermalBias = Param1<float>.Cast(param);
251 m_ThermalBiasClient = thermalBias.param1;
252 }
253 break;
254 case DebugMonitorValues.TYPE_LAST_DAMAGE:
255 {
256 Param1<string> valueLastDamage = Param1<string>.Cast( param );
257 //Print("ReceivedValue lastdamage " + valueLastDamage.param1);
258 m_LastDamageClient = valueLastDamage.param1;
259 }
260 break;
261 }
262 }
263
265 {
266 Param1<float> value = new Param1<float>(0);
267
269 int value_type = CachedObjectsParams.PARAM2_INT_FLOAT.param1;
270 value.param1 = CachedObjectsParams.PARAM2_INT_FLOAT.param2;
271
272 ReceiveValue(value_type, value);
273 }
274
276 {
277 Param1<string> value = new Param1<string>("");
278
280 int value_type = CachedObjectsParams.PARAM2_INT_STRING.param1;
281 value.param1 = CachedObjectsParams.PARAM2_INT_STRING.param2;
282
283 ReceiveValue(value_type, value);
284 }
285};
DayZGame g_Game
Определения DayZGame.c:4074
ERPCs
Определения ERPCs.c:2
static ref Param2< int, float > PARAM2_INT_FLOAT
Определения UtilityClasses.c:17
static ref Param2< int, string > PARAM2_INT_STRING
Определения UtilityClasses.c:18
const int LAST_DAMAGE_FALL
Определения DebugMonitorValues.c:14
const int TYPE_LAST_DAMAGE
Определения DebugMonitorValues.c:7
void CheckHealth()
Определения DebugMonitorValues.c:122
void SendValue(int value_type, Param param)
Определения DebugMonitorValues.c:185
void CheckLastDamage()
Определения DebugMonitorValues.c:154
float m_LastBloodUpdate
Определения DebugMonitorValues.c:26
float m_LastHealthUpdate
Определения DebugMonitorValues.c:25
PlayerBase m_Player
Определения DebugMonitorValues.c:20
const int TYPE_BLOOD
Определения DebugMonitorValues.c:4
const float SENSITIVTY_PERCENTAGE
Определения DebugMonitorValues.c:18
string m_lastDamageUpdate
Определения DebugMonitorValues.c:30
string m_LastDamageClient
Определения DebugMonitorValues.c:42
const int LAST_DAMAGE_HIT
Определения DebugMonitorValues.c:15
float m_TimeSinceLastTick
Определения DebugMonitorValues.c:21
float GetHealth()
Определения DebugMonitorValues.c:92
void OnRPCFloat(ParamsReadContext ctx)
Определения DebugMonitorValues.c:264
const int TYPE_THERMAL_BIAS
Определения DebugMonitorValues.c:12
const int TYPE_POSITION
Определения DebugMonitorValues.c:6
float GetThermalBias()
Определения DebugMonitorValues.c:112
float m_LastStatsUpdate
Определения DebugMonitorValues.c:28
float m_BloodClient
Определения DebugMonitorValues.c:35
void CheckThermalBias()
Определения DebugMonitorValues.c:178
float m_HealthMaxValue
Определения DebugMonitorValues.c:32
float m_EnvironmentTemperatureClient
Определения DebugMonitorValues.c:38
float m_HealthClient
Определения DebugMonitorValues.c:36
const int TYPE_HEAT_COMFORT
Определения DebugMonitorValues.c:11
float GetEnvironmentTemperature()
Определения DebugMonitorValues.c:102
const int TYPE_HEALTH
Определения DebugMonitorValues.c:3
void Init()
Определения DebugMonitorValues.c:50
void DebugMonitorValues(PlayerBase player)
Определения DebugMonitorValues.c:44
void CheckHeatComfort()
Определения DebugMonitorValues.c:171
const int TYPE_BODY_TEMP
Определения DebugMonitorValues.c:5
void ReceiveValue(int value_type, Param param)
Определения DebugMonitorValues.c:216
float m_HeatComfortClient
Определения DebugMonitorValues.c:39
const int TYPE_ENVIRONMENT_TEMPERATURE
Определения DebugMonitorValues.c:9
void CheckValues()
Определения DebugMonitorValues.c:70
float GetBlood()
Определения DebugMonitorValues.c:87
string m_CurrentLastDamage
Определения DebugMonitorValues.c:23
void OnRPCString(ParamsReadContext ctx)
Определения DebugMonitorValues.c:275
string GetLastDamage()
Определения DebugMonitorValues.c:97
float GetHeatComfort()
Определения DebugMonitorValues.c:107
const float VALUE_CHECK_INTERVAL
Определения DebugMonitorValues.c:17
float m_BloodMaxValue
Определения DebugMonitorValues.c:33
void OnScheduledTick(float deltatime)
Определения DebugMonitorValues.c:56
void CheckBlood()
Определения DebugMonitorValues.c:138
void CheckEnvironmentTemperature()
Определения DebugMonitorValues.c:164
float m_ThermalBiasClient
Определения DebugMonitorValues.c:40
void SetLastDamage(string value)
Определения DebugMonitorValues.c:117
Определения EnMath.c:7
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения PlayerBaseClient.c:2
proto bool Read(void value_in)
Serializer ParamsReadContext
Определения gameplay.c:15
static proto float AbsFloat(float f)
Returns absolute value.