117 {
118 if (!player || !source)
119 {
120 LogPrint(
"DEBUG: PlayerKilled() player/source does not exist");
121 return;
122 }
123
124 PlayerBase playerSource = PlayerBase.Cast(
EntityAI.Cast( source ).GetHierarchyParent() );
125 if (!playerSource)
126 {
127 playerSource = PlayerBase.Cast( source );
128 }
129
130 string playerPrefix, playerPrefix2;
131 if (playerSource)
132 {
133 playerPrefix2 =
GetPlayerPrefix( playerSource , playerSource.GetIdentity() );
134 }
135
137 if (player == source)
138 {
141 m_BleedMgr = player.GetBleedingManagerServer();
142
143 string reason = " died.";
144 if (player.GetDrowningWaterLevelCheck())
145 reason = " drowned.";
146
147 string additionalStats;
149 additionalStats =
" Stats> Water: " +
m_StatWater.Get().ToString() +
" Energy: " +
m_StatEnergy.Get().ToString();
150
152 additionalStats = additionalStats +
" Bleed sources: " +
m_BleedMgr.GetBleedingSourcesCount().ToString();
153
154 LogPrint(playerPrefix + reason + additionalStats);
155
156 }
157 else if (source.IsWeapon() || source.IsMeleeWeapon())
158 {
160 {
161 LogPrint( playerPrefix +
" killed by " + source.GetDisplayName() );
162 }
163 else if (source.IsMeleeWeapon())
164 {
165 LogPrint( playerPrefix +
" killed by " + playerPrefix2 +
" with " + source.GetDisplayName() );
166 }
167 else
168 {
169 m_Distance = vector.Distance( player.GetPosition(), playerSource.GetPosition() );
170 LogPrint( playerPrefix +
" killed by " + playerPrefix2 +
" with " + source.GetDisplayName() +
" from " +
m_Distance +
" meters " );
171 }
172 }
173 else
174 {
175 if (playerSource)
176 {
177
178 LogPrint( playerPrefix +
" killed by " + playerPrefix2 +
" with (MeleeFist)" );
179 }
180 else
181 {
182
183 LogPrint( playerPrefix +
" killed by " + source.GetType());
184 }
185
186 }
187 }
BleedingSourcesManagerServer m_BleedMgr
void LogPrint(string message)
PlayerStat< float > m_StatWater
string GetPlayerPrefix(PlayerBase player, PlayerIdentity identity)
PlayerStat< float > m_StatEnergy