levelbot
30/04/2006, 23:35:48
AGUARDANDO REVISÃO OPENKORE 2.0.7 / MACRO PLUGIN 2.0.2
by K
Guia para iniciantes em utilização de variáveis
Fiz esse guia pela deficiência do manual do Macro SVN em variáveis, pois muitas pessoas tem uma certa dificuldade no mesmo.
---> Tipos de variáveis
Há 4 tipos de variáveis atualmente.
As variáveis simples, definidas por $x = x, as variáveis especiais já definidas pelo macro svn, as variáveis aninhadas (ou dinâmicas.) e as variáveis definidas pelo kore.
---> Setando ou diferindo uma variável
Você pode setar uma variável utilizando $nomedavariável = valordavariavel.
Ex:
$i = oi
$i = 3
Você pode setar uma variável com por um conjunto de variáveis, por palavras, letras, números ou comandos do kore. Unset é usado quando ela ainda não está definida.
Ex:
$i = @eval ($o - $k * $l)
$i = oi
$i = unset
Para setar uma variável já definida pelo kore, usa-se @eval (return <variável>) (no caso de valores utiliza-se @eval.
Ex:
$i = @eval (return $::char->{pos}{x})
$o = @eval ($i - 3)
Para setar uma variável dinâmica utiliza-se ${<variavel>}
Ex:
${$.lastpm}
---> Variáveis especiais
São as variáveis já definidas pelo macro svn, e você pode encontra-las no manual.
* $.map - o mapa que você está ("prontera")
* $.pos - sua posição atual ("123 234")
* $.time - tempo atual descrito no padrão unix timestamp ("1131116304")
* $.datetime - data e hora atual ("Fri Nov 4 15:59:36 2005")
* $.lastLogMsg - o texto que ativou a ultima condição da automacro "console" (ultimo texto visto no console)
* $.lastpub - o nome do jogador que ativou a ultima condição de automacro "pubm" (ultima pessoa que mandou mensagem publica)
* $.lastpubMsg - o que foi escrito
* $.lastpm - o nome do jogador que ativou a ultima condição da automacro "pm" (ultima pessoa que mandou PM)
* $.lastpmMsg - o que foi escrito
* $.lastguild - o nome do jogador que ativou a ultima condição da automacro "guild" (ultima pessoa que mandou mensagem pela guild)
* $.lastguildMsg - o que foi escrito
* $.lastparty - nome do jogador que ativou a ultima condição da automacro "party" (ultima pessoa que mandou mensagem pela party)
* $.lastpartyMsg - o que foi escrito
* $.lastMonster - nome do monstro que ativou a ultima condição da automacro "monster" (ultimo monstro que foi visto)
* $.lastMonsterPos - ultima posição conhecida do monstro ("123 234 prontera")
* $.lastMatchN - referências para a ultima regexp avaliada
* $.paramN - Parâmetros de linha de comando
* $.caller - O nome da ultima automacro triggered (engatilhada/ativada/dentre outros)
---> Variáveis dinâmicas / aninhadas
Estas são meio complicadas.
Você pode definir uma variável já definida dando-a um valor dinâmico.
É muito útil no caso de macros de resposta, pois ele vai setar um valor pra cada pessoa que ativar a automacro, dai o nome dinâmica.
Você deve sempre setar a variável de acordo com a condição que a automacro foi ligada.
Ex:
pubm - $.lastpub
pm - $.lastpm
guild - $.lastguild
Exemplo:
automacro oiz {
pubm /oi/,15
varvar .lastpub unset
call oi
}
automacro oiz2 {
pubm /oi/,15
varvar .lastpub >= 1
call oi
}
macro oi {
if (${$.lastpub} unset) goto ver0
if (${$.lastpub} = 1} goto ver1
if (${$.lastpub} >= 2} goto ver2
:ver0
${$.lastpub}++
do oiz
:ver1
${$.lastpub}++
do pum
:ver2
${$.lastpub}++
do caçarpuringo
}
Nesse caso a primeira vez que alguem falar oi ele vai promover o comando oiz, na segunda vez ele ira fazer "pum" e na terceira irá caçarpuringos.
Variáveis dinâmicas não são desdefinidas quando alguém diferente ativa as automacros.
Lembrando que o comando ${$.lastpub}++ aumenta em 1 o valor da automacro.
---> Variáveis definidas pelo kore
São as variáveis definidas pelo kore e por uso dele. Você pode acha-las fuçando no código fonte dele, principalmente no arquivo functions.pl encontrado na pasta src.
São utilizadas pela tag $::'tipodevariavel'->{valor}
Ex:
$::char->{exp}
$::storage->{item}
$::item->{name}
---> Utilizando if e goto
Eu sei que isso tem no manual, mas vou dar uma complementada aqui.
Nas automacros é possivel usar if $x = <valor>.
É possivel usar:
=
Ativa quando a variável está igual ao valor setado.
Ex:
if $i = 1
Vai ativar quando $i está 1.
>= e >
Ativa quando a variável está maior que e maior, respectivamente.
<= e <
Ativa quando a variável está menor que e maior, respectivamente.
!=
Ativa quando a variável está diferente do valor especificado.
Resumindo:
= | igual à
>= | maior ou igual à
> | maior que
<= | menor ou igual à
< | menor que
!= | diferente de
Você também pode utilizar if nas macros, complementadas por um goto.
Exemplo:
macro adz {
if ($i = 1) goto one
if ($i = 2) goto two
:one
do isso
do akilo
:two
do akilo
do isso
:fim
}
Resumindo:
if - Ativa a automacro se o valor especificado bate com a condição.
goto - Ativa uma série de comandos.
Você pode criar as famílias de comandos no goto adicionando um :<nomedafamilia> antes dos comandos.
--->While e as
Adimito que sou meio n00bz0rs nessa parte, seculpe.
Mas vou fazer o que posso.
"While" é utilizado como "enquanto". Isso mesmo, traduzindo. "As" é utilizado para nomear o while.
O while funciona assim:
Ele irá rodar tal ação enquanto a variável estiver de acordo com a condição.
Exemplo:
macro xaxasdas {
$x = 1
while ($x > 50) as oixix
do tele
$x++
end oixix
}
Neste caso ele teleportar até que $x esteja maior que 50.
"as oixix" nomeia o while, é apenas para você poder dar um fim a ele.
"end oixix" termina o while.
:pi #Familia
do oamdoia #comandos
:pi2 #Familia
do aocxmaix #comandos
###
Espero que ajude! :) Dúvidas, postem aqui!
by K
Guia para iniciantes em utilização de variáveis
Fiz esse guia pela deficiência do manual do Macro SVN em variáveis, pois muitas pessoas tem uma certa dificuldade no mesmo.
---> Tipos de variáveis
Há 4 tipos de variáveis atualmente.
As variáveis simples, definidas por $x = x, as variáveis especiais já definidas pelo macro svn, as variáveis aninhadas (ou dinâmicas.) e as variáveis definidas pelo kore.
---> Setando ou diferindo uma variável
Você pode setar uma variável utilizando $nomedavariável = valordavariavel.
Ex:
$i = oi
$i = 3
Você pode setar uma variável com por um conjunto de variáveis, por palavras, letras, números ou comandos do kore. Unset é usado quando ela ainda não está definida.
Ex:
$i = @eval ($o - $k * $l)
$i = oi
$i = unset
Para setar uma variável já definida pelo kore, usa-se @eval (return <variável>) (no caso de valores utiliza-se @eval.
Ex:
$i = @eval (return $::char->{pos}{x})
$o = @eval ($i - 3)
Para setar uma variável dinâmica utiliza-se ${<variavel>}
Ex:
${$.lastpm}
---> Variáveis especiais
São as variáveis já definidas pelo macro svn, e você pode encontra-las no manual.
* $.map - o mapa que você está ("prontera")
* $.pos - sua posição atual ("123 234")
* $.time - tempo atual descrito no padrão unix timestamp ("1131116304")
* $.datetime - data e hora atual ("Fri Nov 4 15:59:36 2005")
* $.lastLogMsg - o texto que ativou a ultima condição da automacro "console" (ultimo texto visto no console)
* $.lastpub - o nome do jogador que ativou a ultima condição de automacro "pubm" (ultima pessoa que mandou mensagem publica)
* $.lastpubMsg - o que foi escrito
* $.lastpm - o nome do jogador que ativou a ultima condição da automacro "pm" (ultima pessoa que mandou PM)
* $.lastpmMsg - o que foi escrito
* $.lastguild - o nome do jogador que ativou a ultima condição da automacro "guild" (ultima pessoa que mandou mensagem pela guild)
* $.lastguildMsg - o que foi escrito
* $.lastparty - nome do jogador que ativou a ultima condição da automacro "party" (ultima pessoa que mandou mensagem pela party)
* $.lastpartyMsg - o que foi escrito
* $.lastMonster - nome do monstro que ativou a ultima condição da automacro "monster" (ultimo monstro que foi visto)
* $.lastMonsterPos - ultima posição conhecida do monstro ("123 234 prontera")
* $.lastMatchN - referências para a ultima regexp avaliada
* $.paramN - Parâmetros de linha de comando
* $.caller - O nome da ultima automacro triggered (engatilhada/ativada/dentre outros)
---> Variáveis dinâmicas / aninhadas
Estas são meio complicadas.
Você pode definir uma variável já definida dando-a um valor dinâmico.
É muito útil no caso de macros de resposta, pois ele vai setar um valor pra cada pessoa que ativar a automacro, dai o nome dinâmica.
Você deve sempre setar a variável de acordo com a condição que a automacro foi ligada.
Ex:
pubm - $.lastpub
pm - $.lastpm
guild - $.lastguild
Exemplo:
automacro oiz {
pubm /oi/,15
varvar .lastpub unset
call oi
}
automacro oiz2 {
pubm /oi/,15
varvar .lastpub >= 1
call oi
}
macro oi {
if (${$.lastpub} unset) goto ver0
if (${$.lastpub} = 1} goto ver1
if (${$.lastpub} >= 2} goto ver2
:ver0
${$.lastpub}++
do oiz
:ver1
${$.lastpub}++
do pum
:ver2
${$.lastpub}++
do caçarpuringo
}
Nesse caso a primeira vez que alguem falar oi ele vai promover o comando oiz, na segunda vez ele ira fazer "pum" e na terceira irá caçarpuringos.
Variáveis dinâmicas não são desdefinidas quando alguém diferente ativa as automacros.
Lembrando que o comando ${$.lastpub}++ aumenta em 1 o valor da automacro.
---> Variáveis definidas pelo kore
São as variáveis definidas pelo kore e por uso dele. Você pode acha-las fuçando no código fonte dele, principalmente no arquivo functions.pl encontrado na pasta src.
São utilizadas pela tag $::'tipodevariavel'->{valor}
Ex:
$::char->{exp}
$::storage->{item}
$::item->{name}
---> Utilizando if e goto
Eu sei que isso tem no manual, mas vou dar uma complementada aqui.
Nas automacros é possivel usar if $x = <valor>.
É possivel usar:
=
Ativa quando a variável está igual ao valor setado.
Ex:
if $i = 1
Vai ativar quando $i está 1.
>= e >
Ativa quando a variável está maior que e maior, respectivamente.
<= e <
Ativa quando a variável está menor que e maior, respectivamente.
!=
Ativa quando a variável está diferente do valor especificado.
Resumindo:
= | igual à
>= | maior ou igual à
> | maior que
<= | menor ou igual à
< | menor que
!= | diferente de
Você também pode utilizar if nas macros, complementadas por um goto.
Exemplo:
macro adz {
if ($i = 1) goto one
if ($i = 2) goto two
:one
do isso
do akilo
:two
do akilo
do isso
:fim
}
Resumindo:
if - Ativa a automacro se o valor especificado bate com a condição.
goto - Ativa uma série de comandos.
Você pode criar as famílias de comandos no goto adicionando um :<nomedafamilia> antes dos comandos.
--->While e as
Adimito que sou meio n00bz0rs nessa parte, seculpe.
Mas vou fazer o que posso.
"While" é utilizado como "enquanto". Isso mesmo, traduzindo. "As" é utilizado para nomear o while.
O while funciona assim:
Ele irá rodar tal ação enquanto a variável estiver de acordo com a condição.
Exemplo:
macro xaxasdas {
$x = 1
while ($x > 50) as oixix
do tele
$x++
end oixix
}
Neste caso ele teleportar até que $x esteja maior que 50.
"as oixix" nomeia o while, é apenas para você poder dar um fim a ele.
"end oixix" termina o while.
:pi #Familia
do oamdoia #comandos
:pi2 #Familia
do aocxmaix #comandos
###
Espero que ajude! :) Dúvidas, postem aqui!