zoffline
zoffline permet l'utilisation de Zwift hors ligne en agissant comme une implémentation partielle d'un serveur Zwift. Par défaut, zoffline est réservé à un seul joueur. Voir Étape 6 : Activer le mode multijoueur pour savoir comment activer la prise en charge de plusieurs utilisateurs/profils.
zoffline propose également de rouler contre des fantômes (vos manèges précédents). Activez cette fonctionnalité en cochant « Activer les fantômes » dans le lanceur de zoffline. Voir Fantômes et robots pour plus de détails.
De plus, le lanceur de zoffline permet de sélectionner une carte spécifique sur laquelle rouler sans se soucier des fichiers de configuration.
Installer
La configuration de zoffline nécessite deux étapes principales. Tout d'abord, zoffline doit être installé et exécuté sur un système avant d'exécuter Zwift (soit sur le système exécutant Zwift, soit sur un autre système en réseau local). Deuxièmement, Zwift doit être configuré pour utiliser zoffline au lieu du serveur officiel de Zwift.
Étape 1 : Installer zoffline
Il existe trois manières d'installer et d'exécuter zoffline en fonction de votre plateforme :
Le plus simple (Windows uniquement)
Pour installer zoffline sur Windows :- Téléchargez la dernière version de zoffline depuis https://github.com/zoffline/zwift-offline/releases/latest
- Si vous voulez les RoboPacers, téléchargez le package de code source et extrayez le répertoire
pace_partners
dans le même dossier dans lequel se trouve zoffline.
- Si vous n'exécutez pas zoffline sur le même PC que Zwift : créez un fichier
server-ip.txt
dans le répertoire storage
contenant l'adresse IP du PC exécutant zoffline. - Exécutez le zoffline.exe téléchargé
- Une fois exécuté, zoffline créera un répertoire
storage
dans le même dossier dans lequel il se trouve pour stocker votre progression Zwift.
- Démarrez Zwift avec zoffline.exe en cours d'exécution ( après avoir terminé l'étape 2 ou exécuté le script configure_client depuis https://github.com/oldnapalm/zoffline-helper/releases/latest)
- Il faut quelques secondes à zoffline pour démarrer. Attendez que le texte apparaisse dans l'invite de commande avant d'ouvrir Zwift.
- Lorsque vous avez terminé avec Zwift, appuyez sur Ctrl+C dans la ligne de commande pour fermer zoffline.
Linux, Windows ou macOS (à partir des sources)
Pour installer zoffline sous Linux, Windows ou macOS :- Installez Python 3 (https://www.python.org/downloads/) s'il n'est pas déjà installé
- Sous Windows, l'installation de Python via le Microsoft Store est fortement recommandée ! Si vous utilisez un programme d'installation Python, assurez-vous que dans le premier écran du programme d'installation Python, "Ajouter Python 3.x à PATH" est coché.
- Clonez ou téléchargez ce dépôt
- Installer les dépendances
- par exemple, sous Linux/Mac :
pip3 install -r requirements.txt
- par exemple, sous Windows dans l'invite de commande :
pip install -r requirements.txt
- Vous devrez peut-être utiliser
C:UsersAppDataLocalProgramsPythonPythonScriptspip.exe
au lieu de simplement pip
- Si vous n'exécutez pas zoffline sur le même PC que Zwift : créez un fichier
server-ip.txt
dans le répertoire storage
contenant l'adresse IP du PC exécutant zoffline. - Exécutez standalone.py avant de démarrer Zwift
- par exemple, sous Linux/Mac :
sudo ./standalone.py
- sudo est nécessaire car nous nous lions aux ports privilégiés 80 et 443.
- Si Python 3 n'est pas votre système par défaut, exécutez
sudo python3 standalone.py
- par exemple, sous Windows dans l'invite de commande :
python standalone.py
- Vous devrez peut-être utiliser
C:UsersAppDataLocalProgramsPythonPythonpython.exe
au lieu de simplement python
- Démarrez Zwift avec standalone.py en cours d'exécution ( après avoir terminé l'étape 2 )
- Remarque : lors de la mise à niveau de zoffline, veillez à conserver le répertoire
storage
. Il contient votre état de progression Zwift.
zoffline peut être installé sur la même machine que Zwift ou une autre machine locale.
Utiliser Docker
- Installer Docker
- Créez le conteneur Docker avec :
docker create --name zwift-offline -p 443:443 -p 80:80 -p 3024:3024/udp -p 3025:3025 -p 53:53/udp -v :/usr/src/app/zwift-offline/storage -e TZ= zoffline/zoffline
- Vous pouvez éventuellement exclure
-v :/usr/src/app/zwift-offline/storage
si vous ne vous souciez pas de savoir si votre état de progression Zwift est conservé dans les mises à jour zoffline (peu probable). - Le chemin auquel vous passez
-v
devra probablement être lisible et accessible en écriture par tout le monde. - Une liste de valeurs
valides (par exemple America/New_York) peut être trouvée ici. - L'ajout
--restart unless-stopped
fasse démarrer zoffline au démarrage si vous disposez de Docker v1.9.0 ou supérieur.
- Si vous n'exécutez pas zoffline sur le même PC que Zwift : créez un fichier
server-ip.txt
dans le répertoire
contenant l'adresse IP du PC exécutant zoffline. - Démarrez zoffline avec :
docker start zwift-offline
Utiliser Docker Composer
- Installer docker-composer
- Utilisez soit le fichier
docker-compose.yml
dans ce dépôt qui sera construit à partir du Dockerfile, soit utilisez cet exemple de fichier de composition : version: "3.3"
services:
zoffline:
image: zoffline/zoffline:latest
container_name: zoffline
environment:
- TZ=Europe/London
volumes:
- ./storage/:/usr/src/app/zwift-offline/storage
ports:
- 80:80
- 443:443
- 3024:3024/udp
- 3025:3025
restart: unless-stopped
- Si vous n'exécutez pas zoffline sur le même PC que Zwift : créez un fichier
server-ip.txt
dans le répertoire storage
contenant l'adresse IP du PC exécutant zoffline. - Démarrez zoffline avec :
docker-compose up -d
Étape 2 : Configurer le client Zwift pour utiliser zoffline
Instructions Windows
- Installer Zwift
- Si votre version de Zwift est 1.0.136426, vous êtes prêt.
- Si Zwift n'est pas installé, installez-le avant d'installer zoffline.
- Si votre version de Zwift est plus récente que la 1.0.136426 et que zoffline s'exécute à partir des sources : copiez
C:Program Files (x86)ZwiftZwift_ver_cur.xml
dans cdn/gameassets/Zwift_Updates_Root/
de zoffline en écrasant le fichier existant. - Si votre version de Zwift est plus récente que la 1.0.136426 et que zoffline ne s'exécute pas à partir des sources : attendez que zoffline soit mis à jour.
- REMARQUE : au lieu d'effectuer les étapes ci-dessous, vous pouvez simplement exécuter le script configure_client à partir de https://github.com/oldnapalm/zoffline-helper/releases/latest
- Sur votre machine Windows exécutant Zwift, copiez les fichiers suivants de ce dépôt vers un emplacement connu :
- ssl/cert-zwift-com.p12
- ssl/cert-zwift-com.pem
- Ouvrez l'invite de commande en tant qu'administrateur, accédez à cet emplacement et exécutez
-
certutil.exe -importpfx Root cert-zwift-com.p12
- Si vous êtes invité à saisir un mot de passe, laissez-le vide. Il n'y a pas de mot de passe.
- Ouvrez le Bloc-notes en tant qu'administrateur et ouvrez
C:Program Files (x86)Zwiftdatacacert.pem
- Ajoutez le contenu de
ssl/cert-zwift-com.pem
à cacert.pem
- Ouvrez le Bloc-notes en tant qu'administrateur et ouvrez
C:WindowsSystem32Driversetchosts
- Ajoutez cette ligne :
us-or-rly101.zwift.com secure.zwift.com cdn.zwift.com launcher.zwift.com
(Où
est l'adresse IP de la machine exécutant zoffline. S'il fonctionne sur la même machine que Zwift, utilisez 127.0.0.1
comme adresse IP.)
- Si vous souhaitez laisser le fichier
hosts
inchangé, sauf lorsque vous utilisez spécifiquement zoffline, vous pouvez éventuellement utiliser le script launch.bat dans le répertoire scripts
pour lancer zoffline au lieu d'utiliser le lanceur Zwift normal. Voir #121 pour plus de détails.
Pourquoi : Nous devons rediriger Zwift pour qu'il utilise zoffline et convaincre Windows et Zwift d'accepter les certificats auto-signés de zoffline pour les noms de domaine de Zwift. N'hésitez pas à générer vos propres certificats et à faire de même.
Instructions MacOS
- Installer Zwift
- Si votre version de Zwift est 1.0.136426, vous êtes prêt.
- Si Zwift n'est pas installé, installez-le avant d'installer zoffline.
- Si votre version de Zwift est plus récente que la 1.0.136426 : copiez
~/Library/Application Support/Zwift/ZwiftMac_ver_cur.xml
dans cdn/gameassets/Zwift_Updates_Root/
de zoffline en écrasant le fichier existant.
- Sur votre ordinateur Mac exécutant Zwift, copiez le fichier ssl/cert-zwift-com.pem de ce dépôt vers un emplacement connu.
- Ouvrez l'accès au trousseau, sélectionnez "Système" sous "Porte-clés", sélectionnez "Certificats" sous "Catégorie".
- Cliquez sur "Fichier - Importer des éléments..." et importez cert-zwift-com.pem
- Faites un clic droit sur "*.zwift.com", sélectionnez "Obtenir des informations" et sous "Confiance", choisissez "Lors de l'utilisation de ce certificat : toujours faire confiance".
- À partir de l'emplacement cert-zwift-com.pem, exécutez
sed -n '29,53p' cert-zwift-com.pem >> ~/Library/Application Support/Zwift/data/cacert.pem
- À l'aide d'un éditeur de texte (avec privilèges d'administrateur), ouvrez
/etc/hosts
- Ajoutez cette ligne :
us-or-rly101.zwift.com secure.zwift.com cdn.zwift.com launcher.zwift.com
(Où
est l'adresse IP de la machine exécutant zoffline. S'il fonctionne sur la même machine que Zwift, utilisez 127.0.0.1
comme adresse IP.)
Pourquoi : Nous devons rediriger Zwift pour qu'il utilise zoffline et convaincre macOS et Zwift d'accepter les certificats auto-signés de zoffline pour les noms de domaine de Zwift. N'hésitez pas à générer vos propres certificats et à faire de même.
Android (appareil non rooté)
- Installez les applications requises :
- Téléchargez et installez
ZofflineObb.apk
à partir d'ici - Téléchargez et installez
app-Github-release.apk
à partir d'ici - Créez un fichier
hosts.txt
à utiliser avec l'application (vous pouvez utiliser une application d'édition de texte ou le créer en ligne avec un outil en ligne tel que celui-ci). Le fichier doit ressembler à ceci (remplacez
par l'adresse IP de la machine exécutant zoffline) :
us-or-rly101.zwift.com
secure.zwift.com
cdn.zwift.com
- Désactivez "DNS privé" dans les paramètres Android
- Exécutez "Virtual Hosts" et sélectionnez le fichier
hosts.txt
créé - En option, au lieu d'utiliser l'application "Virtual Hosts", vous pouvez créer un fichier
fake-dns.txt
dans le répertoire storage
et définir le "DNS 1" de la connexion Wi-Fi de votre téléphone sur l'adresse IP du PC exécutant zoffline. - Remarque : Si vous savez ce que vous faites et disposez d'un routeur suffisamment performant, vous pouvez régler votre routeur pour modifier ces enregistrements DNS au lieu d'utiliser l'application "Hôtes virtuels" ou de modifier le DNS de votre téléphone.
- Patch après chaque installation ou mise à jour :
- Installez/mettez à jour Zwift depuis Google Play, mais ne le démarrez pas encore.
- Si vous l'avez déjà démarré, accédez à
Android Settings > Applications > Zwift
et effacez les données ou désinstallez et réinstallez l'application.
- Ouvrez l'application
ZofflineObb
et exécutez-la (autorisez l'accès au stockage) - Attendez la fin du processus (5-10 min)
- Exécutez Zwift, j'espère qu'il vérifie le téléchargement et s'exécute
- Jouer à Zwift :
- Le bouton Hôtes virtuels doit être activé
- Démarrez Zwift et connectez-vous en utilisant n'importe quel e-mail/mot de passe ou créez un nouvel utilisateur si le mode multijoueur est activé.
Pourquoi : Nous devons rediriger Zwift pour qu'il utilise zoffline (cela est fait par l'application Virtual Hosts) et convaincre Zwift d'accepter les certificats auto-signés de zoffline pour les noms de domaine de Zwift (cela est fait par l'outil de patch ZofflineObb).
Android (appareil rooté)
- Installer Zwift sur l'appareil
- Ouvrez Zwift une fois pour terminer l'installation (c'est-à-dire télécharger tous les fichiers supplémentaires).
- Ajoutez le contenu de
ssl/cert-zwift-com.pem
à /data/data/com.zwift.zwiftgame/dataES/cacert.pem
sur l'appareil- Remarque : ce fichier n'existera qu'après la première exécution de Zwift puisqu'il est téléchargé après l'installation initiale.
- Approche simple pour y parvenir si votre appareil ne dispose pas d'un éditeur de texte :
-
adb push ssl/cert-zwift-com.pem /data/data/com.zwift.zwiftgame/dataES/
- Dans
adb shell
: cd /data/data/com.zwift.zwiftgame/dataES/
- Dans
adb shell
: cat cert-zwift-com.pem >> cacert.pem
- Quelle que soit la manière dont vous le faites, assurez-vous que les autorisations et la propriété du fichier restent les mêmes.
- Modifier le fichier
/etc/hosts
du périphérique- Ajoutez cette ligne :
us-or-rly101.zwift.com secure.zwift.com cdn.zwift.com
(Où
est l'adresse IP de la machine exécutant zoffline.) - S'il n'y a pas d'éditeur de texte sur l'appareil, recommandez :
-
adb pull /etc/hosts
- (modifier sur PC)
-
adb push hosts /etc/hosts
- Remarque : Si vous savez ce que vous faites et disposez d'un routeur suffisamment performant, vous pouvez régler votre routeur pour modifier ces enregistrements DNS au lieu de modifier votre fichier
hosts
.
- Démarrez Zwift et connectez-vous en utilisant n'importe quel e-mail/mot de passe ou créez un nouvel utilisateur si le mode multijoueur est activé.
Pourquoi : Nous devons rediriger Zwift pour qu'il utilise zoffline et convaincre Zwift d'accepter les certificats auto-signés de zoffline pour les noms de domaine de Zwift. N'hésitez pas à générer vos propres certificats et à faire de même.
Activer/Désactiver zoffline
Pour utiliser Zwift en ligne comme d'habitude, commentez ou supprimez la ligne ajoutée au fichier hosts
avant de démarrer Zwift. Assurez-vous ensuite que Zwift est complètement fermé (cliquez avec le bouton droit sur l'icône de la barre d'état système de Zwift et quittez) et redémarrez Zwift.
Étape 3 [OPTIONNEL] : Obtenez le profil Zwift actuel
Développer
Si vous n'obtenez pas votre profil Zwift actuel avant de démarrer Zwift avec zoffline activé, vous serez invité à créer un nouveau profil (taille, poids, sexe). Votre profil peut être personnalisé et modifié via le menu du jeu (par exemple nom, nationalité, changement de poids, etc.).
Pour obtenir votre profil actuel :
- REMARQUE : au lieu d'effectuer les étapes ci-dessous, vous pouvez utiliser le bouton "Paramètres - Zwift" dans la fenêtre de lancement (Windows et macOS uniquement).
- Assurez-vous que zoffline est désactivé.
- Exécutez
scripts/get_profile.py -u
- Ou, si vous utilisez la version Windows zoffline.exe sans Python installé, vous pouvez exécuter
get_profile.exe
obtenu à partir de https://github.com/oldnapalm/zoffline-helper/releases/latest à la place de scripts/get_profile.py
- Déplacez les
profile.bin
, achievements.bin
et economy_config.txt
résultants (enregistrés dans le répertoire dans lequel vous avez exécuté get_profile.py) dans le répertoire storage/1
.- Si vous utilisez zoffline.exe sous Windows, créez un répertoire
storage/1
dans le même dossier que zoffline.exe s'il n'existe pas déjà. - Si vous utilisez Docker, le répertoire
1
doit se trouver dans le chemin que vous avez passé à -v
Étape 4 [FACULTATIF] : Téléchargez des activités sur Strava
Développer
- Obtenez CLIENT_ID et CLIENT_SECRET sur https://www.strava.com/settings/api
- REMARQUE : au lieu d'effectuer les étapes ci-dessous, vous pouvez définir le domaine de rappel d'autorisation de votre application API sur
launcher.zwift.com
et utiliser le bouton "Paramètres - Strava" dans la fenêtre de lancement (Windows et macOS uniquement). - Exécutez
scripts/strava_auth.py --client-id CLIENT_ID --client-secret CLIENT_SECRET
- Ou, si vous utilisez la version Windows zoffline.exe sans Python installé, vous pouvez exécuter
strava_auth.exe
obtenu à partir de https://github.com/oldnapalm/zoffline-helper/releases/latest à la place de scripts/strava_auth.py
- Ouvrez http://localhost:8000/ et autorisez.
- Déplacez le
strava_token.txt
résultant (enregistré dans le répertoire dans lequel vous avez exécuté strava_auth.py
) dans le répertoire storage/1
. - Si vous testez, parcourez au moins 300 mètres, les activités plus courtes ne seront pas téléchargées.
- Le téléchargement automatique de captures d'écran n'est pas possible, voir #28 pour plus de détails.
Étape 5 [FACULTATIF] : Téléchargez des activités sur Garmin Connect
Développer
- Si vous exécutez à partir des sources, installez Garth :
pip install garth
- Si besoin, créez un fichier
garmin_domain.txt
dans le répertoire storage
contenant le domaine- Pour la Chine, utilisez
garmin.cn
- REMARQUE : au lieu d'effectuer l'étape ci-dessous, vous pouvez utiliser le bouton "Paramètres - Garmin" dans la fenêtre de lancement pour saisir vos informations d'identification (Windows et macOS uniquement).
- Créez un fichier
garmin_credentials.txt
dans le répertoire storage/1
contenant vos identifiants de connexion - Remarque : ce n'est pas sécurisé. Ne faites cela que si vous êtes à l'aise avec le stockage de vos informations de connexion dans un fichier texte clair.
- Si vous testez, parcourez au moins 300 mètres, les activités plus courtes ne seront pas téléchargées.
Étape 6 [OPTIONNEL] : Activer le multijoueur
Développer
Pour activer la prise en charge de plusieurs utilisateurs, suivez les étapes ci-dessous :
- Créez un fichier
multiplayer.txt
dans le répertoire storage
. - Si vous n'exécutez pas zoffline sur le même PC que Zwift : créez un fichier
server-ip.txt
dans le répertoire storage
contenant l'adresse IP du PC exécutant zoffline.- Les ports TCP 80, 443, 3025 et le port UDP 3024 devront être ouverts sur le PC exécutant zoffline s'il fonctionne à distance.
- Démarrez Zwift et créez un compte.
- Ce compte n'existera que sur votre serveur zoffline et n'a aucun rapport avec votre compte Zwift actuel.
Étape 7 [OPTIONNEL] : Installez l'application Zwift Companion
Android (appareil non rooté)
- Installez apk-mitm (https://github.com/shroudedcode/apk-mitm)
- Ouvrez
apk-mitm/dist/tools/apktool.js
(exécutez npm root -g
pour trouver son emplacement) et modifiez-le comme ceci : decode ( inputPath , outputPath ) {
return this . run ( [
'decode' ,
'-resm' , // add this
'dummy' , // add this
inputPath ,
'--output' ,
outputPath ,
'--frame-path' ,
this . options . frameworkPath ,
] , 'decoding' ) ;
}
- Copiez le fichier ssl/cert-zwift-com.pem dans ce dépôt et l'apk Zwift Companion (par exemple
zca.apk
) vers un emplacement connu - Ouvrez l'invite de commande, cd à cet emplacement et exécutez
-
apk-mitm --certificate cert-zwift-com.pem zca.apk
- Copiez
zca-patched.apk
sur votre téléphone et installez-le - Téléchargez et installez
app-Github-release.apk
à partir d'ici - Créez un fichier
hosts.txt
à utiliser avec l'application (vous pouvez utiliser une application d'édition de texte ou le créer en ligne avec un outil en ligne tel que celui-ci). Le fichier doit ressembler à ceci (remplacez
par l'adresse IP de la machine exécutant zoffline) : us-or-rly101.zwift.com
secure.zwift.com
- Important : n'ajoutez pas
cdn.zwift.com
à hosts.txt
, Companion doit télécharger les images depuis le serveur officiel
- Désactivez "DNS privé" dans les paramètres Android
- Exécutez "Virtual Hosts" et sélectionnez le fichier
hosts.txt
créé - En option, au lieu d'utiliser l'application "Virtual Hosts", vous pouvez créer un fichier
fake-dns.txt
dans le répertoire storage
et définir le "DNS 1" de la connexion Wi-Fi de votre téléphone sur l'adresse IP du PC exécutant zoffline. - Remarque : Si vous savez ce que vous faites et disposez d'un routeur suffisamment performant, vous pouvez régler votre routeur pour modifier ces enregistrements DNS au lieu d'utiliser l'application "Hôtes virtuels" ou de modifier le DNS de votre téléphone.
Étapes facultatives supplémentaires
Développer
- Pour obtenir le calendrier officiel de la carte et mettre à jour les fichiers depuis le serveur Zwift : créez un fichier
cdn-proxy.txt
dans le répertoire storage
. Cela ne peut fonctionner que si vous exécutez zoffline sur une machine différente de celle du client Zwift.- Si cette option est désactivée, zoffline essaiera d'utiliser le DNS public de Google pour résoudre les noms d'hôte Zwift. Cela devrait fonctionner même si zoffline s'exécute sur la même machine que le client Zwift. Pour éviter cela, créez un fichier
disable_proxy.txt
dans le répertoire storage
.
- Pour activer la fonction de réinitialisation du mot de passe lorsque le mode multijoueur est activé : créez un fichier
gmail_credentials.txt
dans le répertoire storage
contenant les informations de connexion d'un compte Gmail. Vous devez accéder à https://security.google.com/settings/security/apppasswords et créer un mot de passe d'application pour autoriser la connexion depuis le serveur. - Pour activer le bot Discord Bridge :
pip3 install discord.py
et créez un fichier discord.cfg
dans le répertoire storage
contenant [discord]
token =
webhook =
channel =
welcome_message =
help_message =
- Si le client Zwift rencontre des problèmes de connexion au serveur Linux (« La requête a été abandonnée : impossible de créer un canal sécurisé SSL/TLS." ou "La connexion sous-jacente a été fermée : une erreur inattendue s'est produite lors d'un envoi. Reçu un EOF inattendu ou 0 octet du flux de transport." : remplacez MinProtocol dans /etc/ssl/openssl.cnf par TLSv1.0
[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=1
Fantômes et robots
Développer
Spectres
- Activez cette fonctionnalité en cochant « Activer les fantômes » dans le lanceur de zoffline.
- Si vous exécutez Zwift sur Android, créez un fichier
enable_ghosts.txt
dans le dossier storage
.- Si le multijoueur est activé, accédez
https:///login/
, cochez « Activer les fantômes » et cliquez sur « Démarrer Zwift » pour enregistrer l'option.
- Lorsque vous enregistrez une activité, le fantôme sera enregistré dans
storage//ghosts//
. La prochaine fois que vous emprunterez le même itinéraire, le fantôme sera chargé. - Tapez
.regroup
dans le chat pour regrouper les fantômes. - L'équipement peut être personnalisé en créant un fichier
ghost_profile.txt
dans le dossier storage
. Le script find_equip.py
peut être utilisé pour remplir ce fichier.
Bots
- Créez un fichier
enable_bots.txt
dans le dossier storage
pour charger les fantômes en tant que robots, ils continueront à rouler quel que soit l'itinéraire que vous empruntez. - Facultativement,
enable_bots.txt
peut contenir une valeur multiplicatrice (attention, si le nombre de robots résultant est trop élevé, cela peut entraîner des problèmes de performances, voire ne pas fonctionner du tout). - Les noms, nationalités et équipements peuvent être personnalisés en créant un fichier
bot.txt
dans le dossier storage
. Les scripts get_pro_names.py
et get_strava_names.py
peuvent être utilisés pour remplir ce fichier. - Si vous voulez des robots aléatoires, consultez ce référentiel.
RoboPacers (anciennement connu sous le nom de Pace Partners)
- Les RoboPacers sont des fantômes enregistrés à l'aide d'un simulateur de puissance.
- Le fantôme doit être enregistré en utilisant une fréquence de mise à jour de 1 seconde (la valeur par défaut est de 3 secondes).
- L'activité doit commencer et se terminer à la même position et à la même vitesse, sinon le robot ne bouclera pas correctement.
- Le profil doit contenir un identifiant de joueur unique et l'identifiant de l'itinéraire, de sorte que lorsque vous rejoignez le bot, vous preniez les mêmes tours aux intersections.
- Le script
bot_editor.py
peut être utilisé pour modifier profile.bin
(définir le nom, l'ID du joueur et l'ID de la route) et route.bin
(couper les points excédentaires pour créer une boucle parfaite). - Si vous souhaitez créer un RoboPacer dynamique (augmenter la puissance dans les montées et diminuer dans les descentes), vous pouvez utiliser standalone_power.py (nécessite 2 sticks ANT, python-ant et PowerMeterTx.py).
Signets
Développer
- Lorsque vous terminez une activité, votre dernière position sera enregistrée sous forme de signet.
- Les signets peuvent également être enregistrés à l'aide de la commande
.bookmark
dans le chat. - Vous pouvez démarrer une nouvelle activité à partir d'un favori en la sélectionnant dans « Rejoindre un Zwifter » sur l'écran d'accueil.
- Vous pouvez vous téléporter vers un signet en utilisant l'icône de téléportation sur la barre d'action.
Classements de tous les temps
Développer
- Pour activer les classements de tous les temps (remplacer les résultats en direct de 60 minutes et les records personnels de 90 jours), créez un fichier
all_time_leaderboards.txt
dans le répertoire storage
. - Les maillots sont toujours valables 60 minutes mais ne seront accordés que lorsqu'un nouveau record de tous les temps sera établi.
Droits
Développer
- Pour débloquer les droits (équipements spéciaux), créez un fichier
unlock_entitlements.txt
dans le répertoire storage
. - Pour déverrouiller tous les équipements, créez plutôt un fichier
unlock_all_equipment.txt
.
Serveur Discord communautaire et club Strava
Veuillez rejoindre le serveur Discord et le club Strava pris en charge par la communauté.
Dépendances
Docker
-ou-
- Python 3 (https://www.python.org/downloads/)
- Flacon (https://flask.palletsprojects.com/)
- python-protobuf (https://pypi.org/project/protobuf/)
- pyJWT (https://pyjwt.readthedocs.io/)
- Connexion Flask (https://flask-login.readthedocs.io/)
- Flask-SQLAlchemy (https://flask-sqlalchemy.palletsprojects.com/)
- gevent (http://www.gevent.org/)
- pycryptodome (https://pypi.org/project/pycryptodome/)
- dnspython (https://www.dnspython.org/)
- fitdecode (https://pypi.org/project/fitdecode/)
- stravalib (https://stravalib.readthedocs.io/)
- FACULTATIF : garth (https://pypi.org/project/garth/)
- FACULTATIF : discord.py (https://discordpy.readthedocs.io/)
Note
Les futures mises à jour de Zwift pourraient interrompre zoffline jusqu'à ce qu'il soit mis à jour. Lorsque zoffline est activé, les mises à jour Zwift ne seront pas installées. Si une mise à jour zoffline a cassé quelque chose, consultez le CHANGELOG
pour connaître les modifications possibles qui doivent être apportées.
N'exposez pas zoffline à Internet, il n'a pas été conçu dans cet esprit.
Si zoffline est obsolète du client officiel de Zwift
Si zoffline est en retard dans la prise en charge du dernier client Zwift, il peut être mis à jour (si vous utilisez Linux) pour fonctionner avec la dernière version de Zwift en exécutant ce script depuis le référentiel zwift-offline : https://gist.github.com/zoffline /b874e93e24439f0f4fbd7b55f3876fd2 Remarque : rien ne garantit qu'une mise à jour Zwift non testée fonctionnera avec zoffline. Cependant, historiquement, les mises à jour de Zwift interrompent rarement zoffline.
Clause de non-responsabilité
Zwift est une marque commerciale de Zwift, Inc., qui n'est pas affiliée au créateur de ce projet et n'approuve pas ce projet.
Tous les noms de produits et de sociétés sont des marques déposées de leurs détenteurs respectifs. Leur utilisation n’implique aucune affiliation ou approbation de leur part.