211 {
212 if ( player && source )
213 {
214 string playerPrefix =
GetPlayerPrefix( player , player.GetIdentity() ) +
"[HP: " + player.GetHealth().ToString() +
"]";
215 string playerPrefix2;
217 PlayerBase playerSource;
218
219 if ( source.IsPlayer() )
220 playerSource = PlayerBase.Cast( source );
221 else
222 playerSource = PlayerBase.Cast( source.GetHierarchyParent() );
223
224 if (playerSource)
225 playerPrefix2 =
GetPlayerPrefix( playerSource , playerSource.GetIdentity() );
226
227 switch ( damageType )
228 {
230
231 if (source.IsZombie() || source.IsAnimal())
232 {
234 break;
235
237
239 }
240 else if (source.IsPlayer())
241 {
243 }
244 else if ( playerSource && (source.
IsMeleeWeapon() || source.IsWeapon()))
245 {
247
249 }
250 else
251 {
253
255 }
256 break;
257
259
260 if ( source.IsWeapon() && playerSource )
261 {
263 m_Distance = vector.Distance( player.GetPosition(), playerSource.GetPosition() );
264
266 }
267 else
268 {
270
272 }
273 break;
274
276
277 LogPrint( playerPrefix +
" hit by explosion (" + ammo +
")" );
278 break;
279
281
282 LogPrint( playerPrefix +
" stunned by " + ammo );
283 break;
284
286 float globalHealthDamage = damageResult.
GetDamage(
"",
"Health");
288 {
289 if (globalHealthDamage > 0.0)
290 LogPrint(playerPrefix +
" hit by " + ammo);
291 }
292 else if ( source.GetType() == "AreaDamageManager" )
293 {
295 if ( parent )
296 {
297 LogPrint( playerPrefix +
" hit by " + parent.GetType() +
" with " + ammo );
298 }
299 }
300 else
301 {
303
305 }
306 break;
307
308 default:
309
310 LogPrint(
"DEBUG: PlayerHitBy() unknown damageType: " + ammo );
311 break;
312 }
313 }
314 else
315 {
316 LogPrint(
"DEBUG: player/source does not exist");
317 }
318 }
DamageType
exposed from C++ (do not change)
void DayZPlayerImplementFallDamage(DayZPlayer pPlayer)
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
override bool IsMeleeWeapon()
void LogPrint(string message)
string GetPlayerPrefix(PlayerBase player, PlayerIdentity identity)
string GetHitMessage(TotalDamageResult damageResult, int component, string zone, string ammo)
proto native float GetDamage(string zoneName, string healthType)