Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Como Instalar E Usar O Macro Plugin No Openkore


ifroyd
 Compartilhar

Posts Recomendados

SUMÁRIO :

Introdução

Tutorial

Downloads

Créditos

 

INTRODUÇÃO

 

O openkore é certamente um dos melhores e mais completos robots que existem no mercado, e ainda podemos adicionar-lhe outras funções com o uso de plugins. O mais usado certamente é o Macro Plugin, como ele podemos escrever sequências de comandos que serão executadas manualmente ou até mesmo ativadas de forma autônoma. Nesta matéria iremos aprender a instalar, testar e rabiscar nossas primeiras macros, então mãos a obra.

 

TUTORIAL

 

Como instalar Corretamente o Macro Plugin

 

O primeiro passo é baixar a versão mais recente e extrair ela onde desejar, use o 7zip ou outro programa de sua preferência. Repare que dentro do arquivo compactado existe outro e dentro dele temos uma pasta chamada trunk. Ela contém o plugin propriamente dito e duas pastas, uma chamada macro e outra chamada test. Tudo que precisamos fazer é enviar esses três itens para a pasta plugins do openkore, e se ela não existir basta cria-la. Repare que a estrutura de pasta do openkore deve ficar exatamente assim para funcionar:

 

openkore

|-- control

| |-- macros.txt

|-- plugins

| |-- Macro

| |-- test

| |-- macro.pl

 

Como vimos na acima é preciso criar um arquivo chamado macros.txt dentro da pasta control. Portanto abra o bloco de notas e use a opção salvar como, isto é necessário pois se não salvarmos o arquivo com a codificação em UTF-8 o kore vai dar erro.

salvar-macro-utf8%25255B2%25255D.jpg?imgmax=800

 

Para testar se tudo deu certo apenas escreva macro list no console do openkore, irá aparecer uma lista de macros, vazia no caso, mas já um grande indicativo de que a instalação foi bem sucedida.

 

Criando A Nossa Primeira Macro E Fazendo Um Teste

 

Antes de começar vamos relembrar algo importante, o kore possui muitos comandos de console, como o macro list, e é exatamente eles que usaremos em nossas macros. Um exemplo é o comando move, que manda o boneco ir a alguma lugar, ou o comando talknpc, que o faz falar com um NPC, a lista é bem extensa, e a wiki internacional possui ela na integra.

 

Entenda que criar uma macro é usar estes comandos, aliado a laços condicionais e de repetição, para o propósito de automatizar alguma tarefa, portanto ter o conhecimento prévio de lógica de programação e dos comandos do openkore é fundamental na hora de se criar uma macro. Dito isto copie e cole o seguinte trecho no seu macro.txt:

 

macro salvarPRT {

log === INDO PARA PRONTERA ===

do ai manual

do move prontera 152 326

do talknpc 152 326 r0

do ai auto

log === SALVO EM PRONTERA ===

}

Salve o arquivo e digite reload all no seu openkore para atualiza-lo com a nova macro

 

Explicando A Macro De Exemplo E Aprendendo A Usa-la

 

Cada uma das nossas macros deve começar com a palavra macro seguido do nome da macro, e tudo o que está os colchetes são os comandos dela. Portanto está a sintaxe básica para qualquer macro: macro nomeDaMacro { comandos …}, simples né?

 

Repare que algumas linhas do exemplo começam com o comando do e outras não. Tudo o que começa com isto faz uma chamada a um comando de console, tal como explicado anteriormente, já o que não tem o do é um comando de macro mesmo. Portanto nosso exemplo usa apenas um comando de macro, que é o log, sendo que ele serve apenas para criar uma mensagem de texto no console.

 

O primeiro comando do exemplo apenas escreve a frase “INDO PARA PRONTERA” no console. O segundo coloca o kore em modo manual e o terceiro o faz ir para prontera, na kafra norte. Na sequência ele fala com a kafra em 152 326 e escolhe a opção r0, que no caso é salvar.

macro-salvar-prontera%25255B2%25255D.jpg?imgmax=800

 

Este é um exemplo bastante simples, mas que já demonstra o poder de automatizar tarefas com macros. Para chamar e testar a macro exemplo apenas digite macro seguido do nome da macro, no caso ficaria macro salvarPRT, lembrando que o kore diferencia maiúscula de minúscula.

 

Como Passar Variáveis E Criar Laços Condicionais

 

A partir daqui começa a complicar e é preciso ter uma base sólida de programação para entender o próximo exemplo. Nele iremos ver como passar uma variável para a macro e usa-la para através de laços condicionais que irão fazer uma escolha, veja:

 

macro salvar {

do ai manual

if ($.param1 = prontera) goto prontera

if ($.param1 = payon) goto payon

:*prontera

log == INDO PARA PRONTERA

goto fim

:*payon

log == INDO PARA PAYON

goto fim

:fim

do ai auto

}

#Retire os espaços de : prontera e : payon , pois se eu colocar sem os espações olha oq aparece: :p

 

Quando chamarmos esta macro devemos inserir um parâmetro que nos indicará onde o personagem irá salvar. Para passa-lo devemos usar a seguinte sintaxe: macro salvar — nomedacidade, por exemplo, macro salvar — payon, não se esqueça de inserir o espaço depois dos dois traços.

 

Esta macro começa colocando o kore em modo manual e depois avalia o parâmetro passado com o comandos condicionais. Em if ($.param1 = prontera) goto prontera, ele verifica se $.param1, ou seja, o primeiro parâmetro passado é igual a prontera, se sim ele segue para a linha :prontera, se não ele verifica se o parâmetro passo é igual a payon e por ai vai.

 

Perceba que ao final de cada bloco existe um goto fim, que chama a linha :fim, sem isto após ser executado o bloco prontera ele iria executar as linhas da sequencia, que no caso representa o bloco :payon. Isto ocorre porque o macro plugin usa um esquema bastante arcaico baseado em blocos e chamadas para determinados pontos, linguagem modernas como o Visual Basic são bem diferentes.

 

Criando Variáveis E Usando Laços De Repetição

 

Este exemplo é um pouco mais complexo do que o anterior e serve para retiramos itens do armazém. A macro leva o personagem até a kafra de prontera, fala com ela e abre o storage, depois vai pegando os itens e avaliando se ainda cabe mais, e continua pegando até ficar pesado.

 

macro pegar {

 

# Vai para a kafra.

do ai manual

do move prontera 152 326

do talknpc 152 326 r1

pause 3

 

# Define variáveis

$contador = 0

$pesoMaximo = @eval(0.49*$.maxweight)

$quantidadeItens = @eval($::storage{items})

 

# Pega itens na kafra.

while ($contador < $quantidadeItens) as loop if ($.weight > $pesoMaximo) goto fim

do storage get $contador

$contador++

end loop

 

# Finaliza a macro pegar.

:fim

do storage close

do storage

 

}

 

Todas as linhas que começam com # são apenas comentários e são usadas para organizar melhor a macro. A parte que está abaixo do comentário #Vai para a kafra, apenas manda o personagem ir até kafra e abrir o armazém, depois ele da um pause de três segundos, isto porque ao abrir o storage pode haver algum lag, ainda mais se kafra estiver muito cheia.

 

Depois foram definidas algumas variáveis: $contador é quem irá controlar o loop e foi iniciado em zero. Já $pesoMaximo usa uma special keywords chamada @eval que no caso está servindo simplesmente para executarmos uma conta de multiplicação. Dentro desta mesma linha usamos também usamos uma variável especial que é $.maxweight, ela retorna o peso máximo que o personagem pode carregar. Já deu pra perceber que 0,49 vezes o peso máximo retorna 49% do peso máximo, sendo que este resultado será armazenado em $pesoMaximo.

 

Depois disso a variável $quantidadeItens irá receber a quantidade total de itens existentes no armazém. Então while ($contador < $quantidadeItens) as loop irá repetir tudo o que estiver entre ele e end loop desde que o $contador, que foi iniciado em zero seja menor que $quantidadeItens.

 

A cada execução do loop a linha do storage get $contador vai adicionar um item do armazém ao inventário e a linha $contador++ irá incrementar o contador e pular para o próximo item antes de reiniciar o processo. Nesse meio if ($.weight > $pesoMaximo) goto fim irá avaliar se peso do personagem, $.weight, é maior que o peso máximo que calculamos em $pesoMaximo = @eval(0.49*$.maxweight), se sim ele vai para :fim fechando o storage e terminando a macro.

 

Criando Macros Automáticas E Conclusão Final

 

Um recurso bastante interessante é o uso de automacro, com elas é possível chamar uma macro automaticamente, por exemplo, quando um personagem está em certo mapa, com um peso específico ou mesmo quando um GM cura um monstro, veja o exemplo:

 

automacro gmCurou {

priority 1

run-once 1

exclusive 1

console /^(Player \[GM\](.*) uses Curar on Monster .*)/

call deslogar

}

 

Basicamente a linha console /^(Player \[GM\](.*) uses Curar on Monster .*)/ faz com que a automacro seja executada quando aparecer as palavras ^(Player \[GM\](.*) uses Curar on Monster .*) no console, e então call deslogar chama a macro deslogar. Na macro deslogar você pode ser criativo e se teleportar, responder algo ao GM, ou simplesmente deslogar o personagem, as possibilidades são limitadas apenas pela sua imaginação e conhecimento.

 

Por isso é muito importante sempre usar a referência oficial do macro plugin, ela contém todas as informações de variáveis especiais, de eventos que podem ser usados em automacros e outras tabelas importantes. Além disso é preciso fazer um bom estudo dos comandos de console, e é claro, ter bastante talento para lidar com lógica de programação. É isso!

 

DOWNLOADS

 

Macro Plugin (Link Direto) :

 

 

[DOWN]

É necessário se cadastrar para acessar o conteúdo.
[/DOWN]

[sCAN]

É necessário se cadastrar para acessar o conteúdo.
[/sCAN]

 

 

 

Macro Plugin (Link SVN) :

 

É necessário se cadastrar para acessar o conteúdo.

 

 

CRÉDITOS

 

Froyd : Pelo Conteúdo , Organização e Desenvolvimento do Tópico .

SourceForge.net : Pela Disponibilização do Macro Plugin .

OpenKore.com : Ajuda no desenvolvimento do tutorial , em alguns trechos dos blocos de comandos apresentados .

Não espere Mudar sem Sacrifício: http://imageshack.com/a/img822/8134/wbba.png

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.