openkore
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Orden de ejecucion automacro macro

2 participantes

Ir abajo

Resuelto Orden de ejecucion automacro macro

Mensaje  PzKpfw-IV7 Mar Oct 18, 2011 8:33 am

bueno necesito saber como se ponen en orden por k tengo muchos macros puestos pero se saltan unos a otros... por ejemplo pongo estos 2

automacro sellwarp {
weight > 88%
timeout 15
call sellwarp2
}

macro sellwarp2 {
do c @go 1
do talk @npc(147 102)
do sell
do sell @inventory(gold)
do sell done
do c @go 2
}

automacro move {
mapchange geffen
call {
do move 122 60
do talknpc 126 63 c
call move2
}
}

macro move2 {
do move 122 60
pause 2
do talknpc 116 67 c r0
}

el macro sellwarp2 no lo hace se activa el automacro move si pongo solo eso el move 2 si lo hace pero si pongo otro salta de nuevo a automacro me gustaria saber como se ponen en orden tantos macros kieras y también por ejemplo si hay 2 automacros k se activan con peso 90 como poner cual va primero automacro macro y luego el otro automacro macro mire en el otro foro k dijistes de excluse y priority algo asi pero en el wiki open no me enterado de nada



Última edición por PzKpfw-IV7 el Jue Oct 20, 2011 8:58 am, editado 1 vez

PzKpfw-IV7

Mensajes : 14
Reputación : 2
Fecha de inscripción : 15/10/2011

Volver arriba Ir abajo

Resuelto Re: Orden de ejecucion automacro macro

Mensaje  -Fox- Mar Oct 18, 2011 1:12 pm

En realidad tu explicación me costo un montón entenderla, de echo no lo entendí xD

Te recomiendo usar espacios o al menos un coma entre ideas....

A ver... claro para fijar una prioridad entre automacros el priority te va a servir.
Seteas un numero y entre mas pequeño sea el numero mas antes se ejecutara.
En resumen, priority fija que automacros serán checkeados antes que otros... pero si en tu estructura tienes un problema [ es decir una condicion se cumple y luego en medio de la secuencia se cumple otra que interrumpe] fijar prioridades no te va a servir.

Sin embargo a mi no me gusto mucho ese sistema de priority, prefería hacer los checkeos en el mismo macro y así ahorrar recursos...

Por ejemplo [y usando run-once para evitar los loop]


automacro sellwarp {
weight > 88%
run-once 1
call sellwarp2
}

macro sellwarp2 {
do c @go 1
do talk @npc(147 102)
do sell
do sell @inventory(gold)
do sell done
do c @go 2 ## supongo que esto envia al char de geffen##
release sellwarp
}

automacro move {
mapchange geffen
run-once 1
call {
if ($.weight > 88) goto one #en realidad no recuerdo como se mostraba $.weight, como el peso en si o el porcentaje, así que habría que arreglarlo#
do move 122 60
do talknpc 126 63 c
call move2
goto end
one:
call sellwarp2
release move
:end
}
}

macro move2 {
do move 122 60
pause 2
do talknpc 116 67 c r0
release move
}

Como veras, hice el checkeo del peso medio del macro de geffen e hice que llamara al macro sellwarp2, luego de terminar la secuencia hace un release y deja el macro de geffen abierto.

Sin embargo lo mas simple seria

automacro move {
mapchange geffen
weight <= 88%
call {
do move 122 60
do talknpc 126 63 c
call move2
}
}

Asi este macro se activará cuando la primera y segunda condición se cumplan, siendo la segunda condición lo contrario a la condición del otro macro.
El problema es que si estas vendiendo en geffen, el macro interrumpirá la secuencia apenas tenga un peso menor a 88%, en cambio haciendo el checkeo que hice en el primer ejemplo nada mas inicias la secuencia de sellwarp2 y liberas el automacro de geffen luego de haber completado la secuencia.

Sin embargo como no entiendo bien lo que quieres hacer, es decir si quieres que venda y luego quieres que vaya a geffen y ahí que se active el otro macro, no seria mas fácil llamarlo al finalizar el primer macro¿

Es mejor evitar esos cruces haciendo la estructura que de tal manera eso no pase, como no entiendo bien lo que pasa es lo que puedo indicarte.
Pero por mas o menos lo que dices creo que la primera opción te servirá [ nada mas erregla los del "$.weight > 88" estoy seguro que $.weight es el peso en si y no el porcentaje, nada mas multiplica por 0.88 el peso total y eso te dará el 88%]

Saludos

-Fox-
Admin

Mensajes : 106
Reputación : 6
Fecha de inscripción : 14/06/2011

https://openkore-hispano.activoforo.com

Volver arriba Ir abajo

Resuelto Re: Orden de ejecucion automacro macro

Mensaje  PzKpfw-IV7 Mar Oct 18, 2011 5:11 pm

no me enterado de nada xDD a ver yo lo que quiero es que los macros se ejecuten en el orden que yo los pongo como se hace eso¿?

automacro 1 macro 2 automacro 3 macro 4
etc etc
asi tantos como yo kiera no se puede poner orden? sin k se salte ninguno

por que si pongo automacro peso 90 go 2 y macro autosell o store no funciona se salta el macro y hace el otro automacro ejemplo a ver si queda claro esta vez xDD

automacro sell {
weight >= 90%
run-once 1
call {
do c @go 2
do autostorage
}
}
automacro move {
mapchange geffen
call {
do move 122 60
do talknpc 126 63 c
call move2
}
}

macro move2 {
do move 122 60
pause 2
do talknpc 116 67 c r0
}

el autostore se lo salta

PzKpfw-IV7

Mensajes : 14
Reputación : 2
Fecha de inscripción : 15/10/2011

Volver arriba Ir abajo

Resuelto Re: Orden de ejecucion automacro macro

Mensaje  -Fox- Mar Oct 18, 2011 6:21 pm

Si quieres que se ejecute uno y luego el otro y asi siempre no tiene sentido que uses automacros....

Bastaria con que ocuparas un call o hicieras un solo macro con toda la funcion....

Y no tiene sentido que se ejecuten en el orden que lo pones, un macro una vez dentro de macros.txt [o donde sea ] no tiene posición alguna, no existe una fina ni nada es como si todos estubieran frente a la puerta al mismo tiempo esperando el momento para pasar.

Lo que tu quieres en si, si no me equivoco no existe, no por una falta del programa, si no por que no tiene sentido o utilidad creo, tu le ordenas a los macros que hacer y cuando hacerlo...


Por que según lo que tu pides... pues esta seria la respuesta
Código:

automacro sell {
weight >= 90%
run-once 1
call {
##aqui esta lo primero###
do c @go 2
do autostorage
##aqui lo segundo###
do move 122 60
do talknpc 126 63 c
##aqui lo tercero##
do move 122 60
pause 2
do talknpc 116 67 c r0
}

La solución para tu problema creo que ya te la di en el otro post

para que no se salte el autostorage debes ordenar a los macros que no lo haga, es decir decirle al otro macro que no se inicie bajo esa condición que tu pusiste.


automacro move {
map geffen
weight < 90%
run-once 1
call {
do move 122 60
do talknpc 126 63 c
call move2
release all
}
}
Este se iniciara cuando este en geffen y tenga peso inferior a 90%, asi no se iniciara en medio del otro macro...
Lo otro es trasladar la solución al problema:

automacro sell {
weight >= 90%
run-once 1
call {
do c @go 2
}
}
automacro move {
mapchange geffen
call {
if ($.weight <= 90%) goto one
do autostorage
:one
do move 122 60
do talknpc 126 63 c
call move2
release all
}
}

Aquí lo que hace es usar el @go 2 cuando tenga el peso del 90%, cuando este en geffen se activara el otro macro si tiene un peso mayor a 90% ocupara la linea de autostorage y luego correrá todos los demás comandos, luego si bajo cualquier otra situación va a geffen y tiene un peso menor a 90% se saltara la linea del autostorage....


Y así te las puedes arreglar de distintas maneras, entre mas sabes del lenguaje, mas tiempo de boteo puedes ahorrarte, pero con lo básico puedes arreglar cosas así igual.

Saludos

-Fox-
Admin

Mensajes : 106
Reputación : 6
Fecha de inscripción : 14/06/2011

https://openkore-hispano.activoforo.com

Volver arriba Ir abajo

Resuelto Re: Orden de ejecucion automacro macro

Mensaje  PzKpfw-IV7 Jue Oct 20, 2011 8:58 am

Bueno así me ha quedado el macro finalmente para sacar zeny a ver que te parece

automacro sell {
inventory "Gokurin" >= 70
timeout 45
call {
do c @go 2
do autosell
}
}


automacro move {
timeout 300
call {
do c @go 2
do move 122 60
do talknpc 126 63 c
call move2
release all
}
}

macro move2 {
do move 122 60
pause 2
do talknpc 116 67 c r0
}

automacro xel {
mapchange geffen
weight <= 10%
call {
do move 122 60
do talknpc 126 63 c
call move2
}
}

eso si he tenido que poner otro npc para vender las cosas uno de geff_in por que si me vació de peso en geffen no se activa el xel y se va andando hasta que se activa el de timeout 300 por eso al salir de gef_in a geffen ciudad se activa el de geffen + <= 10% de peso pos ya esta probado y testado y funciona gracias!!

PzKpfw-IV7

Mensajes : 14
Reputación : 2
Fecha de inscripción : 15/10/2011

Volver arriba Ir abajo

Resuelto Re: Orden de ejecucion automacro macro

Mensaje  Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.