Para ver a versão 1.7: http://forum.craftlandia.com.br/ipb/index.php?/topic/522752-macro-eja-o-que-está-atrás-da-parede-172/
Eai galera, beleza?
Bem, estou meio sem tempo então vou ser rápido neste tópico, se ficarem dúvidas, digam nos comentários que vou editando o tópico pra ficar mais fácil de entender, ok?
ATENÇÃO: Se não funcionar, reveja a instalação, este macro não efetua nenhuma ação, apenas faz diversas leituras, então a probabilidade de bugs nele são de quase 0%
O QUE ELE FAZ
Ela foi usada na verdade para TESTES de uma macro minha que infelizmente, por falta de tempo, encerrei pela metade.
É um auto minerador, no período de testes da macro, criei estas labels para ter certeza que a macro estava funcionando, e achei interessante postar aqui, porque elas sozinhas já é muito útil.
A função dela é: Te dizer os blocos que estão atrás da parede a sua frente. como explicar é difícil, vou mostrar com essas imagens:
1 - LOCAL DA LEITURA
Imaginando que você está sob o bloco de ferro, ele irá fazer a leitura dos blocos de ouro e diamante, como na imagem abaixo
Veja que as labels de cima e de baixo vêem os blocos com 1 de distancia (diamantes), para garantir que nada vai cair sob sua cabeça e você nao vai andar sob algo perigoso.
2 - EM USO
COLOQUE-O EM UM BOTÃO, ao desligá-lo, as labels somem, isso ajuda a não atrapalhar nas demais tarefas
use ele para escavar apenas com 2 de altura, assim ele terá um controle seguro dos itens a sua frente.
Veja um exemplo de leitura
LABELS
Este macro utiliza labels, para saber como instalá-las, veja este tutorial abaixo:
Disposição das labels:
OO
T1 T2 T3
Y1 Y2 Y3
U1 U2 U3
II
LT
OBS: A primeira label é formada por letras, é O de Olho, e não um zero
Ou como diria nosso amigo, ex staff [member='DexterBR']
"e não um zero, como o número de garotas que vocês pegaram"
MACRO:
Por fim, o código da macro
Antes de mais nada, neste link é possível ver que o macro foi autorizado, entretando vale ressaltar que:
"Na craftlandia um minerio nao vira minerio a menos que você esteja muito perto dele, então nem de longe pode ser considerado um xray, ele só mostra oque está atrás dos dois blocos a sua frente para evitar possíveis perígos, como cascalho, lava ou queda."
"Na craftlandia um minerio nao vira minerio a menos que você esteja muito perto dele, então nem de longe pode ser considerado um xray, ele só mostra oque está atrás dos dois blocos a sua frente para evitar possíveis perígos, como cascalho, lava ou queda."
Eai galera, beleza?
Bem, estou meio sem tempo então vou ser rápido neste tópico, se ficarem dúvidas, digam nos comentários que vou editando o tópico pra ficar mais fácil de entender, ok?
ATENÇÃO: Se não funcionar, reveja a instalação, este macro não efetua nenhuma ação, apenas faz diversas leituras, então a probabilidade de bugs nele são de quase 0%
O QUE ELE FAZ
Ela foi usada na verdade para TESTES de uma macro minha que infelizmente, por falta de tempo, encerrei pela metade.
É um auto minerador, no período de testes da macro, criei estas labels para ter certeza que a macro estava funcionando, e achei interessante postar aqui, porque elas sozinhas já é muito útil.
A função dela é: Te dizer os blocos que estão atrás da parede a sua frente. como explicar é difícil, vou mostrar com essas imagens:
1 - LOCAL DA LEITURA
Imaginando que você está sob o bloco de ferro, ele irá fazer a leitura dos blocos de ouro e diamante, como na imagem abaixo


COLOQUE-O EM UM BOTÃO, ao desligá-lo, as labels somem, isso ajuda a não atrapalhar nas demais tarefas
use ele para escavar apenas com 2 de altura, assim ele terá um controle seguro dos itens a sua frente.
Veja um exemplo de leitura

Este macro utiliza labels, para saber como instalá-las, veja este tutorial abaixo:
1 - Dar pause no jogo
2 - Clique em opções
3 - Clique em Controles
4 - Clique em Macro Settings
5 - Clique em GUI Editor
6 - Clique duas vezes em ingame
7 - Clique em Button Panel Commands
8 - Clique em adjust grid
9 - Regule as grades da forma que preferir, é nelas que você vai posicionar as informações (eu recomendo 18x12, mas isso depende também da sua resolução), depois clique em OK
11 - Clique em Add Label
12 - Escolha onde você quer que a informação fique
13 - Clique em Background Color
14 - deixe OPACITY em 0 (parte preta da barra) para ocultar o fundo, depois clique em OK
15 - Coloque nos dois lugares indicados o NOME DA LABEL (indicado pelo programador) Depois clique em OK. Obs: As Labels estão logo abaixo.
Pronto!!
2 - Clique em opções

3 - Clique em Controles

4 - Clique em Macro Settings

5 - Clique em GUI Editor

6 - Clique duas vezes em ingame

7 - Clique em Button Panel Commands

8 - Clique em adjust grid

9 - Regule as grades da forma que preferir, é nelas que você vai posicionar as informações (eu recomendo 18x12, mas isso depende também da sua resolução), depois clique em OK

11 - Clique em Add Label

12 - Escolha onde você quer que a informação fique

13 - Clique em Background Color

14 - deixe OPACITY em 0 (parte preta da barra) para ocultar o fundo, depois clique em OK

15 - Coloque nos dois lugares indicados o NOME DA LABEL (indicado pelo programador) Depois clique em OK. Obs: As Labels estão logo abaixo.

Pronto!!
Disposição das labels:
OO
T1 T2 T3
Y1 Y2 Y3
U1 U2 U3
II
LT
OBS: A primeira label é formada por letras, é O de Olho, e não um zero
Ou como diria nosso amigo, ex staff [member='DexterBR']
"e não um zero, como o número de garotas que vocês pegaram"

MACRO:
Por fim, o código da macro
$${
IF(automine2);
ACHIEVEMENTGET(Assistente OFF,270);UNSET(automine2);
setlabel(T3,,T3);setlabel(T2,,T2);setlabel(T1,,T1);
setlabel(Y3,,Y3);setlabel(Y2,,Y2);setlabel(Y1,,Y1);
setlabel(U3,,U3);setlabel(U2,,U2);setlabel(U1,,U1);
setlabel(II,,II);setlabel(OO,,OO);setlabel(LT,,LT);
STOP();
ELSE;
ACHIEVEMENTGET(Assistente ON,270);SET(automine2);set(lado);unset(perigo);#nblocos=1;
endif;
DO;
// ======================================= DIREÇÃO
&ff = %DIRECTION%;
ifmatches(%&ff%,N);&ff=NORTH;&fa=SOUTH;&fd=EAST;&fe=WEST;#nx1=1;#nx2=0;#nx3=-1;#nz1=-2;#nz2=-2;#nz3=-2;#nxb=0;#nzb=-1;endif;
ifmatches(%&ff%,S);&fa=NORTH;&ff=SOUTH;&fe=EAST;&fd=WEST;#nx1=-1;#nx2=0;#nx3=1;#nz1=2;#nz2=2;#nz3=2;#nxb=0;#nzb=1;endif;
ifmatches(%&ff%,E);&fe=NORTH;&fd=SOUTH;&ff=EAST;&fa=WEST;#nz1=1;#nz2=0;#nz3=-1;#nx1=2;#nx2=2;#nx3=2;#nxb=1;#nzb=0;endif;
ifmatches(%&ff%,W);&fd=NORTH;&fe=SOUTH;&fa=EAST;&ff=WEST;#nz1=-1;#nz2=0;#nz3=1;#nx1=-2;#nx2=-2;#nx3=-2;#nxb=-1;#nzb=0;endif;
// ======================================= LEITURA DO TERRENO
GETIDREL(%#nx1%,2,%#nz1%,#lid1a);GETIDREL(%#nx2%,2,%#nz2%,#lid1b);GETIDREL(%#nx3%,2,%#nz3%,#lid1c);
GETIDREL(%#nx1%,1,%#nz1%,#lid2a);GETIDREL(%#nx2%,1,%#nz2%,#lid2b);GETIDREL(%#nx3%,1,%#nz3%,#lid2c);
GETIDREL(%#nx1%,0,%#nz1%,#lid3a);GETIDREL(%#nx2%,0,%#nz2%,#lid3b);GETIDREL(%#nx3%,0,%#nz3%,#lid3c);
GETIDREL(%#nxb%,-1,%#nzb%,#lid4b);GETIDREL(%#nxb%,2,%#nzb%,#lid5b);
// ======================================= NOMES
GETITEMINFO(%#lid1a%,&lid1a);GETITEMINFO(%#lid1b%,&lid1b);GETITEMINFO(%#lid1c%,&lid1c);
GETITEMINFO(%#lid2a%,&lid2a);GETITEMINFO(%#lid2b%,&lid2b);GETITEMINFO(%#lid2c%,&lid2c);
GETITEMINFO(%#lid3a%,&lid3a);GETITEMINFO(%#lid3b%,&lid3b);GETITEMINFO(%#lid3c%,&lid3c);
GETITEMINFO(%#lid4b%,&lid4b);GETITEMINFO(%#lid5b%,&lid5b);
// ======================================= CORES
&cor1a=f;&cor2a=f;&cor3a=f;
&cor1b=f;&cor2b=f;&cor3b=f;
&cor1c=f;&cor2c=f;&cor3c=f;
&cor4b=f;&cor5b=f;
// LAVA
IF(%#lid1a%=11);&cor1a=4;ENDIF;IF(%#lid1b%=11);&cor1b=4;ENDIF;IF(%#lid1c%=11);&cor1c=4;ENDIF;
IF(%#lid2a%=11);&cor2a=4;ENDIF;IF(%#lid2b%=11);&cor2b=4;ENDIF;IF(%#lid2c%=11);&cor2c=4;ENDIF;
IF(%#lid3a%=11);&cor3a=4;ENDIF;IF(%#lid3b%=11);&cor3b=4;ENDIF;IF(%#lid3c%=11);&cor3c=4;ENDIF;
IF(%#lid4b%=11);&cor4b=4;ENDIF;IF(%#lid5b%=11);&cor5b=4;ENDIF;
// AGUA
IF(%#lid1a%=9);&cor1a=3;ENDIF;IF(%#lid1b%=9);&cor1b=3;ENDIF;IF(%#lid1c%=9);&cor1c=3;ENDIF;
IF(%#lid2a%=9);&cor2a=3;ENDIF;IF(%#lid2b%=9);&cor2b=3;ENDIF;IF(%#lid2c%=9);&cor2c=3;ENDIF;
IF(%#lid3a%=9);&cor3a=3;ENDIF;IF(%#lid3b%=9);&cor3b=3;ENDIF;IF(%#lid3c%=9);&cor3c=3;ENDIF;
IF(%#lid4b%=9);&cor4b=3;ENDIF;IF(%#lid5b%=9);&cor5b=3;ENDIF;
// CASCALHO
IF(%#lid1a%=13);&cor1a=e;ENDIF;IF(%#lid1b%=13);&cor1b=e;ENDIF;IF(%#lid1c%=13);&cor1c=e;ENDIF;
IF(%#lid2a%=13);&cor2a=e;ENDIF;IF(%#lid2b%=13);&cor2b=e;ENDIF;IF(%#lid2c%=13);&cor2c=e;ENDIF;
IF(%#lid3a%=13);&cor3a=e;ENDIF;IF(%#lid3b%=13);&cor3b=e;ENDIF;IF(%#lid3c%=13);&cor3c=e;ENDIF;
IF(%#lid4b%=13);&cor4b=e;ENDIF;IF(%#lid5b%=13);&cor5b=e;ENDIF;IF(%#lid4b%=0);&cor4b=d;ENDIF;
// ======================================= LABELS
setlabel(T3,&%&cor1a%%&lid1a%,T3);setlabel(T2,&%&cor1b%%&lid1b%,T2);setlabel(T1,&%&cor1c%%&lid1c%,T1);
setlabel(Y3,&%&cor2a%%&lid2a%,Y3);setlabel(Y2,&%&cor2b%%&lid2b%,Y2);setlabel(Y1,&%&cor2c%%&lid2c%,Y1);
setlabel(U3,&%&cor3a%%&lid3a%,U3);setlabel(U2,&%&cor3b%%&lid3b%,U2);setlabel(U1,&%&cor3c%%&lid3c%,U1);
setlabel(II,&%&cor4b%%&lid4b%,II);setlabel(OO,&%&cor5b%%&lid5b%,OO);
//======================================== LEITURA DE CONDIÇÕES
IF(%#lid4b%=0);#teste=4;&teste=&dQUEDA DETECTADA;
ELSEIF((%#lid1a%=11)|(%#lid2a%=11)|(%#lid3a%=11));#teste=1;&teste=&4LAVA DETECTADA;
ELSEIF((%#lid1b%=11)|(%#lid2b%=11)|(%#lid3b%=11));#teste=1;&teste=&4LAVA DETECTADA;
ELSEIF((%#lid1c%=11)|(%#lid2c%=11)|(%#lid3c%=11));#teste=1;&teste=&4LAVA DETECTADA;
ELSEIF((%#lid4b%=11)|(%#lid5b%=11));#teste=1;&teste=&4LAVA DETECTADA;
ELSEIF((%#lid1a%=9)|(%#lid2a%=9)|(%#lid3a%=9));#teste=2;&teste=&3AGUA DETECTADA;
ELSEIF((%#lid1b%=9)|(%#lid2b%=9)|(%#lid3b%=9));#teste=2;&teste=&3AGUA DETECTADA;
ELSEIF((%#lid1c%=9)|(%#lid2c%=9)|(%#lid3c%=9));#teste=2;&teste=&3AGUA DETECTADA;
ELSEIF((%#lid4b%=9)|(%#lid5b%=9));#teste=2;&teste=&3AGUA DETECTADA;
ELSEIF((%#lid1a%=13)|(%#lid2a%=13)|(%#lid3a%=13));#teste=3;&teste=&eCASCALHO DETECTADO;
ELSEIF((%#lid1b%=13)|(%#lid2b%=13)|(%#lid3b%=13));#teste=3;&teste=&eCASCALHO DETECTADO;
ELSEIF((%#lid1c%=13)|(%#lid2c%=13)|(%#lid3c%=13));#teste=3;&teste=&eCASCALHO DETECTADO;
ELSEIF((%#lid4b%=13)|(%#lid5b%=13));#teste=3;&teste=&eCASCALHO DETECTADO;
ELSE;#teste=0;&teste=Setor limpo;ENDIF;
setlabel(LT,%&teste%,LT);
LOOP;
}$$
IF(automine2);
ACHIEVEMENTGET(Assistente OFF,270);UNSET(automine2);
setlabel(T3,,T3);setlabel(T2,,T2);setlabel(T1,,T1);
setlabel(Y3,,Y3);setlabel(Y2,,Y2);setlabel(Y1,,Y1);
setlabel(U3,,U3);setlabel(U2,,U2);setlabel(U1,,U1);
setlabel(II,,II);setlabel(OO,,OO);setlabel(LT,,LT);
STOP();
ELSE;
ACHIEVEMENTGET(Assistente ON,270);SET(automine2);set(lado);unset(perigo);#nblocos=1;
endif;
DO;
// ======================================= DIREÇÃO
&ff = %DIRECTION%;
ifmatches(%&ff%,N);&ff=NORTH;&fa=SOUTH;&fd=EAST;&fe=WEST;#nx1=1;#nx2=0;#nx3=-1;#nz1=-2;#nz2=-2;#nz3=-2;#nxb=0;#nzb=-1;endif;
ifmatches(%&ff%,S);&fa=NORTH;&ff=SOUTH;&fe=EAST;&fd=WEST;#nx1=-1;#nx2=0;#nx3=1;#nz1=2;#nz2=2;#nz3=2;#nxb=0;#nzb=1;endif;
ifmatches(%&ff%,E);&fe=NORTH;&fd=SOUTH;&ff=EAST;&fa=WEST;#nz1=1;#nz2=0;#nz3=-1;#nx1=2;#nx2=2;#nx3=2;#nxb=1;#nzb=0;endif;
ifmatches(%&ff%,W);&fd=NORTH;&fe=SOUTH;&fa=EAST;&ff=WEST;#nz1=-1;#nz2=0;#nz3=1;#nx1=-2;#nx2=-2;#nx3=-2;#nxb=-1;#nzb=0;endif;
// ======================================= LEITURA DO TERRENO
GETIDREL(%#nx1%,2,%#nz1%,#lid1a);GETIDREL(%#nx2%,2,%#nz2%,#lid1b);GETIDREL(%#nx3%,2,%#nz3%,#lid1c);
GETIDREL(%#nx1%,1,%#nz1%,#lid2a);GETIDREL(%#nx2%,1,%#nz2%,#lid2b);GETIDREL(%#nx3%,1,%#nz3%,#lid2c);
GETIDREL(%#nx1%,0,%#nz1%,#lid3a);GETIDREL(%#nx2%,0,%#nz2%,#lid3b);GETIDREL(%#nx3%,0,%#nz3%,#lid3c);
GETIDREL(%#nxb%,-1,%#nzb%,#lid4b);GETIDREL(%#nxb%,2,%#nzb%,#lid5b);
// ======================================= NOMES
GETITEMINFO(%#lid1a%,&lid1a);GETITEMINFO(%#lid1b%,&lid1b);GETITEMINFO(%#lid1c%,&lid1c);
GETITEMINFO(%#lid2a%,&lid2a);GETITEMINFO(%#lid2b%,&lid2b);GETITEMINFO(%#lid2c%,&lid2c);
GETITEMINFO(%#lid3a%,&lid3a);GETITEMINFO(%#lid3b%,&lid3b);GETITEMINFO(%#lid3c%,&lid3c);
GETITEMINFO(%#lid4b%,&lid4b);GETITEMINFO(%#lid5b%,&lid5b);
// ======================================= CORES
&cor1a=f;&cor2a=f;&cor3a=f;
&cor1b=f;&cor2b=f;&cor3b=f;
&cor1c=f;&cor2c=f;&cor3c=f;
&cor4b=f;&cor5b=f;
// LAVA
IF(%#lid1a%=11);&cor1a=4;ENDIF;IF(%#lid1b%=11);&cor1b=4;ENDIF;IF(%#lid1c%=11);&cor1c=4;ENDIF;
IF(%#lid2a%=11);&cor2a=4;ENDIF;IF(%#lid2b%=11);&cor2b=4;ENDIF;IF(%#lid2c%=11);&cor2c=4;ENDIF;
IF(%#lid3a%=11);&cor3a=4;ENDIF;IF(%#lid3b%=11);&cor3b=4;ENDIF;IF(%#lid3c%=11);&cor3c=4;ENDIF;
IF(%#lid4b%=11);&cor4b=4;ENDIF;IF(%#lid5b%=11);&cor5b=4;ENDIF;
// AGUA
IF(%#lid1a%=9);&cor1a=3;ENDIF;IF(%#lid1b%=9);&cor1b=3;ENDIF;IF(%#lid1c%=9);&cor1c=3;ENDIF;
IF(%#lid2a%=9);&cor2a=3;ENDIF;IF(%#lid2b%=9);&cor2b=3;ENDIF;IF(%#lid2c%=9);&cor2c=3;ENDIF;
IF(%#lid3a%=9);&cor3a=3;ENDIF;IF(%#lid3b%=9);&cor3b=3;ENDIF;IF(%#lid3c%=9);&cor3c=3;ENDIF;
IF(%#lid4b%=9);&cor4b=3;ENDIF;IF(%#lid5b%=9);&cor5b=3;ENDIF;
// CASCALHO
IF(%#lid1a%=13);&cor1a=e;ENDIF;IF(%#lid1b%=13);&cor1b=e;ENDIF;IF(%#lid1c%=13);&cor1c=e;ENDIF;
IF(%#lid2a%=13);&cor2a=e;ENDIF;IF(%#lid2b%=13);&cor2b=e;ENDIF;IF(%#lid2c%=13);&cor2c=e;ENDIF;
IF(%#lid3a%=13);&cor3a=e;ENDIF;IF(%#lid3b%=13);&cor3b=e;ENDIF;IF(%#lid3c%=13);&cor3c=e;ENDIF;
IF(%#lid4b%=13);&cor4b=e;ENDIF;IF(%#lid5b%=13);&cor5b=e;ENDIF;IF(%#lid4b%=0);&cor4b=d;ENDIF;
// ======================================= LABELS
setlabel(T3,&%&cor1a%%&lid1a%,T3);setlabel(T2,&%&cor1b%%&lid1b%,T2);setlabel(T1,&%&cor1c%%&lid1c%,T1);
setlabel(Y3,&%&cor2a%%&lid2a%,Y3);setlabel(Y2,&%&cor2b%%&lid2b%,Y2);setlabel(Y1,&%&cor2c%%&lid2c%,Y1);
setlabel(U3,&%&cor3a%%&lid3a%,U3);setlabel(U2,&%&cor3b%%&lid3b%,U2);setlabel(U1,&%&cor3c%%&lid3c%,U1);
setlabel(II,&%&cor4b%%&lid4b%,II);setlabel(OO,&%&cor5b%%&lid5b%,OO);
//======================================== LEITURA DE CONDIÇÕES
IF(%#lid4b%=0);#teste=4;&teste=&dQUEDA DETECTADA;
ELSEIF((%#lid1a%=11)|(%#lid2a%=11)|(%#lid3a%=11));#teste=1;&teste=&4LAVA DETECTADA;
ELSEIF((%#lid1b%=11)|(%#lid2b%=11)|(%#lid3b%=11));#teste=1;&teste=&4LAVA DETECTADA;
ELSEIF((%#lid1c%=11)|(%#lid2c%=11)|(%#lid3c%=11));#teste=1;&teste=&4LAVA DETECTADA;
ELSEIF((%#lid4b%=11)|(%#lid5b%=11));#teste=1;&teste=&4LAVA DETECTADA;
ELSEIF((%#lid1a%=9)|(%#lid2a%=9)|(%#lid3a%=9));#teste=2;&teste=&3AGUA DETECTADA;
ELSEIF((%#lid1b%=9)|(%#lid2b%=9)|(%#lid3b%=9));#teste=2;&teste=&3AGUA DETECTADA;
ELSEIF((%#lid1c%=9)|(%#lid2c%=9)|(%#lid3c%=9));#teste=2;&teste=&3AGUA DETECTADA;
ELSEIF((%#lid4b%=9)|(%#lid5b%=9));#teste=2;&teste=&3AGUA DETECTADA;
ELSEIF((%#lid1a%=13)|(%#lid2a%=13)|(%#lid3a%=13));#teste=3;&teste=&eCASCALHO DETECTADO;
ELSEIF((%#lid1b%=13)|(%#lid2b%=13)|(%#lid3b%=13));#teste=3;&teste=&eCASCALHO DETECTADO;
ELSEIF((%#lid1c%=13)|(%#lid2c%=13)|(%#lid3c%=13));#teste=3;&teste=&eCASCALHO DETECTADO;
ELSEIF((%#lid4b%=13)|(%#lid5b%=13));#teste=3;&teste=&eCASCALHO DETECTADO;
ELSE;#teste=0;&teste=Setor limpo;ENDIF;
setlabel(LT,%&teste%,LT);
LOOP;
}$$