Winowajcą jest brak jednego warunku w funkcji B_DeathXP w pliku B_GiveXp. Teraz nie powinno się tak dziać.
func void B_DeathXP()
{
PrintDebugNpc (PD_ZS_FRAME, "B_DeathXP");
PrintGlobals (PD_ZS_CHECK);
if C_NpcIsHuman(self)
&& Npc_WasInState(self, ZS_Unconscious)
{
PrintDebugNpc (PD_ZS_CHECK, "...Opfer ist bewußtloser Mensch!");
// SN: keine XP für Finishing-Move!!!
}
else if (!self.aivar[AIV_WASDEFEATEDBYSC])
{
PrintDebugNpc (PD_ZS_CHECK, "...Opfer ist entweder nicht bewußtlos oder kein Mensch!");
B_GiveXP (self.level * XP_PER_LEVEL_DEAD);
};
};