Mur4i

Macro - Construtor de Piso (v1)

Jun 4th, 2022 (edited)
330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.91 KB | None | 0 0
  1. $${
  2. ////////////////////////////////////////////////////////////
  3. ////////////////////////////// by MUR4I#0409
  4. ////////////////////////////// Macro - Construtor de Piso (v1)
  5. ////////////////////////////// Versão atualizada: https://pastebin.com/edit/ZpHV6Fee
  6. ////////////////////////////// Post do fórum: https://forum.craftlandia.com.br/xf/threads/macro-construir-piso-v1-criar-superficie-plana-fazer-plant-de-fungo.1000250/
  7. ////////////////////////////////////////////////////////////
  8. LOG(" ");TOGGLE(blues);IF(!blues);LOG("&b&l[MACRO] &6Construtor de Piso (v1): &cOFF!");KEYUP(back);KEYUP(sneak);STOP;ENDIF;
  9. PLAYSOUND(tile.piston.in);LOG("&b&l[MACRO] &6Construtor de Piso (v1): &aON!");
  10.  
  11. ////////////////////////////////////////////////////////////
  12. ////////////////////////////// CONFIG
  13. ////////////////////////////////////////////////////////////
  14. PROMPT(#itemid,$$i,"ID do item que será usado:");
  15. IF(%#itemid%==0);
  16. TOGGLE(blues);
  17. STOP();
  18. ENDIF;
  19. PROMPT(#comprimento,$$?,"Comprimento:");
  20. IF(%#comprimento%==0);
  21. TOGGLE(blues);
  22. STOP();
  23. ENDIF;
  24. PROMPT(#largura,$$?,"Largura:");
  25. IF(%#largura%==0);
  26. TOGGLE(blues);
  27. STOP();
  28. ENDIF;
  29.  
  30. LOG("");
  31. LOG("&b&l[MACRO] &6Construtor de Piso (v1): &aConfigurações salvas!");
  32. LOG("&cMantenha o inventário aberto.");
  33. LOG("");
  34.  
  35. ////////////////////////////////////////////////////////////
  36. ////////////////////////////// VARIAVEIS E CALCULOS
  37. ////////////////////////////////////////////////////////////
  38.  
  39. #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","");
  40. ////////////////////////////////////////////////////////////
  41. ////////////////////////////// CALCULAR BLOCOS
  42. ////////////////////////////////////////////////////////////
  43.  
  44. GUI(INVENTORY);
  45. WAIT(800ms);
  46.  
  47. #dims=(%#comprimentox%*%#largurax%);
  48. #tpacks=(%#dims%/64);
  49.  
  50. SET(&tpacks,"");
  51. IF(%#tpacks%!=0);
  52. SET(&tpacks,"%#tpacks% packs e ");
  53. ENDIF;
  54.  
  55. #trest=(%#dims%-(%#tpacks%*64));
  56. IF(%#trest%!=0);
  57. SET(&trest,"%#trest% blocos");
  58. ELSE;
  59. SET(&trest,"");
  60. ENDIF;
  61.  
  62. SET(#stack,0);
  63. SET(#stackx,0);
  64.  
  65. GUI(INVENTORY);
  66. WAIT(1);
  67.  
  68. FOR(#capac,9,44);
  69. GETSLOTITEM(%#capac%,#id,#stack);
  70. IF(%#id%==%#itemid%);
  71. #stackx=(%#stackx%+%#stack%);
  72. ENDIF;
  73. NEXT;
  74.  
  75. IF(%#dims%>%#stackx%);
  76. GUI();
  77. LOG("&d» &cOps! &6Total de itens no inventário insuficiente. :(");
  78. LOG("&d» &6Para esse tamanho são necessários &9%&tpacks%%&trest%.");
  79. LOG("&b&l[MACRO] &6Construtor de Piso (v1): &cOFF!");
  80. UNSET(blues);
  81. STOP();
  82. ENDIF;
  83. ECHO("%&alturax%");
  84. LOG("&d» &6Área de dimensões &9%#comprimentox% &6por &9%#largurax%&6.");
  85. LOG("&d» &6Total de blocos: &9%#dims% &6blocos.");
  86.  
  87.  
  88. ////////////////////////////////////////////////////////////
  89. ////////////////////////////// MÓDULO DE CONSTRUÇÃO
  90. ////////////////////////////////////////////////////////////
  91.  
  92. //REPETIR QUANTAS VEZES FOR DE LARGURA
  93. FOR(#nii,1,%#largura%);
  94. FOR(#ucris,1,2);
  95. GETSLOT(%#itemid%,#i);
  96. IF(%#i%<36);
  97. SLOTCLICK(%#i%,l,true);
  98. ENDIF;
  99.  
  100. IF(%#i%==-1);
  101. KEYUP(BACK);
  102. KEYUP(LEFT);
  103. KEYUP(RIGHT);
  104. KEYUP(FORWARD);
  105. KEYUP(SNEAK);
  106. UNSET(blues);
  107. LOG("&d» &6Acabaram os itens :/ &c[OFF]");
  108. LOG("&b&l[MACRO] &6Construtor de Piso (v1): &cOFF!");
  109. STOP();
  110. ENDIF;
  111.  
  112. IF(%YPOS%!=%#player_ypos%);
  113. KEYUP(BACK);
  114. KEYUP(LEFT);
  115. KEYUP(RIGHT);
  116. KEYUP(FORWARD);
  117. KEYUP(SNEAK);
  118. UNSET(blues);
  119. PLAYSOUND(random.explode);PLAYSOUND(random.glass);PLAYSOUND(random.glass);
  120. LOG("&d» &6Você não está no mesmo nível de altura que começou! Desligando macro...");
  121. LOG("&b&l[MACRO] &6Construtor de Piso (v1): &cOFF!");
  122. STOP();
  123. ENDIF;
  124.  
  125. IF((%#ucris%==2)&&(%#largura%==%#nii%)&&(%#imp%==1));
  126. ELSE;
  127.  
  128. IF(%#ucris%==1);
  129. SET(&loc,"+90");
  130. SET(&side,"left");
  131. ENDIF;
  132.  
  133. IF(%#ucris%==2);
  134. set(&loc,"-90");
  135. set(&side,"right");
  136. ENDIF;
  137.  
  138. IFMATCHES("%DIRECTION%",N);SET(&dir,"NORTH");ENDIF;
  139. IFMATCHES("%DIRECTION%",S);SET(&dir,"SOUTH");ENDIF;
  140. IFMATCHES("%DIRECTION%",E);SET(&dir,"EAST");ENDIF;
  141. IFMATCHES("%DIRECTION%",W);SET(&dir,"WEST");ENDIF;
  142. WAIT(1T);
  143.  
  144. DO(%#comprimento%);
  145. KEYDOWN(sneak);
  146. LOOK(%&dir%);
  147. LOOK(,+80);
  148. SET(#nposx1,%XPOS%);
  149. SET(#nposx2,%ZPOS%);
  150. WAIT(1T);
  151. DO();
  152. KEYDOWN(back);
  153. PICK(%#itemid%);
  154. WAIT(200ms);
  155. KEY(use);
  156. WAIT(1T);
  157. UNTIL((%XPOS%==%#nposx1%+1)||(%XPOS%==%#nposx1%-1)||(%ZPOS%==%#nposx2%+1)||(%ZPOS%==%#nposx2%-1)||(%YPOS%!=%#player_ypos%));
  158. WAIT(1T);
  159. UNTIL((%YPOS%!=%#player_ypos%));
  160. SET(#nposx1,%XPOS%);
  161. SET(#nposx2,%ZPOS%);
  162. WAIT(1T);
  163. IF(((%#ucris%==1)&&(%#largura%==%#nii%)&&(%#imp%==1))||((%#ucris%==2)&&(%#largura%==%#nii%)&&(%#imp%==0)));
  164. ELSE;
  165. LOOK(%&loc%,);
  166. DO();
  167. KEYDOWN(back);
  168. UNTIL((%XPOS%==%#nposx1%+1)||(%XPOS%==%#nposx1%-1)||(%ZPOS%==%#nposx2%+1)||(%ZPOS%==%#nposx2%-1)||(%YPOS%!=%#player_ypos%));
  169. SET(#nposx1,%XPOS%);
  170. SET(#nposx2,%ZPOS%);
  171. WAIT(1T);
  172. DO();
  173. KEYDOWN(%&side%);
  174. UNTIL((%XPOS%==%#nposx1%+1)||(%XPOS%==%#nposx1%-1)||(%ZPOS%==%#nposx2%+1)||(%ZPOS%==%#nposx2%-1)||(%YPOS%!=%#player_ypos%));
  175. WAIT(200ms);
  176. PICK(%#itemid%);
  177. WAIT(1T);
  178. KEY(use);
  179. WAIT(200ms);
  180. KEYUP(%&side%);
  181. KEYUP(back);
  182. LOOK(%&loc%,);
  183. ENDIF;
  184. ENDIF;
  185. NEXT;
  186. NEXT;
  187.  
  188. IF(%YPOS%==%#player_ypos%)
  189. KEYUP(BACK);
  190. KEYUP(LEFT);
  191. KEYUP(RIGHT);
  192. DO();
  193. KEYDOWN(FORWARD);
  194. UNTIL((%XPOS%==%#nposx1%+1)||(%XPOS%==%#nposx1%-1)||(%ZPOS%==%#nposx2%+1)||(%ZPOS%==%#nposx2%-1)||(%YPOS%!=%#player_ypos%));
  195. WAIT(40ms);
  196. KEYUP(FORWARD);
  197. KEYUP(SNEAK);
  198. ENDIF;
  199.  
  200. GUI();
  201. TOGGLE(blues);
  202. PLAYSOUND(tile.piston.out);
  203. LOG("");
  204. LOG("&b&l[MACRO] &6Construtor de Piso (v1): &aFinalizado! &7&o#MR&3&oBLUEEES");
  205. LOG("&b&l[MACRO] &6Construtor de Piso (v1): &cOFF&4!");
  206. LOG("");
  207. STOP;
  208. }$$
  209.  
  210.  
Add Comment
Please, Sign In to add comment