IF(andar);
LOG([Macro] Desligado);
UNSET(andar);
KEYUP(JUMP);
KEYUP(FORWARD);
KEYUP(BACK);
KEYUP(RIGHT);
KEYUP(LEFT);
STOP;
ELSE;
LOG([Macro] Ligado);
SET(andar);
DO;
IF(@#andarx=%XPOS%);
IF(@#andarz=%ZPOS%);
LOG([Macro] Voce Chegou no Destino);
LOG([Macro] Desligado);
UNSET(andar);
STOP;
ENDIF;
ENDIF;
@#localx = %XPOS%-@#andarx;
IF(@#localx<0);
LOOK(EAST);
KEYDOWN(FORWARD);
DO;
GETIDREL(0,0,0,#chao,#chaodata);
GETIDREL(1,0,0,#xe);
GETIDREL(1,1,0,#oxe);
GETIDREL(1,-1,0,#cxe);
IF(%#cxe%=10);
BREAK;
ELSEIF(%#cxe%=11);
BREAK;
ENDIF;
IF(%#oxe%!=0);
BREAK;
ELSEIF(%#oxe%=8);
ELSEIF(%#oxe%=9);
ENDIF;
IF(%#chao%=9);
KEYDOWN(JUMP);
ELSEIF(%#chao%=8);
KEYDOWN(JUMP);
ELSEIF(%#xe%=10);
KEYUP(JUMP);
BREAK;
ELSEIF(%#xe%=11);
KEYUP(JUMP);
BREAK;
ELSEIF(%#xe%!=0);
KEYDOWN(JUMP);
ELSE;
KEYUP(JUMP);
ENDIF;
IF(@#andarx=%XPOS%);
KEYUP(FORWARD);
KEYUP(JUMP);
BREAK;
ENDIF;
LOOP;
ELSE;
LOOK(WEST);
KEYDOWN(FORWARD);
DO;
GETIDREL(0,0,0,#chao,#chaodata);
GETIDREL(-1,0,0,#xw);
GETIDREL(-1,1,0,#oxw);
GETIDREL(-1,-1,0,#cxw);
IF(%#cxw%=10);
BREAK;
ELSEIF(%#cxw%=11);
BREAK;
ENDIF;
IF(%#oxw%!=0);
BREAK;
ELSEIF(%#oxw%=8);
ELSEIF(%#oxw%=9);
ENDIF;
IF(%#chao%=9);
KEYDOWN(JUMP);
ELSEIF(%#chao%=8);
KEYDOWN(JUMP);
ELSEIF(%#xw%=10);
KEYUP(JUMP);
BREAK;
ELSEIF(%#xw%=11);
KEYUP(JUMP);
BREAK;
ELSEIF(%#xw%!=0);
KEYDOWN(JUMP);
ELSE;
KEYUP(JUMP);
ENDIF;
IF(@#andarx=%XPOS%);
KEYUP(FORWARD);
KEYUP(JUMP);
BREAK;
ENDIF;
LOOP;
ENDIF;
@#localz = %ZPOS%-@#andarz;
IF(@#localz<0);
LOOK(SOUTH);
KEYDOWN(FORWARD);
DO;
GETIDREL(0,0,0,#chao,#chaodata);
GETIDREL(0,0,1,#zs);
GETIDREL(0,1,1,#ozs);
GETIDREL(0,-1,1,#czs);
IF(%#czs%=10);
BREAK;
ELSEIF(%#czs%=11);
BREAK;
ENDIF;
IF(%#ozs%!=0);
BREAK;
ELSEIF(%#ozs%=8);
ELSEIF(%#ozs%=9);
ENDIF;
IF(%#chao%=9);
KEYDOWN(JUMP);
ELSEIF(%#chao%=8);
KEYDOWN(JUMP);
ELSEIF(%#zs%=10);
KEYUP(JUMP);
BREAK;
ELSEIF(%#zs%=11);
KEYUP(JUMP);
BREAK;
ELSEIF(%#zs%!=0);
KEYDOWN(JUMP);
ELSE;
KEYUP(JUMP);
ENDIF;
IF(@#andarz=%ZPOS%);
KEYUP(FORWARD);
KEYUP(JUMP);
BREAK;
ENDIF;
LOOP;
ELSE;
LOOK(NORTH);
KEYDOWN(FORWARD);
DO;
GETIDREL(0,0,0,#chao,#chaodata);
GETIDREL(0,0,-1,#zn);
GETIDREL(0,1,-1,#ozn);
GETIDREL(0,-1,-1,#czn);
IF(%#czn%=10);
BREAK;
ELSEIF(%#czn%=11);
BREAK;
ENDIF;
IF(%#ozn%!=0);
BREAK;
ELSEIF(%#ozn%=8);
ELSEIF(%#ozn%=9);
ENDIF;
IF(%#chao%=9);
KEYDOWN(JUMP);
ELSEIF(%#chao%=8);
KEYDOWN(JUMP);
ELSEIF(%#zn%=10);
KEYUP(JUMP);
BREAK;
ELSEIF(%#zn%=11);
KEYUP(JUMP);
BREAK;
ELSEIF(%#zn%!=0);
KEYDOWN(JUMP);
ELSE;
KEYUP(JUMP);
ENDIF;
IF(@#andarz=%ZPOS%);
KEYUP(FORWARD);
KEYUP(JUMP);
BREAK;
ENDIF;
LOOP;
ENDIF;
LOOP;
ENDIF;