daemon_n, не знаю поможет ли это делу, но: если вместо строчек
!!OBy1/y2/y3:T?y4; [Get Type of Object]
!!HEy1/y2/y3&y4=34:N?y5; [If Hero type get Hero Number]
написать !!OBy1/y2/y3:C?y4; (контрольное число объекта), что сразу должно выдавать номер Героя, то при первом клике на активном Герое выдаёт - 0 и только при повторном - его номер. С неактивными героями номер выдаёт сразу. Та же ситуация и с передвижением. Если на активного кликнуть и получить 0, а потом сделать им шаг, то новый клик снова выдаст 0.