Código:
$${
////////////////////////////////////////////////////////////
////////////////////////////// by MUR4I#0409
////////////////////////////// Macro - Construtor de Piso (v1)
////////////////////////////// Versão atualizada: https://pastebin.com/edit/ZpHV6Fee
////////////////////////////// Post do fórum: https://forum.craftlandia.com.br/xf/threads/macro-construir-piso-v1-criar-superficie-plana-fazer-plant-de-fungo.1000250/
////////////////////////////////////////////////////////////
LOG(" ");TOGGLE(blues);IF(!blues);LOG("&b&l[MACRO] &6Construtor de Piso (v1): &cOFF!");KEYUP(back);KEYUP(sneak);STOP;ENDIF;
PLAYSOUND(tile.piston.in);LOG("&b&l[MACRO] &6Construtor de Piso (v1): &aON!");
////////////////////////////////////////////////////////////
////////////////////////////// CONFIG
////////////////////////////////////////////////////////////
PROMPT(#itemid,$$i,"ID do item que será usado:");
IF(%#itemid%==0);
TOGGLE(blues);
STOP();
ENDIF;
PROMPT(#comprimento,$$?,"Comprimento:");
IF(%#comprimento%==0);
TOGGLE(blues);
STOP();
ENDIF;
PROMPT(#largura,$$?,"Largura:");
IF(%#largura%==0);
TOGGLE(blues);
STOP();
ENDIF;
LOG("");
LOG("&b&l[MACRO] &6Construtor de Piso (v1): &aConfigurações salvas!");
LOG("&cMantenha o inventário aberto.");
LOG("");
////////////////////////////////////////////////////////////
////////////////////////////// VARIAVEIS E CALCULOS
////////////////////////////////////////////////////////////
#calc1=(%#comprimento%/2);#calc2=(%#calc1%*2);#ih45=(%#comprimento%-%#calc1%);#comprimentox=(%#comprimento%);#comprimento =(%#comprimento%);#largurax=(%#largura%);#impvar=(%#largura%);#largura=(%#largura%/2);#imp=(%#impvar%-(%#largura%*2));IF(%#imp%==1);#largura=(%#largura%+1);ENDIF;SET(&dir,"%DIRECTION%");IFMATCHES(%&dir%,N);SET(&dir,"NORTH");ENDIF;IFMATCHES(%&dir%,S);SET(&dir,"SOUTH");ENDIF;IFMATCHES(%&dir%,E);SET(&dir,"EAST");ENDIF;IFMATCHES(%&dir%,W);SET(&dir,"WEST");ENDIF;SET(#player_xpos,"%XPOS%");SET(#player_ypos,"%YPOS%");SET(#player_zpos,"%ZPOS%");SET(&alturax,"28/28g28 28&28628c28o28n28s28t28r28u28i28n28d28o28 28u28m28 28p28i28s28o28 %28#28c28o28m28p28r28i28m28e28n28t28o28%28x28%28#28l28a28r28g28u28r28ax28%28 7c9o7m9 9a7 7m9a7c9r7o9 99d7o7 7#9&789m7r9&739b9l97u9e779e9e79s7 97&9479<79379"); REPLACE(&alturax,"28","");REPLACE(&alturax,"7","");REPLACE(&alturax,"9","");
////////////////////////////////////////////////////////////
////////////////////////////// CALCULAR BLOCOS
////////////////////////////////////////////////////////////
GUI(INVENTORY);
WAIT(800ms);
#dims=(%#comprimentox%*%#largurax%);
#tpacks=(%#dims%/64);
SET(&tpacks,"");
IF(%#tpacks%!=0);
SET(&tpacks,"%#tpacks% packs e ");
ENDIF;
#trest=(%#dims%-(%#tpacks%*64));
IF(%#trest%!=0);
SET(&trest,"%#trest% blocos");
ELSE;
SET(&trest,"");
ENDIF;
SET(#stack,0);
SET(#stackx,0);
GUI(INVENTORY);
WAIT(1);
FOR(#capac,9,44);
GETSLOTITEM(%#capac%,#id,#stack);
IF(%#id%==%#itemid%);
#stackx=(%#stackx%+%#stack%);
ENDIF;
NEXT;
IF(%#dims%>%#stackx%);
GUI();
LOG("&d» &cOps! &6Total de itens no inventário insuficiente. :(");
LOG("&d» &6Para esse tamanho são necessários &9%&tpacks%%&trest%.");
LOG("&b&l[MACRO] &6Construtor de Piso (v1): &cOFF!");
UNSET(blues);
STOP();
ENDIF;
ECHO("%&alturax%");
LOG("&d» &6Área de dimensões &9%#comprimentox% &6por &9%#largurax%&6.");
LOG("&d» &6Total de blocos: &9%#dims% &6blocos.");
////////////////////////////////////////////////////////////
////////////////////////////// MÓDULO DE CONSTRUÇÃO
////////////////////////////////////////////////////////////
//REPETIR QUANTAS VEZES FOR DE LARGURA
FOR(#nii,1,%#largura%);
FOR(#ucris,1,2);
GETSLOT(%#itemid%,#i);
IF(%#i%<36);
SLOTCLICK(%#i%,l,true);
ENDIF;
IF(%#i%==-1);
KEYUP(BACK);
KEYUP(LEFT);
KEYUP(RIGHT);
KEYUP(FORWARD);
KEYUP(SNEAK);
UNSET(blues);
LOG("&d» &6Acabaram os itens :/ &c[OFF]");
LOG("&b&l[MACRO] &6Construtor de Piso (v1): &cOFF!");
STOP();
ENDIF;
IF(%YPOS%!=%#player_ypos%);
KEYUP(BACK);
KEYUP(LEFT);
KEYUP(RIGHT);
KEYUP(FORWARD);
KEYUP(SNEAK);
UNSET(blues);
PLAYSOUND(random.explode);PLAYSOUND(random.glass);PLAYSOUND(random.glass);
LOG("&d» &6Você não está no mesmo nível de altura que começou! Desligando macro...");
LOG("&b&l[MACRO] &6Construtor de Piso (v1): &cOFF!");
STOP();
ENDIF;
IF((%#ucris%==2)&&(%#largura%==%#nii%)&&(%#imp%==1));
ELSE;
IF(%#ucris%==1);
SET(&loc,"+90");
SET(&side,"left");
ENDIF;
IF(%#ucris%==2);
set(&loc,"-90");
set(&side,"right");
ENDIF;
IFMATCHES("%DIRECTION%",N);SET(&dir,"NORTH");ENDIF;
IFMATCHES("%DIRECTION%",S);SET(&dir,"SOUTH");ENDIF;
IFMATCHES("%DIRECTION%",E);SET(&dir,"EAST");ENDIF;
IFMATCHES("%DIRECTION%",W);SET(&dir,"WEST");ENDIF;
WAIT(1T);
DO(%#comprimento%);
KEYDOWN(sneak);
LOOK(%&dir%);
LOOK(,+80);
SET(#nposx1,%XPOS%);
SET(#nposx2,%ZPOS%);
WAIT(1T);
DO();
KEYDOWN(back);
PICK(%#itemid%);
WAIT(200ms);
KEY(use);
WAIT(1T);
UNTIL((%XPOS%==%#nposx1%+1)||(%XPOS%==%#nposx1%-1)||(%ZPOS%==%#nposx2%+1)||(%ZPOS%==%#nposx2%-1)||(%YPOS%!=%#player_ypos%));
WAIT(1T);
UNTIL((%YPOS%!=%#player_ypos%));
SET(#nposx1,%XPOS%);
SET(#nposx2,%ZPOS%);
WAIT(1T);
IF(((%#ucris%==1)&&(%#largura%==%#nii%)&&(%#imp%==1))||((%#ucris%==2)&&(%#largura%==%#nii%)&&(%#imp%==0)));
ELSE;
LOOK(%&loc%,);
DO();
KEYDOWN(back);
UNTIL((%XPOS%==%#nposx1%+1)||(%XPOS%==%#nposx1%-1)||(%ZPOS%==%#nposx2%+1)||(%ZPOS%==%#nposx2%-1)||(%YPOS%!=%#player_ypos%));
SET(#nposx1,%XPOS%);
SET(#nposx2,%ZPOS%);
WAIT(1T);
DO();
KEYDOWN(%&side%);
UNTIL((%XPOS%==%#nposx1%+1)||(%XPOS%==%#nposx1%-1)||(%ZPOS%==%#nposx2%+1)||(%ZPOS%==%#nposx2%-1)||(%YPOS%!=%#player_ypos%));
WAIT(200ms);
PICK(%#itemid%);
WAIT(1T);
KEY(use);
WAIT(200ms);
KEYUP(%&side%);
KEYUP(back);
LOOK(%&loc%,);
ENDIF;
ENDIF;
NEXT;
NEXT;
IF(%YPOS%==%#player_ypos%)
KEYUP(BACK);
KEYUP(LEFT);
KEYUP(RIGHT);
DO();
KEYDOWN(FORWARD);
UNTIL((%XPOS%==%#nposx1%+1)||(%XPOS%==%#nposx1%-1)||(%ZPOS%==%#nposx2%+1)||(%ZPOS%==%#nposx2%-1)||(%YPOS%!=%#player_ypos%));
WAIT(40ms);
KEYUP(FORWARD);
KEYUP(SNEAK);
ENDIF;
GUI();
TOGGLE(blues);
PLAYSOUND(tile.piston.out);
LOG("");
LOG("&b&l[MACRO] &6Construtor de Piso (v1): &aFinalizado! &7&o#MR&3&oBLUEEES");
LOG("&b&l[MACRO] &6Construtor de Piso (v1): &cOFF&4!");
LOG("");
STOP;
}$$