Boas. Bom, você pode fazer isso editando a macro que você citou, ou criando uma macro externa e executando a anterior com o comando EXEC.
Quando você diz "parar", você quer finalizar a macro?
Se a sua macro citada segue um loop contínuo, basta declarar a posição em que ela foi iniciada, logo no começo, e depois, dentro do loop contínuo, você mandar ela parar caso a posição mude.
exemplo:
Código:
$${
//DECLARAR AS COORDENADAS QUE NAO PODEM SER ALTERADAS;
#posicao_x = %XPOS%;
#posicao_y = %YPOS%;
#posicao_z = %ZPOS%;
////////////////////////////////////
toggle(macro_ativada);if(!macro_ativada);log("Macro finalizada!");stop;endif;log("Macro iniciada!");
do();
if((%XPOS% != %#posicao_x%)||(%YPOS% != %#posicao_y%)||(%ZPOS% != %#posicao_z%));
log("A posicao foi mudada");
toggle(macro_ativada);
stop; // caso voce queira apenas quebrar o loop continuo, e nao finalizar a macro, coloque break no lugar de stop, e remova o toggle da linha acima;
endif;
//aqui voce coloca o que deve ser repetido sequencialmente ate as coordenadas mudarem;
loop;
}$$