^

TD Scripts

1. Pré-requisitos


Para este guia, é necessário instalar os seguintes addons: Rematch, tdBattlePetScript, tdBattlePetScript Rematch. Presume-se que a instalação e configuração estão prontas, e os times estão salvos ou são fáceis de serem configurados.

2. Como funciona


Basicamente o addon seleciona a habilidade apropriada seguindo instruções escritas no script. Ex.:

use(Esquivar:312)
use(Proteção da Natureza:574) [!self.aura(Unknown Ability (ID: 820):820).exists]
use(Golpe Alfa:504)
As linhas acima resultam nas seguintes ações:
rodada 1: lança Esquivar
rodada 2: tenta lançar Esquivar, mas como está recarregando, segue para a linha seguinte e lança Proteção da Natureza
rodada 3: tenta lançar Esquivar, mas como está recarregando, segue para a linha seguinte. Como a aura Unknown Ability (ID: 820) está ativa, segue para linha seguinte e lança Golpe Alfa, e assim por diante.

Resumindo: cada linha é lida sequencialmente até encontrar um comando que pode ser executado. O desafio é escrever scripts capazes de lançar as habilidades de acordo com a estratégia selecionada.

3. Criação de scripts


3.1 O editor



A maneira mais simples de escrever um script é durante a batalha com o time previamente salvo no Rematch.
Depois de começar a batalha, abra o Rematch, clique com o botão direito sobre o respectivo time e selecione 'Write script'.
Uma nova janela será aberta, o 'Script editor'. Durante a batalha e enquanto o editor estiver ativo é possível escrever os scripts usando a funcionalidade de auto-completar.










Com o editor de scripts abert e durante a batalha, comece a digitar a ação desejada e logo aparecerá uma lista do tipo 'dropdown'.







Após selecionar uma ação (digite 'Ente'r ou clique sobre a ação) uma nova lista com as habilidades disponíveis para a mascote ativa será mostrada.






Novamente, selecione a ação desejada e, caso necessário, as condições para que esta ação seja executada. Comece digitando um colchete '[' seguido pela primeira letra da condição. As opções são: target (self, enemy) ou weather (clima).





De qualquer forma, uma nova lista será apresentada, se houver uma.









Caso parâmetros adicionais sejam necessários, como com as auras, uma nova lista será apresentada. Como antes, selecione a opção apropriada.

Uma vez familiarizado com os comandos, é possível iniciar digitando um comando seguido por um ponto para ativar a lista com as opções disponíveis. Lembre-se de fechar a condição com outro colchete: ']'.


Escrever e editar um script não é difícil pois o addon traz uma lista de comando, tornando a tarefa bem mais fácil. Boa sorte!


3.2 Ações


ability/use: lança uma habilidade
change: troca as mascotes
catch: captura uma mascote, se possível
standby: passa uma rodada
quit: sai da batalha

3.3 Condições


Condições são escritas entre colchetes ([condition]):
if & endif

3.4 Alvo


self: verifica por uma condição nas suas mascotes
enemy: verifica por uma condição nas mascotes do seu inimigo

3.5 Funções


dead (boolean)
hp (compare)
hp.full (boolean)
hpp (compare)
aura.exists (boolean)
aura.duration (compare)
weather (boolean)
active (boolean)
ability.usable (boolean)
ability.duration (compare)
ability.strong (boolean)
ability.weak (boolean)
ability.type (equality)
round (boolean)
played (boolean)
speed (compare)
speed.fast (boolean)
speed.slow (boolean)
level (compare)
level.max (boolean)
power (compare)
type (equality)
quality (compare)

4. Exemplo prático


Embora o editor ajude muito com a funcionalidade de auto-completar, não é suficiente para escrever bons scripts. Uma boa idéia é escolher uma batalha e brincar com o editor até se sentir mais confiante com os comandos e poder escrever scripts mais complexos. Abaixo há uma lista de exemplos de mestres de mascotes que usam estratégias específicas. Presume-se que o time está carregado, as habilidades selecionadas foram aquelas mencionadas na estratégia, e que a mascote recomendada está sendo usada e não uma mascote equivalente.

4.1 Bichos Ululantes


A masmorra 'Bichos Ululantes' oferece uma excelente oportunidade para aprimorar suas habilidades. Até vencer a última batalha, as batalhas podem ser repetidas e é possível sair da masmorra, curar as mascotes e reiniciar. Há algumas mascotes aleatórias nas batalhas, mas somente poucas famílias e poucas habilidades. As 3 primeiras batalhas requerem uma mascote com um conjunto fixo de habilidades, fazendo dela um ótimo lugar para praticar. O script pode funcionar para a maioria das batalhas onde o mesmo conjunto de mascotes + habilidades é usado, tornando este script muito útil. O link para a estratégia é here.
A estratégia:
Prio 1: Manter Presença Esmeralda ativa
Prio 2: Usar Sonho Esmeralda quando os pontos de vida estiverem abaixo de ~1000
Prio 3: Mordida Esmeralda

use(Presença Esmeralda:597)
use(Sonho Esmeralda:598)
use(Mordida Esmeralda:525)
Da maneira como está escrito, o script lançará Presença Esmeralda sempre que estiver disponível. Como esta habilidade não possui recarga, é preciso adicionar uma condição que impeça o lançamento caso a aura já esteja presente.
As condições disponíveis são 'aura(Unknown Ability (ID: 823)).exists' ou 'aura(Unknown Ability (ID: 823)).duration'. A condição que parece se ajustar melhor é a primeira.
Após a alteração, teremos use(Presença Esmeralda:597) [self(#1Protodragonete de Esmeralda).aura(Unknown Ability (ID: 823)).exists], que pode ser traduzida como "lance Presença Esmeralda se minha mascote Protodragonete de Esmeralda tem a habilidade Unknown Ability (ID: 823) ativa".
Queremos o oposto disso, então negue a condição usando '!' antes do início da condição: use(Presença Esmeralda:597) [!self(#1Protodragonete de Esmeralda).aura(Unknown Ability (ID: 823)).exists], traduzida como "lance Presença Esmeralda se minha mascote Protodragonete de Esmeralda NÃO tiver a habilidade Unknown Ability (ID: 823) ativa". Eba!

use(Presença Esmeralda:597) [!self(Protodragonete de Esmeralda).aura(Unknown Ability (ID: 823)).exists]
Próximo passo: agora, o scripts lançará Sonho Esmeralda sempre que estiver disponível, que pode não ser desejado, especialmente no início da batalha. Adicionemos outra condição que lançará a habilidade quando o dragonete estiver com a vida baixa.

use(Sonho Esmeralda:598) [self(Protodragonete de Esmeralda).hp<1000]
Você pode optar por curar sua mascote se ela estiver com a vida abaixo de um percentual ao invés de um valor determinado:

use(Sonho Esmeralda:598) [self(Protodragonete de Esmeralda).hpp<50]
Esta última condição lançará Sonho Esmeralda quando seu dragonete estiver abaixo dos 50% de vida.
O script final:

use(Presença Esmeralda:597) [!self(Protodragonete de Esmeralda).aura(Unknown Ability (ID: 823)).exists]
use(Sonho Esmeralda:598) [self(Protodragonete de Esmeralda).hp<1000]
use(Mordida Esmeralda:525)
Caso seu dragonete morra, é possível trocar por outro equivalente com as mesmas habilidades, e o script continuará funcionando. Para trocar as mascotes, adicione a seguinte linha: change(#2) [self(#1).dead] (troque para a mascote 2 se a mascote 1 estiver morta)

Algumas considerações sobre a maneira como o script está escrito.
  • Se seu time tiver duas mascotes Protodragonete de Esmeralda, o script pode não funcionar conforme o esperado caso você troque de mascotes. Para evitar problemas, ao invés de especificar a mascote, use a posição do time, ou somente 'self'. Isto permite usar uma mascote diferente com as mesmas habilidade, como Dragonetinho Onírico ou Dragonetinho Esmeralda
  • Não use a posição da habilidade para lançar habilidades. Pode causar problemas se você usar uma alternativa cujas habilidades estão em posições distintas, como no caso dos dinossauros Zandalari, onde as habilidades Grupo de Caça e Garra Negra estão em uma posição diferente.
  • Use o código da habilidade ou o nome seguido do código. Alguns jogadores podem estar usando o jogo numa linguagem diferente da sua, e para estes o script deixa de funcionar no caso de se suar somente o nome das habilidades
  • É possível deixar somente o código da habilidade, que resulta em um script mais curto, mas não é necessário

Uma sugestão para todos os scripts (altere conforme necessário):

change(#2) [self(#1).dead]
use(Presença Esmeralda:597) [!self.aura(Unknown Ability (ID: 823):823).exists]
use(Sonho Esmeralda:598) [self.hp<1000]
use(Mordida Esmeralda:525)

4.2 Fragmentos


Os scripts são escritos para uma estratégia específica, mas há algumas ações comuns que podem ser usadas em muitos scripts. Ajuste-os às suas necessidades, verificando as condições corretas, e as use quando apropriado.
  • Passar na primeira rodada:
standby [round=1]
  • Trocar para um pet de nível baixo e de volta (mude a posição para os valores apropriados):

change(#2) [self(#1).dead & !self(#2).played]
change(#3) [self(#2).active]
  • Usar uma habilidade defensiva (esquiva) para bloquear uma habilidade inimiga (neste caso, Escavar)

use(Deflexão:490) [enemy.aura(Unknown Ability (ID: 340):340).exists]
  • Mudar o conjunto de habilidades usadas dependendo da mascote inimiga ativa

Se as mascotes inimigas ativas são as duas primeiras, a sua mascote lançará Sopro. Quando a terceira mascote entra na luta, sua mascote lançará Passagem de Bombardeio quando disponível e Isca caso seu inimigo lance Escavar

if [enemy(#3).active]
use(Isca) [enemy.aura(Unknown Ability (ID: 340):340).exists]
use(Passagem de Bombardeio)
endif
use(Sopro)

5. Links adicionais






ThomasHah escreveu em 2019-09-07 15:37:34

Приветик всем, я тут новенький "352"

Novo Comentário:





































Nome:

Ligação: