Don't know how hard or problematic it would be to code this.
But if you could store an array for each player, and a variable that temporarily stores
information of who you attacked, and for how much damage, you could fix score farming.
So for example:
Kurwier:damaged.Array = []
if Kurwier attacks STALKER and Hellmai, STALKER and Hellmai are put into the array
Kurwier:damaged.Array = [STALKER,Hellmai]
And another array to score how much damage was dealt, or how much xp was gained. Then once Kurwier damages those particular players a certain amount up to their max health/your max xp gain, for example Kurwier no longer gets XP. Then clear the array every 10 minutes or so, or when player/attacker/target dies.
This way:
1: If you just continuously attack a particular player, and let him heal, you will no longer gain xp/money from attacking that particular player, after a certain amount of damage has already been dealt.
2: If someone ELSE attacks that player they will still get xp/money for dealing damage until they have dealt their max damage/xp to that player.
3: No one farms for xp any more, and people start fighting like MEN, and try to actually kill the enemy team, instead of just hit trading, and healing up, for xp/money
I hope this made sense. It works in theory, but not sure if it works in the fonline coding universe, or if it just gives devs a headache XD.