totkotoriy, Герой отлично определяется по координатам, конкретно по координатам точки входа, где мечом курсор становится.
!!EXy-1/0:A?y1/?y2/d; или !!HEy-1:C0/0/?y1/?y2;
Вместо y-[xxx] используй y1..y99
Переменные y- при вызовах функций общие. Глядишь, где-то их переписываешь. Выводи через IF:L^%Y-1^ прямо до команды !!HEy-1 чтобы узнать, к какому реально герою ты обращался.
А лучше заменить всё на положительные.