Como jogar 20,000 Jogos em Ticket to Ride sem realmente jogar

In this guide I’ll explain what counts for Conductor achievements and present you with 2 ways of reaching the final Level 5 conquista. Unfortunately slow progress and announcement of shutting down the servers pushed me to look for a new approach to unlock these achievements.

What counts for Conductor achievements

With some testing I came to a conclusion that only the following counts for Conductor achievements:

  • Online ranked games,
  • Solo games against bots
  • Tutorial games (sic!)

The progress for offline games (solo and tutorial) is stored locally.

The More Legit way

Sim, você leu certo, tutorial games count for the achievement and that’s what we’re gonna use.
Finishing one tutorial game takes ~70 seconds which is almost 4x faster than a game against bot (when farming).
70 seconds x 20,0000 games ~= 389 hours ~= 16 dias

We’ll use AutoHotkey, since going through tutorial 20,000 times manually would be extremely boring.
Below is my script, just make sure to:

  • Run it always on the same PCthe progress is not saved on the cloud/servers,
  • Use AutoHotkey v1.1, the script is not compatible with the newer version. Você pode baixá-lo em aqui.
  • Set your Display resolution to 1920×1080,
  • Run the game in Fullscreen mode,
  • Run the game and the ahk script, then press F2 key to start the script,
  • Stop the script with F3 key before you exit the game.
; This script will keep playing Ticket To Ride

F2::

SetDefaultMouseSpeed,6
WinWaitActive Ticket to Ride
Run()

F3::ExitApp


Run() {
    while true {
        StartNewTutorialGame()
        DrawTicket()
        se (CheckIsStuck()) {
            Reiniciar()
            Prosseguir
        }
        PlayMiamiAtlanta()
        PlayAtlantaWashington()
        DrawSecondAndFourth()
        PlayWashingtonNewYork()
        DrawNewTicket()
        DrawFourthAndDeck()
        PlayNewYorkMontreal()
        DrawNewTicket()
        DrawFourthAndFifth()
        PlayMontrealChicago()
        DrawSecondAndDeck()
        PlayChicagoDuluth()
        DrawSecondAndDeck()
        PlayDuluthDenver()
        ConfirmLastTurn()
        Draw2Deck()
        ClickForwardAndQuit()
    }
}

StartNewTutorialGame()
{
    ;Click Play
    Click, 713, 299
    Dorme, 1000
    ;Click Tutorial
    Click, 1061, 139
    Dorme, 1000
    ;Click Go
    Click, 1000, 839
    Dorme, 1000
}

DrawTicket()
{
    Clique, 1846, 345
    Dorme, 1000
    Clique, 1846, 903
    Dorme, 1000
}

PlayMiamiAtlanta()
{
    Clique, 1000, 959
    Dorme, 500
    Clique, 1506, 883
    Dorme, 1000
}

PlayAtlantaWashington()
{
    Clique, 1000, 959
    Dorme, 500
    Clique, 1496, 653
    Dorme, 1000
}

DrawSecondAndFourth()
{
    Dorme, 2000
    DrawSecond()
    DrawFourth()
}

PlayWashingtonNewYork()
{
    Clique, 1000, 959
    Dorme, 500
    Clique, 1566, 405
    Dorme, 1000
}

DrawNewTicket()
{
    Dorme, 1000
    ;Click Go
    Click, 1000, 939
    Dorme, 1000
    ;Click Ticket Pile
    Click, 1846, 100
    Dorme, 1000
    DrawTicket()
    Dorme, 1000
}

DrawFourthAndDeck()
{
    Dorme, 2000
    DrawFourth()
    DrawFromDeck()
}

PlayNewYorkMontreal()
{
    Clique, 850, 959
    Dorme, 500
    Clique, 1566, 305
    Dorme, 1000
}

DrawFourthAndFifth()
{
    Dorme, 2000
    DrawFourth()
    DrawFifth()
}

PlayMontrealChicago()
{
    Clique, 1000, 959
    Dorme, 500
    Clique, 1366, 305
    Dorme, 1000
}

DrawSecondAndDeck()
{
    Dorme, 1000
    DrawSecond()
    DrawFromDeck()
}

PlayChicagoDuluth()
{
    Clique, 1000, 959
    Dorme, 500
    Clique, 1166, 365
    Dorme, 1000
}

PlayDuluthDenver()
{
    Clique, 1000, 959
    Dorme, 500
    Clique, 876, 445
    Dorme, 1000
}

Draw2Deck()
{
    Dorme, 1000
    DrawFromDeck()
    DrawFromDeck()
}

ConfirmLastTurn()
{
    Dorme, 2000
    ;Click Go
    Click, 1000, 839
    Dorme, 1000
    Enviar, {Digitar 100}
}

DrawFirst()
{
    
}

DrawSecond()
{
    Clique, 1846, 345
    Dorme, 1000
}

DrawThird()
{

}

DrawFourth()
{
    Clique, 1846, 557
    Dorme, 1000
}

DrawFifth()
{
    Clique, 1846, 757
    Dorme, 1000
}

DrawFromDeck()
{
    Clique, 1846, 803
    Dorme, 1000
}

ClickForwardAndQuit()
{
    Dorme, 1000
    ; Forward
    Click, 1446, 957
    Dorme, 1000
    ; Quit
    Click, 877, 42
    Dorme, 1000
}

CheckIsStuck()
{
    PixelGetColor, cor, 1000, 550, RGB
    if (color = 0xF4EFE1)
    {
        Dorme, 1000
        return true
    }
    outro
    {
        return false
    }
}

Reiniciar()
{
    Dorme, 1000
    Enviar, {Escapar 100}
    Dorme, 1000
    Enviar, {Escapar 100}
    Dorme, 1000
    Enviar, {Digitar 100}
}

Feel free to experiment with DefaultMouseSpeed value and Sleep times, but I found above to be the most reliable. Tutorial sometimes get stuck during drawing the ticket, I’ve added some logic to restart it in case of that happening.

The Less Legit way

Se 390 hours is still too much and you feel like a bit of cheating is ok, then you can get there much much faster. The progress for offline games is stored locally in UserDefault.xml file. You can find it in local app data:

%localappdata%\Days of Wonder\Ticket to Ride\UserDefault.xml

Somente:

  1. Open the file in your favourite text editor (when the game is not running),
  2. Achar <NbSoloGamesPlayed> element <NbSoloGamesPlayed>12345</NbSoloGamesPlayed>
  3. Update the value to 200000 (or whatever you want) and save the file.
  4. Execute o jogo, feito. (Actually you might need to play one more game, didn’t test that).
Este guia sobre Bilhete de entrada Foi escrito por PapaSmok. Você pode visitar a publicação original neste link. Se você tiver alguma dúvida sobre este guia, por favor, não hesite em contactar-nos aqui.

Sobre o autor