BBot - The best bot of the world
Preciso de um Macro - Printable Version

+- BBot - The best bot of the world (https://forums.bmega.net)
+-- Forum: Support (https://forums.bmega.net/forum-6.html)
+--- Forum: Support & Help (https://forums.bmega.net/forum-8.html)
+--- Thread: Preciso de um Macro (/thread-5064.html)



Preciso de um Macro - aniro - 10-23-2012

Tenho que subir em um lugar, quero um macro q o char tente subir pelos parcels "andando pra frente" e se nao tiver parcel "se nao for possivel andar para frente, ou se ele ficar no mesmo lugar, usar exani hur up.


RE: Preciso de um Macro - Dexter - 10-23-2012

(10-23-2012, 04:29 AM)aniro Wrote: Tenho que super em um lugar, quero um macro q o char tente subir pelos parcels "andando pra frente" e se nao tiver parcel "se nao for possivel andar para frente, ou se ele ficar no mesmo lugar usar exani hur up.

Posta o macro que você já tentou criar e que não funcionou.


RE: Preciso de um Macro - aniro - 10-23-2012

(10-23-2012, 06:29 PM)Dexter Wrote:
(10-23-2012, 04:29 AM)aniro Wrote: Tenho que super em um lugar, quero um macro q o char tente subir pelos parcels "andando pra frente" e se nao tiver parcel "se nao for possivel andar para frente, ou se ele ficar no mesmo lugar usar exani hur up.

Posta o macro que você já tentou criar e que não funcionou.

eu coloquei no Cavebot um Self.MoveN e no mesmo sqm um Self.say(exani hur up) mas com isso ele subia um andar e meio q se perdia pq o hur up tava programado pro andar de baixo.


RE: Preciso de um Macro - Dexter - 10-23-2012

Não é mais fácil usar um macro de "exani hur up" direto? Talvez seja inviável esse macro que tu pretende criar.


RE: Preciso de um Macro - aniro - 10-25-2012

(10-23-2012, 09:32 PM)Dexter Wrote: Não é mais fácil usar um macro de "exani hur up" direto? Talvez seja inviável esse macro que tu pretende criar.

Deixa eu te ajudar com o Raciocinio, ja que nao manjo da mecanica.

1- coloca o char pra andar até o ponto que tem ( ou nao ) os parcels. (FIxed)
2- manda ele self.moveN()
3- manda ele conferir a posição Self.PositionIn( coordenadas de onde ficam os parcels) se retornar 1 - ou seja se ele continuar no mesmo sqm q já estava quando tentou andar para frente, Usar exani hur up se nao retornar 1 fim do macro.

Cara isso eh uma dia, só nao sei como colocar tudo junto. como montar o macro no caso.

Obrigado.

Ficaria assim?

X:= X do local dos parcels
Y:= Y do Local dos parcels
Z:= Z do local dos parcels

{MoveN/Up} Self.MoveN() Self.PositionIn(!X!, !Y!, !Z!, !X!, !Y!, !Z!)<>1 Self.Say(Exani hur "up)

Ou

ai eu colocaria o Self.MoveN no cavebot e logo depois chamando o macro MoveN/Up

{MoveN/Up} Self.PositionIn(!X!, !Y!, !Z!, !X!, !Y!, !Z!)<>1 Self.Say(Exani hur "up)


(nunca fiz macro composto entao nao faço idéia se ta correto, e estou no trabalho, nao tenho como testar.)

Obrigado


RE: Preciso de um Macro - Dexter - 10-25-2012

No comando Self.PositionIn() você deve colocar os valores das coordenadas. Ex:

Self.PositionIn(31234, 32456, 7, 31234, 32456, 7)

Posta uma imagem do local com os parcels, pois fica mais fácil eu lhe explicar meu raciocínio.


RE: Preciso de um Macro - aniro - 10-25-2012

(10-25-2012, 09:20 PM)Dexter Wrote: No comando Self.PositionIn() você deve colocar os valores das coordenadas. Ex:

Self.PositionIn(31234, 32456, 7, 31234, 32456, 7)

Posta uma imagem do local com os parcels, pois fica mais fácil eu lhe explicar meu raciocínio.

X
32809
Y
32020
Z
7
Self.MoveN()
Macro.Wait(1000)
Self.PositionIn(!X!, !Y!, !Z!, !X!, !Y!, !Z!)<>1
OnSelf.PositionIn<1
Self.TurnN()
Macro.Wait(1000)
Self.Say(Exani hur "up)
OnSelf.PositionIn>1
Exit()


tentei usar esse deu quase certo mas ele da mais um exani hur up quando sobe pelos parcels


RE: Preciso de um Macro - Dexter - 10-25-2012

Cara, de onde tu tirou esse comando "OnSelf.PositionIn"?

Se tu não quer postar a imagem aqui no fórum, me manda por MP.


RE: Preciso de um Macro - aniro - 10-26-2012

(10-25-2012, 11:10 PM)Dexter Wrote: Cara, de onde tu tirou esse comando "OnSelf.PositionIn"?

Se tu não quer postar a imagem aqui no fórum, me manda por MP.

como assim cara? que imagem?


A minha intenção com o macro ali foi fazer assim, ele pega o numero do sqm q ele ta (que tao os parcels embaixo dele ou nao) ai ele tenta ir pra frente, ai o macro se pergunta "estou no mesmo sqm?"(o dos parcel) se sim da hur up, se nao continua a hunt!

Problema que esta acontecendo? se tem os parcels ele sobe, e se nao tem ele da o hur up "tudo perfeito entao?" errado! dpois que ele por parcel ele da hur up "ja no andar de cima" e isso pode me atrapalhar bastante ;/.

Me ajude por favor!


RE: Preciso de um Macro - Dexter - 10-26-2012

A imagem que te pedi nesse post:
http://forums.bmega.net/showthread.php?tid=6666&pid=26998#pid26998


RE: Preciso de um Macro - aniro - 10-26-2012

(10-26-2012, 01:07 AM)Dexter Wrote: A imagem que te pedi nesse post:
http://forums.bmega.net/showthread.php?tid=6666&pid=26998#pid26998

edit
removi a imagem Smile


RE: Preciso de um Macro - Dexter - 10-26-2012

[Image: 15fkdjc.png]

O quadrado azul é onde você deve colocar um fixed point e um macro com o seguinte comando:
Code:
0 {moveW} Self.MoveW()

Apos isso ele terá que checar se embaixo dele tem um parcel ou não. Caso sim, apenas dá mais um passo para "W", e caso não, usa exani hur up.

Para isso tente o macro abaixo:
Code:
1000 {exaniOrmoveW} X:=Self.X() Y:=Self.Y() Z:=Self.Z() ID_PARCEL:=1111 Map.HasID(!ID_PARCEL!, !X!, !Y!, !Z!)==1 [eHurUp] Self.MoveW() Exit() {eHurUp} Self.TurnW() Self.Say(exani hur up) Exit()

Troque o "1111" pelo ID do parcel.

Irá ficar mais ou menos assim:
Code:
Point (X Y Z)
Point (X Y Z)
Point (X Y Z)
Fixed (X Y Z)
Macro (X Y Z:moveW)
Delay (X Y Z:1)
Macro (X Y Z:exaniOrmoveW)
Point (X Y Z)
Point (X Y Z)

Poste se funcinou. Smile


RE: Preciso de um Macro - aniro - 10-26-2012

O Spiff26 me passou o seguinte macro, nao testei ainda mas acho q funcionará muito bem.

Adiciona um fixed onde você subiria no parcel, depois chama esse macro
Code:
0 {up} Self.MoveW() Macro.Wait(2) X:=PositionX Y:=PositionY Z:=PositionZ X2:=X VarSub(X2, 1) Self.PositionIn(!X!, !Y!, !Z!, !X2!, !Y!, !Z!)==1 [exani hur] Exit() {exani hur} Self.TurnW() Macro.Wait(1) Self.Say(exani hur "up) Exit()

Onde você deve trocar
PositionX pela posição X dele do sqm em que ele chega em cima
PositionY pela posição Y dele do sqm em que ele chega em cima
PositionZ pela posição Z dele do sqm em que ele chega em cima


RE: Preciso de um Macro - Dexter - 10-26-2012

Use o macro que melhor lhe atender. Smile