Come giocare 20,000 Games in Ticket to Ride Without Actually Playing it

In this guide I’ll explain what counts for Conductor achievements and present you with 2 ways of reaching the final Level 5 risultato. 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

sì, hai letto bene, 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 giorni

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. You can download it from qui.
  • 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()) {
            Ricomincia()
            Continua
        }
        PlayMiamiAtlanta()
        PlayAtlantaWashington()
        DrawSecondAndFourth()
        PlayWashingtonNewYork()
        DrawNewTicket()
        DrawFourthAndDeck()
        PlayNewYorkMontreal()
        DrawNewTicket()
        DrawFourthAndFifth()
        PlayMontrealChicago()
        DrawSecondAndDeck()
        PlayChicagoDuluth()
        DrawSecondAndDeck()
        PlayDuluthDenver()
        ConfirmLastTurn()
        Draw2Deck()
        ClickForwardAndQuit()
    }
}

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

DrawTicket()
{
    Clic, 1846, 345
    Sonno, 1000
    Clic, 1846, 903
    Sonno, 1000
}

PlayMiamiAtlanta()
{
    Clic, 1000, 959
    Sonno, 500
    Clic, 1506, 883
    Sonno, 1000
}

PlayAtlantaWashington()
{
    Clic, 1000, 959
    Sonno, 500
    Clic, 1496, 653
    Sonno, 1000
}

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

PlayWashingtonNewYork()
{
    Clic, 1000, 959
    Sonno, 500
    Clic, 1566, 405
    Sonno, 1000
}

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

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

PlayNewYorkMontreal()
{
    Clic, 850, 959
    Sonno, 500
    Clic, 1566, 305
    Sonno, 1000
}

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

PlayMontrealChicago()
{
    Clic, 1000, 959
    Sonno, 500
    Clic, 1366, 305
    Sonno, 1000
}

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

PlayChicagoDuluth()
{
    Clic, 1000, 959
    Sonno, 500
    Clic, 1166, 365
    Sonno, 1000
}

PlayDuluthDenver()
{
    Clic, 1000, 959
    Sonno, 500
    Clic, 876, 445
    Sonno, 1000
}

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

ConfirmLastTurn()
{
    Sonno, 2000
    ;Click Go
    Click, 1000, 839
    Sonno, 1000
    Inviare, {accedere 100}
}

DrawFirst()
{
    
}

DrawSecond()
{
    Clic, 1846, 345
    Sonno, 1000
}

DrawThird()
{

}

DrawFourth()
{
    Clic, 1846, 557
    Sonno, 1000
}

DrawFifth()
{
    Clic, 1846, 757
    Sonno, 1000
}

DrawFromDeck()
{
    Clic, 1846, 803
    Sonno, 1000
}

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

CheckIsStuck()
{
    PixelGetColor, colore, 1000, 550, RGB
    if (color = 0xF4EFE1)
    {
        Sonno, 1000
        return true
    }
    altro
    {
        return false
    }
}

Ricomincia()
{
    Sonno, 1000
    Inviare, {Fuga 100}
    Sonno, 1000
    Inviare, {Fuga 100}
    Sonno, 1000
    Inviare, {accedere 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

Appena:

  1. Open the file in your favourite text editor (when the game is not running),
  2. Trova <NbSoloGamesPlayed> element <NbSoloGamesPlayed>12345</NbSoloGamesPlayed>
  3. Update the value to 200000 (or whatever you want) and save the file.
  4. Esegui il gioco, done. (Actually you might need to play one more game, didn’t test that).
Questa guida su Ticket to Ride è stato scritto da PapaSmok. Puoi visitare la pubblicazione originale da questo collegamento. In caso di dubbi su questa guida, per favore non esitate a contattarci qui.

Circa l'autore