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 if (source.IsTransport())
174 {
175 string vehicle = source.GetType();
176 Transport transport = Transport.Cast(source);
177 Human driver = transport.CrewDriver();
178 playerSource = PlayerBase.Cast(driver);
179 if (playerSource)
180 playerPrefix2 =
GetPlayerPrefix( playerSource , playerSource.GetIdentity() );
181 else
182 playerPrefix2 = "NO DRIVER";
183
184 LogPrint( playerPrefix +
" killed by " + playerPrefix2 +
" (" + vehicle +
")" );
185 }
186 else
187 {
188 if (playerSource)
189 {
190
191 LogPrint( playerPrefix +
" killed by " + playerPrefix2 +
" with (MeleeFist)" );
192 }
193 else
194 {
195
196 LogPrint( playerPrefix +
" killed by " + source.GetType());
197 }
198
199 }
200 }
BleedingSourcesManagerServer m_BleedMgr
void LogPrint(string message)
PlayerStat< float > m_StatWater
string GetPlayerPrefix(PlayerBase player, PlayerIdentity identity)
PlayerStat< float > m_StatEnergy