^
Entrar

or


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(Proteção da Natureza: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 Proteção da Natureza 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(Presença Esmeralda).exists' ou 'aura(Presença Esmeralda).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(Presença Esmeralda).exists], que pode ser traduzida como "lance Presença Esmeralda se minha mascote Protodragonete de Esmeralda tem a habilidade Presença Esmeralda 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(Presença Esmeralda).exists], traduzida como "lance Presença Esmeralda se minha mascote Protodragonete de Esmeralda NÃO tiver a habilidade Presença Esmeralda ativa". Eba!

use(Presença Esmeralda:597) [!self(Protodragonete de Esmeralda).aura(Presença Esmeralda).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(Presença Esmeralda).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(Presença Esmeralda: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(Entocar: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(Entocar:340).exists]
use(Passagem de Bombardeio)
endif
use(Sopro)

5. Links adicionais






54 Comentários (EN)

Show first:


You must be logged in to vote on comments

1

You must be logged in to vote on comments

Threewolves

sobrescrito 08/01/2020

Can the numerical list of pet families be added here? I'm have trouble finding the numerical indicator for critters/mech/dragonkin, etc.
You must be logged in to vote on comments

2

You must be logged in to vote on comments

DragonsAfterDark

sobrescrito 08/01/2020

Should be the order they come up in on the Rematch bar.

1: Humanoid
2: Dragonkin
3: Flying
4: Undead
5: Critter
6: Magic
7: Elemental
8: Beast
9: Aquatic
10: Mechanical
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Shenk

sobrescrito 08/01/2020

it's the order in which the families are listed in rematch
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Threewolves

sobrescrito 08/02/2020

Thx y'all. Just what I was looking for.
You must be logged in to vote on comments

2

You must be logged in to vote on comments

Zurdo

sobrescrito 07/15/2020

Script to help farm rare pets

quit [enemy(#1).quality!=4 & enemy(#2).quality!=4 & enemy(#3).quality!=4]
quit [enemy(#1).quality!=4 & enemy(#2).quality!=4 & !enemy(#3).exists]
quit [enemy(#1).quality!=4 & !enemy(#2).exists & !enemy(#3).exists]
test(Rare pet found!)

Will quit on press if no rare found, if found, need to quit manually and battle with team of your choice.

Enjoy hunting (edited)
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Amber1019

sobrescrito 03/12/2020

How do I find aura spell IDs?
For example, I need the aura ID for "Pumped Up" that striders get after using the ability "Pump" (ID:297).
I'm wanting my moths to use their Cocoon Strike (ID: 506) if "Pumped Up" is found to be an active aura on the enemy team. But Rematch doesn't put abilities IDs in auras/buffs.

Would be great if the TD Script addon could record your moves and create a script for you, somehow. :( lol

Edit/Update: I remembered that wowhead has spell IDs in its URL for spells/auras/etc.
For example, Pumped Up is ID 296, as seen in this URL:
https://www.wowhead.com/pet-ability=296/pumped-up

I'd still appreciate if anyone else knows of ways to get IDs of things Rematch doesn't give. (edited)
You must be logged in to vote on comments

2

You must be logged in to vote on comments

Shenk

sobrescrito 03/12/2020

usually (!) the ID of an aura comes right before the spell that applies it, like in your pump example.
the easiest way to see the ID is by just using in ingame within a script, since td will give you the auto-fill option that also adds the aura's ID by itself
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Amber1019

sobrescrito 03/14/2020

Yeah, I've begun to notice that trend with the IDs. Thank you! :)
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Pankracy#2378

sobrescrito 02/23/2020

Great staff ;))). Yet it's still quite a BLACK MAGIC for me ;(((. For instance, I have completely no idea what should I write the script to swap slot 1 pet to slot 2 carry pet and then slot 3 pet. Also it's still REALLY unclear for me HOW to write, what steps should be used as well as what words should be used (there is nothing about it in this article and, well, sorry but I am NOT programmer, math and physics were always totally understandable for me, so all that staff looks like rocket science and I simply DO NOT understad it ;(((. Can you please PM me full guide STEP BY STEP, what command, brackets, comas, numbers and so on should be used when ??? Thanks in advance (edited)
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Lazey

sobrescrito 02/23/2020

A good start is to try to understand (and learn from) other peoples' scripts, especially on this page where you see the intended usage of abilities, priorities, pet changes.

If that is not for you, it would be best to link/describe a specific situation/fight that you want to do try to write a script for (or want to understand an existing one). And maybe use the Discord that is linked on the front page, formatting/editing is easier there.
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Pankracy#2378

sobrescrito 02/27/2020

Thank you so much for quick answer ;). Actually I didn’t look at this from such point of view - simply look at someone else’s script to see how it was written command by command. Will try then, thanks once more, KUDOS !!!!
(edited)
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Theaxx

sobrescrito 01/25/2020

How do you find the ID of a certain pet?
You must be logged in to vote on comments

2

You must be logged in to vote on comments

Lazey

sobrescrito 01/25/2020

If you're talking about Species-ID and you're using Rematch, you can find that ID for your own pets on the pet cards if you activated Species-IDs and Ability-IDs in pet card options.

Since we're in the tdBPS section I guess you have it installed, so another easy way (especially for enemy pets) is to start the fight and open the script editor and then start typing something like "if [ enem" and then let the AutoFill do it's magic. If you select the names it should add the Species-ID too. (edited)
You must be logged in to vote on comments

0

You must be logged in to vote on comments

Sally sobrescrito 09/23/2019

I am working on a script vs Eleanor. He has a deadly charge "Death Bleat", that I want to kick.
I need to use kick on the round after he used "Death Bleat", when the ability has 7 turns cooldown. I have not found anything in the API to check for cooldown left.
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Remte

sobrescrito 09/24/2019

The cooldown doesn't start until the damage is released, so it'd still be 8 turns (but no risk of repeating that because of an interrupt's cooldown).
You must be logged in to vote on comments

1

You must be logged in to vote on comments

DragonsAfterDark

sobrescrito 09/24/2019

I'm assuming you mean that Death Bleat is a two-round ability, and you need to Kick on the second part before it can charge?

You can go about that in one of two ways:

ability(Kick:307) [enemy.aura

Using this method, you need to wait until Eleanor has done the first round of Death Bleat. Once they do the first round, and you start typing in aura for the script, it should give you a list of all the auras on Eleanor, and one of them should be whatever comes up for their first round of Death Bleat. It would end up looking like:

ability(Kick:307) [enemy.aura(Whatever the Aura's Name is Here).exists]

Or, as Remte pointed out, if the CD doesn't start until the damage is released, you'd need to do something like this:

ability(Kick:307) [enemy.ability(Death Bleat's Code Here).duration=8]

You'll get the specific code for Eleanor's Death Bleat when you start typing in ability. I only have player pet codes copied down, and not enemy pets, so I can't say what the code will look like.
You must be logged in to vote on comments

-6

You must be logged in to vote on comments

JaneDoe sobrescrito 03/24/2019

Is it possible to use TD Script WITHOUT that terrible REMATCH?
You must be logged in to vote on comments

3

You must be logged in to vote on comments

Lazey

sobrescrito 04/12/2019

Maybe No, because Rematch is not terrible at all ;-) And Yes, tdBPS should work standalone too, but far more difficult for selecting saved scripts because all is optimized for the combination of these two addons.
You must be logged in to vote on comments

0

You must be logged in to vote on comments

Hodaress sobrescrito 03/11/2019

During the script creation, where are the scripts saved to?

That is, which file is modified. I've backed up my teams and thought I was also backing up my scripts. However, during the most recent WoW update, my WTF folder was corrupted and I had to restore from an earlier version I had saved to a different hard drive last month. This WTF folder had all of my saved teams and scripts but although the teams restored, the scripts did not. So, I'm look for where the scripts are stored so I can also back that file up also.

Any suggestions?
You must be logged in to vote on comments

2

You must be logged in to vote on comments

Lazey

sobrescrito 04/12/2019

World of Warcraft_retail_WTFAccountACCOUNTNAMESavedVariablestdBattlePetScript.lua
You must be logged in to vote on comments

0

You must be logged in to vote on comments

Sarah sobrescrito 02/17/2019

Yeah.... This is far too complicated for my tiny non-tech-savvy brain. For the life of me, I can't get any of my own TD scripts to work :( I have all my steps/guides typed out in the Notes for each team, but I'm having major trouble actually creating a functional/working script.
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Puny

sobrescrito 12/30/2019

I'm in the same boat, I have no idea how to get anything working. I just wanted to be able to use the scripts from this site already set up but there is no step by step instructions on how to do that. I really need an idiot's guide.
You must be logged in to vote on comments

1

You must be logged in to vote on comments

DragonsAfterDark

sobrescrito 12/30/2019

How to use the scripts are on a different page: https://www.wow-petguide.com/index.php?m=UsingTDScripts

:)
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Kiwicat#21513

sobrescrito 12/04/2018

Thank you so much for this guide and thanks to whoever invented TD script and rematch <3
I created my first script today and it was so satisfying when I finally got it to succeed. In the beginning, all the commands made no sense to me, but now its like I learned a new language ^^
You must be logged in to vote on comments

1

You must be logged in to vote on comments

Loeve sobrescrito 11/22/2018

What is the difference between "Rematch string" and TD String" ?I see both when I look at your pet battle strategies
You must be logged in to vote on comments

4

You must be logged in to vote on comments

Eekwibble

sobrescrito 11/23/2018

Rematch strings are copy/pasteable macros that you can import and export into and out of the addon Rematch. These strings import teams of pets to the given position in the in-game graphic for the selected opponent and also includes the abilities that have been chosen.

TDScripts work on the same principle but with a much easier to understand code. Scripts are for the actual battles themselves. They are the code the game uses to apply the moves you select.

I find it easiest to think of it as the 'TD' standing for 'Top Down', meaning the code written will read from the top line to the bottom, and as each conditional is met - i.e.; your pet does something (or doesn't, if the command was 'standby') - the script restarts at the top.

TL:DR:
Rematch is an addon that allows for easier customisation of pets for specific battles than the standard UI;
tdBattlePetScript is a plug-in for Rematch that allows specific moves to be used in a programmed format to complete battles at the repeated press of a single button (that makes it sound boring; it isn't... It's awesome...).
You must be logged in to vote on comments

2

You must be logged in to vote on comments

HarleyDoc

sobrescrito 10/10/2018

I am definitely an amateur pet battler at best, but I'm slowly immersing myself in the loads of information and strategies. I have a question though. What is the real purpose behind the TD scripts? Why not just push the buttons and do the battles manually? I'm only asking because I honestly don't get it.
You must be logged in to vote on comments

0

You must be logged in to vote on comments

Killdozer sobrescrito 10/15/2018

Some battles are fixed. The npc will always use it's moves in a certain order each time. The scripts use the moves of a predetermined rematch team to win. You basically just press one button that selects the moves in a predetermined order that will lead to a win.
You must be logged in to vote on comments

2

You must be logged in to vote on comments

Kranthos

sobrescrito 11/05/2018

If you do the pet battle world quests you'll probably use the same team and strategy each time you face a particular trainer - as Killdozer says, most trainer NPCs use scripted strategies that become predictable. Using the Rematch add-in lets you store the team, and the TD script add-in lets you store and automate the associated strategy, rather than having to remember them every time. You can use Rematch's note feature to record your strategy for a particular team if you prefer not to automate it with a TD script.