There's probably a better way to do it, but what I do is monitoring my Health all the time. Then, in a Timer, I got a procedure that looks like this:
Code:
if myHealth < myMaxHealth then
//I lost some health, is someone attacking me or a priest buffed me ?
tempHealth = myHealth
if myHealth < tempHealth then //there's definitly something wrong
attack()
End if
End if
It's not the real code, but it's pretty self explanary and it's the way I do it. It's working, but you have to take some damage before to fight back, wich is obviously, not the best method...