note: we're working together with Gunny on this issue.I have put all of my evening's efforts to solve the problem. And this is what i've found:
1) class.killist.php of the EDK3 works fine, it is still a mystery to me why this was working properly on EDK2 and prior
2) I have tracked the bug to common/kill_related.php, lines 326-335 (first code piece of two similar ones):
Code:
while ($kill = $kslist->getKill())
{
handle_involved($kill, 'a');
handle_destroyed($kill, 'e');
if ($kill->isClassified())
{
$classified = true;
}
}
This code calls two functions that analyze kill details and add involved parties to their respective sides ('a' being the friendly side and 'e' being the hostile one). And this is where the problem arises. If, for some reason, there is a friendly ship that get's involved in one or more friendly kills (friendly fire - smartbombs, misfires and such) and subsequently gets popped in the same battle by hostile forces, then the hostile forces get listed as 'friendly ones', effectively messing the summary up. I have found a simple yet very effective solution to this problem: ignore involved in 'friendly kills' (by 'friendly kills' i mean the kills where killboard owner's ship gets itself listed as both loss and kill due to friendly fire).
The modified code piece goes as this:
Code:
while ($kill = $kslist->getKill())
{
if ((count($invAll) and !in_array($kill->getVictimAllianceID(), $invAll))
or (count($invCorp) and !in_array($kill->getVictimCorpID())))
handle_involved($kill, 'a');
handle_destroyed($kill, 'e');
if ($kill->isClassified())
{
$classified = true;
}
}
It ignores involved parties of friendly kills (they are later still listed on hostile side as there's other code block that deals with losses). By adding just one (actually two, but it is essentially one) code line the bug is fixed.