levelbot
11/03/2006, 22:21:12
MACRO AGUARDANDO REVISÃO OPENKORE 2.0.7 / MACRO PLUGIN 2.0.2
Amigos:
Depois de algum tempo quebrando a cabeça com a versão 093, resolvi migrar para a versão CVS e qual foi minha surpresa ao me identificar e conseguir soluções muito mais facilmente.
Eu postei uma macro nesta antiga versão, com o propósito de refinar automaticamente os minérios e pedras obtidos, mas após algumas atualizações do Kore, o próprio plugin "forge.pl" acabou gerando incompatibilidades. Mas isto é passado.
Apresento aqui minha primeira experiência relevante com a nova versão do Macro Plugin:
O que ela faz?
Forja ferro, aço, fragmento estelar e os quatro elementais. Além disso, ela verifica se há fornalhas suficientes, comprando o necessário se não houver;
Como ela faz isso?
Usando o plugin forge.pl que vem junto com outros no "pacote" de plugins disponível no link atualizado. Porém, meu colegas alquimistas queiram me desculpar: o plugin serve também a vocês, mas minha macro só atende a Ferreiros; devo confessar que não entendo e nem teria como testar a versão para Alquimistas, mas creio que poucas alterações sejam necessárias;
Quais as limitações?
* A macro é bem específica: Pure Forgers! Pensando nas características destes personagens, eu desenvolvi a macro visando o uso do carrinho e não do inventário, pois sobrecarregaria o personagem muito facilmente.
* Como foi feita, ela dispara quando estiver em Geffen com mais de 50 minérios de ferro e mais de 5 carvões ou algum elemntal a ser forjado. Então ele larga o que estiver fazendo e vai para a refinaria Geffen, onde ele poderá comprar as fornalhas.
Como usar?
1) Altere seu items_control de forma que todos os materiais envolvidos sejam mandados para o carrinho, não permanecendo nenhum no inventário. Os itens são:
*Iron Ore
*Iron
*Coal
*Red Blood
*Crystal Blue
*Green Live
*Wind of Verdure
*Mini Furnace
1a) Se nada for mudado no items_control, os itens forjados serão todos armazenados na Kafra quando ele for visitá-la; este é o meu caso. A macro só move os ferros para o carrinho, para o processo de fabricação dos aços, mas todos os outros itens permanecem no inventário.
2) Novamente entra-se na questão pessoal: eu tenho determinados equips que aumentam as chances de sucesso na forja; na minha versão, eu equipo estes itens antes de começar a forjar, assim como peço buffs para o Slave Sacer. Os "Equips pra Forja" (como eu os chamo) são muito diferentes dos equips que uso para upar;
observação: não foram inclusas no código estas partes
3) Largue o bot refinando aquela 1 Tonelada de minérios e pronto!
Vou explicar o que a macro faz passo-a-passo:
a) vai até a refinaria de geffen;
b) checa pelos elementos e forja se houver, nesta ordem: ferro, aço, fragmento, Coração Flamejante, Gelo Místico, Natureza Grandiosa e Vento Bruto; caso não haja minério de um tipo, ele passa ao próximo.
observação: no caso específico do aço, dependemos de uma certa quantidade de ferro; ele só refinará o que for possível com os ferros existentes.
c) checa se há fornálhas suficientes; primeiro usa as que possam existir no carrinho, depois compra lotes de 20 fornalhas cada vez que elas acabarem durante o processo.
d) exibe o relatório do que há no inventário e encerra a macro.
Eis o código:
#================================================= ========================
#
# Forja Ferro, Aço, Fragmento e Elementais,
# Compra lotes de 20 fornalhas e usa o cart
# Não executa se o saldo for menor que 20k.
# by Klaus Schäfer
#================================================= ========================
automacro smith {
location geffen
zeny > 20000
cart "Iron Ore" > 50
cart "Coal" > 5, "Red Blood" > 10, "Green Live" > 10, "Star Dust" > 10, "Wind of Verdure" > 10, "Crystal Blue" > 10
call forge
}
macro forge {
do move 102 166 geffen_in
do sit
do p bless
pause 1
if (@cartamount (Iron Ore) = 0) goto steel
while (@cartamount (Iron Ore) > 0) as frgirn
if (@cartamount (Mini Furnace) > 1) goto ironloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Iron Ore)
:ironloop
do cart get @cart (Iron Ore) 1
do cart get @cart (Mini Furnace) 1
do forge 0
pause 1
end frgirn
do cart add @inventory (Iron)
:steel
if (@cartamount (Coal) = 0) goto crumb
while (@cartamount (Coal) > 0) as frgstl
if (@cartamount (Iron) < 5) goto crumb
if (@cartamount (Mini Furnace) > 1) goto steelloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Iron)
do cart add @inventory (Coal)
:steelloop
do cart get @cart (Iron) 5
do cart get @cart (Coal) 1
do cart get @cart (Mini Furnace) 1
do forge 1
pause 1
end frgstl
:crumb
if (@cartamount (Star Dust) < 10) goto heart
while (@cartamount (Star Dust) > 9) as frgcrb
if (@cartamount (Mini Furnace) > 0) goto crumbloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Star Dust)
:crumbloop
do cart get @cart (Mini Furnace) 1
do cart get @cart (Star Dust) 10
do forge 2
pause 2
end frgcrb
:heart
if (@cartamount (Red Blood) < 10) goto frozen
while (@cartamount (Red Blood) > 9) as frghrt
if (@cartamount (Mini Furnace) > 0) goto heartloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Red Blood)
:heartloop
do cart get @cart (Mini Furnace) 1
do cart get @cart (Red Blood) 10
do forge 3
pause 1
end frghrt
:frozen
if (@cartamount (Crystal Blue) < 10) goto nature
while (@cartamount (Crystal Blue) > 9) as frgnat
if (@cartamount (Mini Furnace) > 0) goto frozenloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Crystal Blue)
:frozenloop
do cart get @cart (Mini Furnace) 1
do cart get @cart (Crystal Blue) 10
do forge 4
pause 1
end frgnat
:nature
if (@cartamount (Green Live) < 10) goto wind
while (@cartamount (Green Live) > 9) as frgnat
if (@cartamount (Mini Furnace) > 0) goto natloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Green Live)
:natloop
do cart get @cart (Mini Furnace) 1
do cart get @cart (Green Live) 10
do forge 5
pause 1
end frgnat
:wind
if (@cartamount (Wind of Verdure) < 10) goto endforge
while (@cartamount (Wind of Verdure) > 9) as frgwnd
if (@cartamount (Mini Furnace) > 0) goto windloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Wind of Verdure)
:windloop
do cart get @cart (Mini Furnace) 1
do cart get @cart (Wind of Verdure) 10
do forge 6
pause 1
end frgwnd
:endforge
do stand
log ===============================================
log Forge Finished
log ===============================================
log Iron: @cartamount (Iron)
log Steel: @invamount (Steel)
log Star Crumb: @invamount (Star Crumb)
log Flame Heart: @invamount (Flame Heart)
log Mystic Frozen: @invamount (Mystic Frozen)
log Great Nature: @invamount (Great Nature)
log Rough Wind: @invamount (Rough Wind)
log Mini Furnace: @cartamount (Mini Furnace)
log ===============================================
}
Eu gastei hoje cerca de 700k de minérios e elementais para testar esta macro; eu ia até Prontera, comprava o que precisava e disparava a macro. Funcionou perfeitamente.
Não se preocupem sobre o problema da super-velocidade que o plugin apresenta se digitarmos: forge 0 all por exemplo. Eu programei eventos entre uma forja e outra e a velociade é exatamente a mesma de um player normal "spammando" fornalhas com o /bm.
Espero que ajude!
Aguardo comentários!
--Edit--
* Corrigida a parte do relatório.
* Corrigido pequeno bug existente onde ele ficava parado após terminar a forja.
* Pode-se usar o cart até 7500 de peso que ainda assim ele conseguirá forjar os itens.
version
*** OpenKore 1.9.1 (SVN version) - Custom Ragnarok Online client ***
version
*** Macro plugin - Versão CVS 10.1 ou Superior ***
Amigos:
Depois de algum tempo quebrando a cabeça com a versão 093, resolvi migrar para a versão CVS e qual foi minha surpresa ao me identificar e conseguir soluções muito mais facilmente.
Eu postei uma macro nesta antiga versão, com o propósito de refinar automaticamente os minérios e pedras obtidos, mas após algumas atualizações do Kore, o próprio plugin "forge.pl" acabou gerando incompatibilidades. Mas isto é passado.
Apresento aqui minha primeira experiência relevante com a nova versão do Macro Plugin:
O que ela faz?
Forja ferro, aço, fragmento estelar e os quatro elementais. Além disso, ela verifica se há fornalhas suficientes, comprando o necessário se não houver;
Como ela faz isso?
Usando o plugin forge.pl que vem junto com outros no "pacote" de plugins disponível no link atualizado. Porém, meu colegas alquimistas queiram me desculpar: o plugin serve também a vocês, mas minha macro só atende a Ferreiros; devo confessar que não entendo e nem teria como testar a versão para Alquimistas, mas creio que poucas alterações sejam necessárias;
Quais as limitações?
* A macro é bem específica: Pure Forgers! Pensando nas características destes personagens, eu desenvolvi a macro visando o uso do carrinho e não do inventário, pois sobrecarregaria o personagem muito facilmente.
* Como foi feita, ela dispara quando estiver em Geffen com mais de 50 minérios de ferro e mais de 5 carvões ou algum elemntal a ser forjado. Então ele larga o que estiver fazendo e vai para a refinaria Geffen, onde ele poderá comprar as fornalhas.
Como usar?
1) Altere seu items_control de forma que todos os materiais envolvidos sejam mandados para o carrinho, não permanecendo nenhum no inventário. Os itens são:
*Iron Ore
*Iron
*Coal
*Red Blood
*Crystal Blue
*Green Live
*Wind of Verdure
*Mini Furnace
1a) Se nada for mudado no items_control, os itens forjados serão todos armazenados na Kafra quando ele for visitá-la; este é o meu caso. A macro só move os ferros para o carrinho, para o processo de fabricação dos aços, mas todos os outros itens permanecem no inventário.
2) Novamente entra-se na questão pessoal: eu tenho determinados equips que aumentam as chances de sucesso na forja; na minha versão, eu equipo estes itens antes de começar a forjar, assim como peço buffs para o Slave Sacer. Os "Equips pra Forja" (como eu os chamo) são muito diferentes dos equips que uso para upar;
observação: não foram inclusas no código estas partes
3) Largue o bot refinando aquela 1 Tonelada de minérios e pronto!
Vou explicar o que a macro faz passo-a-passo:
a) vai até a refinaria de geffen;
b) checa pelos elementos e forja se houver, nesta ordem: ferro, aço, fragmento, Coração Flamejante, Gelo Místico, Natureza Grandiosa e Vento Bruto; caso não haja minério de um tipo, ele passa ao próximo.
observação: no caso específico do aço, dependemos de uma certa quantidade de ferro; ele só refinará o que for possível com os ferros existentes.
c) checa se há fornálhas suficientes; primeiro usa as que possam existir no carrinho, depois compra lotes de 20 fornalhas cada vez que elas acabarem durante o processo.
d) exibe o relatório do que há no inventário e encerra a macro.
Eis o código:
#================================================= ========================
#
# Forja Ferro, Aço, Fragmento e Elementais,
# Compra lotes de 20 fornalhas e usa o cart
# Não executa se o saldo for menor que 20k.
# by Klaus Schäfer
#================================================= ========================
automacro smith {
location geffen
zeny > 20000
cart "Iron Ore" > 50
cart "Coal" > 5, "Red Blood" > 10, "Green Live" > 10, "Star Dust" > 10, "Wind of Verdure" > 10, "Crystal Blue" > 10
call forge
}
macro forge {
do move 102 166 geffen_in
do sit
do p bless
pause 1
if (@cartamount (Iron Ore) = 0) goto steel
while (@cartamount (Iron Ore) > 0) as frgirn
if (@cartamount (Mini Furnace) > 1) goto ironloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Iron Ore)
:ironloop
do cart get @cart (Iron Ore) 1
do cart get @cart (Mini Furnace) 1
do forge 0
pause 1
end frgirn
do cart add @inventory (Iron)
:steel
if (@cartamount (Coal) = 0) goto crumb
while (@cartamount (Coal) > 0) as frgstl
if (@cartamount (Iron) < 5) goto crumb
if (@cartamount (Mini Furnace) > 1) goto steelloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Iron)
do cart add @inventory (Coal)
:steelloop
do cart get @cart (Iron) 5
do cart get @cart (Coal) 1
do cart get @cart (Mini Furnace) 1
do forge 1
pause 1
end frgstl
:crumb
if (@cartamount (Star Dust) < 10) goto heart
while (@cartamount (Star Dust) > 9) as frgcrb
if (@cartamount (Mini Furnace) > 0) goto crumbloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Star Dust)
:crumbloop
do cart get @cart (Mini Furnace) 1
do cart get @cart (Star Dust) 10
do forge 2
pause 2
end frgcrb
:heart
if (@cartamount (Red Blood) < 10) goto frozen
while (@cartamount (Red Blood) > 9) as frghrt
if (@cartamount (Mini Furnace) > 0) goto heartloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Red Blood)
:heartloop
do cart get @cart (Mini Furnace) 1
do cart get @cart (Red Blood) 10
do forge 3
pause 1
end frghrt
:frozen
if (@cartamount (Crystal Blue) < 10) goto nature
while (@cartamount (Crystal Blue) > 9) as frgnat
if (@cartamount (Mini Furnace) > 0) goto frozenloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Crystal Blue)
:frozenloop
do cart get @cart (Mini Furnace) 1
do cart get @cart (Crystal Blue) 10
do forge 4
pause 1
end frgnat
:nature
if (@cartamount (Green Live) < 10) goto wind
while (@cartamount (Green Live) > 9) as frgnat
if (@cartamount (Mini Furnace) > 0) goto natloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Green Live)
:natloop
do cart get @cart (Mini Furnace) 1
do cart get @cart (Green Live) 10
do forge 5
pause 1
end frgnat
:wind
if (@cartamount (Wind of Verdure) < 10) goto endforge
while (@cartamount (Wind of Verdure) > 9) as frgwnd
if (@cartamount (Mini Furnace) > 0) goto windloop
do talk @npc (110 172)
pause 2
do talk resp 1
pause 2
do talk resp 0
pause 2
do talk num 20
pause 1
do cart add @inventory (Mini Furnace)
do cart add @inventory (Wind of Verdure)
:windloop
do cart get @cart (Mini Furnace) 1
do cart get @cart (Wind of Verdure) 10
do forge 6
pause 1
end frgwnd
:endforge
do stand
log ===============================================
log Forge Finished
log ===============================================
log Iron: @cartamount (Iron)
log Steel: @invamount (Steel)
log Star Crumb: @invamount (Star Crumb)
log Flame Heart: @invamount (Flame Heart)
log Mystic Frozen: @invamount (Mystic Frozen)
log Great Nature: @invamount (Great Nature)
log Rough Wind: @invamount (Rough Wind)
log Mini Furnace: @cartamount (Mini Furnace)
log ===============================================
}
Eu gastei hoje cerca de 700k de minérios e elementais para testar esta macro; eu ia até Prontera, comprava o que precisava e disparava a macro. Funcionou perfeitamente.
Não se preocupem sobre o problema da super-velocidade que o plugin apresenta se digitarmos: forge 0 all por exemplo. Eu programei eventos entre uma forja e outra e a velociade é exatamente a mesma de um player normal "spammando" fornalhas com o /bm.
Espero que ajude!
Aguardo comentários!
--Edit--
* Corrigida a parte do relatório.
* Corrigido pequeno bug existente onde ele ficava parado após terminar a forja.
* Pode-se usar o cart até 7500 de peso que ainda assim ele conseguirá forjar os itens.
version
*** OpenKore 1.9.1 (SVN version) - Custom Ragnarok Online client ***
version
*** Macro plugin - Versão CVS 10.1 ou Superior ***