levelbot
11/03/2006, 22:16:29
MACRO AGUARDANDO REVISÃO PARA O OPENKORE 2.0.7 / MACRO PLUGIN 2.0.2
Bom, aqui estou novamente para compartilhar com os senhores uma macro que julgo eficiente. Desta vez minha proposta é otimizar o rendimento de dois ou mais bots que upam em gupo.
Seguindo o método convencional para se fazer party entre eles, obtemos um resultado tosco, que poe na cabeça de cada um, uma plaquinha escrito: "powered by Openkore". Explico: o SLAVE deixa o MASTER sem buffs por muito tempo; não bastando isso, se você configurar o "followBot" pra 1, toda vez que o SLAVE perder o MASTER de vista, ele vai enviá-lo um "volte aqui" através de PM e os dois vao ficar brincando de gato e rato num vai e vem irritante que denuncia todo o esquema.
Esta macro, ou melhor: conjunto de macros, soluciona estas deficiências fazendo com que os bots comportem-se exatamente como os players fazem (pelo menos quando eu jogava manual, em grupo com outros eu fazia assim), ou seja; cada um pede seu buff, quando ele acabar.
Da forma como está montada, a party funciona com vários bots para um mesmo Sacerdote (que será sempre o SLAVE). Um bot, ao qual comanda a party e ao qual os outros bots seguem (que será sempre o MASTER) pode determinar também que o SLAVE e os outros bots parem de seguí-lo em mapas mais fáceis, pois cada um matando individualmente, rende mais que todos matando o mesmo monstro (estou falando de uma party onde a experiência é dividida igualmente) e depois mandar o SLAVE e os outros voltarem a segui-lo quando sair dos mapas especificados.
Volto a recomendar: aprendam a fazer seus bots mudarem de mapa! Isso reduz e muito a chance de um BH ficar perseguindo seus pupilos. Eu faço de um jeito que meus bots rodam por diversos mapas, alterando inclusive os npcs que usam para armazenar/comprar/vender (mas esse é outro tópico).
Vou tomar por exemplo, uma party entre um Sacerdote e outro char qualquer, apenas para explicar o funcionamento da macro, mas é possível usar mais bots no mesmo grupo.
A base das macros é o chat do grupo, ou seja: acabou a benção de alguem, este alguem irá pedir benção pelo chat e a macro do Sacerdote se encarrega de descobrir quem está pedindo a benção e aplica o buff no jogador correspondente.
Notem que outra característica destas macros é que ninguém pedirá buff algum, se o sacerdote não estiver por perto; precisei incluir este dispositivo para quando o grupo se separar em mapas mais fáceis, os bots não fiquem pedindo cura pro Sacer, o que geraria erro pois o sacer não conseguiria aplicar o buff.
Eu deixei o Kyrie Eleison reservado apenas para alguns monstros, pois não há necessidade de usá-lo o tempo todo; deixei a Cura para ser aplicada com hp<60% para que o char não use poções ao mesmo tempo da cura. Se o sacer não estiver por perto, o char usará a poção normalmente, com hp<50%.
Magnificat também não é acionado em tempo integral, para economia de sp do Sacer; o MASTER apenas pedirá Magnificat quando seu sp estiver abaixo de 40%. Outro detalhe que gera problemas é o casting do Magnificat, que normalmente deixa o SLAVE parado falando sozinho e o MASTER andando, o que faz com que ele não receba o buff se não estiver na linha de visão do Sacer. Resolvi este problema também: o MASTER pede o buf e aguarda o casting parado.
Incluí também um outro dispositivo para funcionar no caso de casais: no meu caso, eu fiz uma Sacerdotiza para acompanhar meu char principal e quando ele fica sem sp, ela usa a skill do casamento para doar sp.
Vamos aos códigos:
macros para o MASTER:
#================================================= =======================
#
# Macros para Party - Master
#
# by Klaus Schäfer
#================================================= =======================
# Coloque aqui os mapas onde o grupo se separa, só para o MASTER
# location -> todos na mesma linha
# location not -> uma linha para cada um
# coloque OS MESMOS mapas nas duas declarações
automacro freeslave {
location mapa 1, mapa 2, mapa 3
run-once 1
call {
do p free
release turnslave
do tele
}
}
automacro turnslave {
location not mapa 1
location not mapa 2
location not mapa 3
run-once 1
call {
do p slave
release freeslave
}
}
# Esta aqui só se sua esposa for uma Saça
automacro semsp {
player "Nomedela" , 10
sp < 15%
call {
do p nosp
}
timeout 10
}
# Macros para todos os outros bots
automacro heal {
player "nomedoslave" , 10
hp < 60%
call {
do p heal
}
timeout 2
}
automacro bless {
player "nomedoslave" , 10
status not Blessing
call {
do p bless
}
timeout 10
}
automacro agiup {
player "nomedoslave" , 10
status not Increase AGI
call {
do p agi me
}
timeout 10
}
automacro magnificat {
location not geffen
location not geffen_in
location not prontera
location not prt_in
location not izlude
location not izlude_in
location not payon
location not morocc
player "nomedoslave" , 10
status not Magnificat
sp < 40%
call {
do p mag
pause 4
}
timeout 10
}
automacro impositio {
location not geffen
location not geffen_in
location not prontera
location not prt_in
location not izlude
location not izlude_in
location not payon
location not morocc
player "nomedoslave" , 10
status not Impositio Manus
call {
do p imp
}
timeout 3
}
automacro kyrie {
player "nomedoslave" , 10
status not Kyrie Eleison
monster monstro1, monstro2, monstro3
call {
do p kyr
}
timeout 5
}
macros para o SLAVE
automacro cure {
party /heal/
call {
do sp 28 $.lastparty 1000
}
}
automacro love {
party /nosp/
call {
do ss 335
}
}
automacro impositio {
party /imp/
call {
do sp 66 $.lastparty
}
}
automacro kyrie {
party /kyr/
call {
do sp 73 $.lastparty
}
}
automacro medic {
party /cur/
call {
do sp 35 $.lastparty
}
}
automacro gloria {
party /glo/
call {
do ss 75
}
}
automacro magnificat {
party /mag/
call {
do ss 74
}
}
automacro slvfre {
party /free/
call {
do follow stop
do conf attackAuto 2
do conf lockMap $.map
do tele
}
}
automacro trnslv {
party /slave/
call {
do follow $.lastparty
do conf attackAuto 1
}
}
Nos testes que realizei, o conjunto todo funcionou corretamente. Lugares onde há LAG demais, pode ocorrer erro do Sacer não identificar quem solicitou o buff, mas isso se resolve sozinho depois do LAG. Na pior das hipóteses, o MASTER irá gastar algumas poções.
Recomendo que todos tenham algumas poções, caso alguma eventualidade ocorra, impedindo o Sacer de curar.
Pode ocorrer do MASTER pedir o buff mais de uma vez, mas mesmo assim, o tempo sem buff é muito menos do que pelo método convencinal.
Acredito ser desnecessário dizer que é preciso tocar "nomedosacer" que aparece na macro do master, pelo nome do seu char e também trocar mapa1, mapa2 e mapa3 pelo nome dos mapas em que você quer q a party se separe, assim como monstro1, monstro2 e monstro3 para os monstros contra os quais você quer que seja usado o Kyrie Eleison
---Edit----
* Implementado mecanismo para não pedir alguns buffs nas cidades.
* Corrigido pequeno bug no Kyrie Eleison e Magnificat
version
*** OpenKore 1.9.1 (SVN version) - Custom Ragnarok Online client ***
version
*** Macro plugin - Versão CVS 10.1 ou Superior ***
Bom, aqui estou novamente para compartilhar com os senhores uma macro que julgo eficiente. Desta vez minha proposta é otimizar o rendimento de dois ou mais bots que upam em gupo.
Seguindo o método convencional para se fazer party entre eles, obtemos um resultado tosco, que poe na cabeça de cada um, uma plaquinha escrito: "powered by Openkore". Explico: o SLAVE deixa o MASTER sem buffs por muito tempo; não bastando isso, se você configurar o "followBot" pra 1, toda vez que o SLAVE perder o MASTER de vista, ele vai enviá-lo um "volte aqui" através de PM e os dois vao ficar brincando de gato e rato num vai e vem irritante que denuncia todo o esquema.
Esta macro, ou melhor: conjunto de macros, soluciona estas deficiências fazendo com que os bots comportem-se exatamente como os players fazem (pelo menos quando eu jogava manual, em grupo com outros eu fazia assim), ou seja; cada um pede seu buff, quando ele acabar.
Da forma como está montada, a party funciona com vários bots para um mesmo Sacerdote (que será sempre o SLAVE). Um bot, ao qual comanda a party e ao qual os outros bots seguem (que será sempre o MASTER) pode determinar também que o SLAVE e os outros bots parem de seguí-lo em mapas mais fáceis, pois cada um matando individualmente, rende mais que todos matando o mesmo monstro (estou falando de uma party onde a experiência é dividida igualmente) e depois mandar o SLAVE e os outros voltarem a segui-lo quando sair dos mapas especificados.
Volto a recomendar: aprendam a fazer seus bots mudarem de mapa! Isso reduz e muito a chance de um BH ficar perseguindo seus pupilos. Eu faço de um jeito que meus bots rodam por diversos mapas, alterando inclusive os npcs que usam para armazenar/comprar/vender (mas esse é outro tópico).
Vou tomar por exemplo, uma party entre um Sacerdote e outro char qualquer, apenas para explicar o funcionamento da macro, mas é possível usar mais bots no mesmo grupo.
A base das macros é o chat do grupo, ou seja: acabou a benção de alguem, este alguem irá pedir benção pelo chat e a macro do Sacerdote se encarrega de descobrir quem está pedindo a benção e aplica o buff no jogador correspondente.
Notem que outra característica destas macros é que ninguém pedirá buff algum, se o sacerdote não estiver por perto; precisei incluir este dispositivo para quando o grupo se separar em mapas mais fáceis, os bots não fiquem pedindo cura pro Sacer, o que geraria erro pois o sacer não conseguiria aplicar o buff.
Eu deixei o Kyrie Eleison reservado apenas para alguns monstros, pois não há necessidade de usá-lo o tempo todo; deixei a Cura para ser aplicada com hp<60% para que o char não use poções ao mesmo tempo da cura. Se o sacer não estiver por perto, o char usará a poção normalmente, com hp<50%.
Magnificat também não é acionado em tempo integral, para economia de sp do Sacer; o MASTER apenas pedirá Magnificat quando seu sp estiver abaixo de 40%. Outro detalhe que gera problemas é o casting do Magnificat, que normalmente deixa o SLAVE parado falando sozinho e o MASTER andando, o que faz com que ele não receba o buff se não estiver na linha de visão do Sacer. Resolvi este problema também: o MASTER pede o buf e aguarda o casting parado.
Incluí também um outro dispositivo para funcionar no caso de casais: no meu caso, eu fiz uma Sacerdotiza para acompanhar meu char principal e quando ele fica sem sp, ela usa a skill do casamento para doar sp.
Vamos aos códigos:
macros para o MASTER:
#================================================= =======================
#
# Macros para Party - Master
#
# by Klaus Schäfer
#================================================= =======================
# Coloque aqui os mapas onde o grupo se separa, só para o MASTER
# location -> todos na mesma linha
# location not -> uma linha para cada um
# coloque OS MESMOS mapas nas duas declarações
automacro freeslave {
location mapa 1, mapa 2, mapa 3
run-once 1
call {
do p free
release turnslave
do tele
}
}
automacro turnslave {
location not mapa 1
location not mapa 2
location not mapa 3
run-once 1
call {
do p slave
release freeslave
}
}
# Esta aqui só se sua esposa for uma Saça
automacro semsp {
player "Nomedela" , 10
sp < 15%
call {
do p nosp
}
timeout 10
}
# Macros para todos os outros bots
automacro heal {
player "nomedoslave" , 10
hp < 60%
call {
do p heal
}
timeout 2
}
automacro bless {
player "nomedoslave" , 10
status not Blessing
call {
do p bless
}
timeout 10
}
automacro agiup {
player "nomedoslave" , 10
status not Increase AGI
call {
do p agi me
}
timeout 10
}
automacro magnificat {
location not geffen
location not geffen_in
location not prontera
location not prt_in
location not izlude
location not izlude_in
location not payon
location not morocc
player "nomedoslave" , 10
status not Magnificat
sp < 40%
call {
do p mag
pause 4
}
timeout 10
}
automacro impositio {
location not geffen
location not geffen_in
location not prontera
location not prt_in
location not izlude
location not izlude_in
location not payon
location not morocc
player "nomedoslave" , 10
status not Impositio Manus
call {
do p imp
}
timeout 3
}
automacro kyrie {
player "nomedoslave" , 10
status not Kyrie Eleison
monster monstro1, monstro2, monstro3
call {
do p kyr
}
timeout 5
}
macros para o SLAVE
automacro cure {
party /heal/
call {
do sp 28 $.lastparty 1000
}
}
automacro love {
party /nosp/
call {
do ss 335
}
}
automacro impositio {
party /imp/
call {
do sp 66 $.lastparty
}
}
automacro kyrie {
party /kyr/
call {
do sp 73 $.lastparty
}
}
automacro medic {
party /cur/
call {
do sp 35 $.lastparty
}
}
automacro gloria {
party /glo/
call {
do ss 75
}
}
automacro magnificat {
party /mag/
call {
do ss 74
}
}
automacro slvfre {
party /free/
call {
do follow stop
do conf attackAuto 2
do conf lockMap $.map
do tele
}
}
automacro trnslv {
party /slave/
call {
do follow $.lastparty
do conf attackAuto 1
}
}
Nos testes que realizei, o conjunto todo funcionou corretamente. Lugares onde há LAG demais, pode ocorrer erro do Sacer não identificar quem solicitou o buff, mas isso se resolve sozinho depois do LAG. Na pior das hipóteses, o MASTER irá gastar algumas poções.
Recomendo que todos tenham algumas poções, caso alguma eventualidade ocorra, impedindo o Sacer de curar.
Pode ocorrer do MASTER pedir o buff mais de uma vez, mas mesmo assim, o tempo sem buff é muito menos do que pelo método convencinal.
Acredito ser desnecessário dizer que é preciso tocar "nomedosacer" que aparece na macro do master, pelo nome do seu char e também trocar mapa1, mapa2 e mapa3 pelo nome dos mapas em que você quer q a party se separe, assim como monstro1, monstro2 e monstro3 para os monstros contra os quais você quer que seja usado o Kyrie Eleison
---Edit----
* Implementado mecanismo para não pedir alguns buffs nas cidades.
* Corrigido pequeno bug no Kyrie Eleison e Magnificat
version
*** OpenKore 1.9.1 (SVN version) - Custom Ragnarok Online client ***
version
*** Macro plugin - Versão CVS 10.1 ou Superior ***