LiveSplit est un programme de minuterie pour les speedrunners qui est à la fois facile à utiliser et plein de fonctionnalités.
Intégration de Speedrun.com : Speedrun.com est entièrement intégré à LiveSplit. Vous pouvez parcourir leurs classements, télécharger des fractionnements et même soumettre vos propres courses directement depuis LiveSplit. Vous pouvez également afficher les records du monde pour les jeux que vous exécutez avec le composant Record du monde.
Synchronisation précise : LiveSplit se synchronise automatiquement avec une horloge atomique sur Internet pour estimer les inexactitudes de la minuterie locale du PC. La minuterie de LiveSplit ajuste automatiquement la minuterie locale pour corriger ces inexactitudes.
Temps de jeu et partage automatique : LiveSplit détectera automatiquement si le temps de jeu et/ou le partage automatique sont disponibles pour un jeu et vous permettra de l'activer dans l'éditeur de partages. Game Time est automatiquement lu directement à partir d'un émulateur ou d'un jeu PC, et vous pouvez l'utiliser en passant à Game Time sous Compare Against.
Composant vidéo : avec le composant vidéo, vous pouvez lire une vidéo à partir d'un fichier local parallèlement à votre course. La vidéo démarrera lorsque vous démarrerez votre course et s'arrêtera à chaque réinitialisation. Vous pouvez également spécifier à quel moment la vidéo doit commencer.
Courses : dans LiveSplit, vous pouvez démarrer et rejoindre des courses sur SpeedRunsLive ou racetime.gg au sein même de LiveSplit. Le chronomètre démarre automatiquement lorsque la course commence et écrit automatiquement .done
chaque fois que vous terminez la course. De plus, vous pouvez comparer votre course actuelle avec les autres coureurs pendant la course, à condition qu'ils utilisent également LiveSplit.
Comparaisons : dans LiveSplit, vous pouvez basculer dynamiquement entre plusieurs comparaisons, même à mi-parcours. Vous pouvez soit comparer votre exécution à des comparaisons que vous définissez vous-même, soit la comparer à plusieurs comparaisons générées automatiquement, comme votre somme des meilleurs segments ou votre exécution moyenne. Pendant la course sur SpeedRunsLive, des comparaisons pour les autres coureurs sont également générées automatiquement.
Système de mise en page : les utilisateurs peuvent modifier chaque partie de l'apparence de LiveSplit à l'aide des mises en page. Chaque utilisateur a la possibilité d'ajouter ou de supprimer des parties et de réorganiser et personnaliser chaque partie de LiveSplit. Vous pouvez même utiliser vos propres images d'arrière-plan.
Redimensionnement dynamique : LiveSplit peut être redimensionné à n'importe quelle taille afin qu'il s'affiche bien en streaming. Au fur et à mesure que la taille de LiveSplit est modifiée, toutes ses parties sont automatiquement agrandies afin de préserver son apparence.
Partage de courses : toute course peut être partagée sur Speedrun.com et X (Twitter). Les fractionnements peuvent également être distribués à l’aide d’E/S fractionnées et importés à partir d’une URL. Vous pouvez également partager une capture d'écran de vos fractionnements sur Imgur ou l'enregistrer sous forme de fichier. Votre titre Twitch peut également être mis à jour en fonction du jeu auquel vous jouez.
Développement de composants : n'importe qui peut développer ses propres composants qui peuvent facilement être partagés et utilisés avec LiveSplit. Des composants téléchargeables supplémentaires peuvent être trouvés dans la section Composants.
Nous avons besoin de votre aide !
Vous pouvez parcourir les problèmes pour trouver les bons problèmes avec lesquels commencer. Sélectionnez-en un qui n'est pas déjà fait ou en cours, attribuez-vous et faites-le glisser vers « En cours ».
Forkez le projet
Clonez votre dépôt forké : git clone --recursive https://github.com/YourUsername/LiveSplit.git
Créez votre branche fonctionnalité/correction de bugs : git checkout -b new-feature
Validez vos modifications dans votre nouvelle branche : git commit -am 'Add a new feature'
Push vers la branche : git push origin new-feature
Créez une nouvelle Pull Request !
LiveSplit utilise .NET Framework 4.8.1. Pour compiler LiveSplit, vous devez installer les composants suivants :
Kit de développement logiciel .NET 8.0
Pack de développement .NET Framework 4.8.1
Après le clonage, exécutez simplement dotnet build LiveSplit.sln
à partir de la racine du référentiel.
Pour utiliser Visual Studio, vous devez installer une version prenant en charge la version du SDK .NET que vous avez installée. Au moment de la rédaction, la version la plus récente est Visual Studio 2022.
Aucun sous-module n'est extrait lorsque vous dupliquez/clonez le dépôt, ce qui empêche la construction du projet. Il existe deux manières de remédier à cela :
Clonage pour la première fois : git clone --recursive https://github.com/LiveSplit/LiveSplit.git
S'il est déjà cloné, exécutez ceci dans le répertoire racine : git submodule update --init --recursive
La documentation expliquant comment développer, tester et soumettre un séparateur automatique peut être trouvée ici :
Documentation sur les répartiteurs automatiques
Le serveur LiveSplit interne permet à d'autres programmes et à d'autres ordinateurs de contrôler LiveSplit. Le serveur peut accepter les connexions via un canal nommé situé dans <hostname>pipeLiveSplit
( .
est le nom d'hôte si le client et le serveur sont sur le même ordinateur), TCP/IP brut ou un serveur WebSocket (WS), situé dans ws://<hostname>:port/livesplit
.
Le canal nommé est toujours ouvert pendant l'exécution de LiveSplit mais les serveurs TCP et WS DOIVENT être démarrés avant que les programmes puissent leur parler (clic droit sur LiveSplit -> Contrôle -> Démarrer le serveur TCP/WS). Vous DEVEZ démarrer manuellement celui que vous souhaitez utiliser à chaque fois que vous lancez LiveSplit. Les serveurs TCP et WS ne peuvent pas s'exécuter en même temps car le serveur WS s'exécute sur TCP/IP.
Le port du serveur est la porte (une parmi des milliers) de votre ordinateur par laquelle ce programme envoie des données. La valeur par défaut est 16834. Cela devrait convenir à la plupart des utilisateurs, mais selon les configurations réseau, certains ports peuvent être bloqués. Voir également https://en.wikipedia.org/wiki/Port_%28computer_networking%29.
Télécommande Android LiveSplit : https://github.com/Ekelbatzen/LiveSplit.Remote.Android
SplitNotes : https://github.com/joelnir/SplitNotes
Client distant Autosplitter : https://github.com/RavenX8/LiveSplit.Server.Client
Vous avez fait quelque chose de cool ? Pensez à l'ajouter à cette liste.
Les commandes sont sensibles à la casse et se terminent par une nouvelle ligne. Vous pouvez fournir des paramètres en utilisant un espace après la commande et en envoyant les paramètres ensuite ( <command><space><parameters><newline>
).
Certaines commandes répondront avec des données et d'autres non. Chaque réponse se termine par un caractère de nouvelle ligne. Notez que puisque le serveur WS a un concept de messages, les commandes et les réponses envoyées ne se terminent pas par des caractères de nouvelle ligne.
Toutes les heures et tous les deltas renvoyés par le serveur sont formatés selon le spécificateur de format constant de C#. Le serveur acceptera les heures au format suivant : [-][[[d.]hh:]mm:]ss[.fffffff]
. Le champ heures peut être supérieur à 23, même si des jours sont présents. Il n'est pas nécessaire que les champs individuels soient complétés par des zéros. Toute commande qui renvoie une heure ou une chaîne peut renvoyer un seul trait d'union -
pour indiquer une valeur "nulle" ou invalide. Les commandes qui prennent une COMPARAISON ou un NOM prennent des chaînes simples pouvant inclure des espaces. Puisqu'ils sont utilisés comme délimiteur pour marquer la fin d'une commande, les caractères de nouvelle ligne ne peuvent apparaître nulle part dans une commande.
Commandes qui ne génèrent aucune réponse :
démarreur
diviser
non divisé
sauter
pause
CV
réinitialiser
minuterie de démarrage
définir l'heure du jeu
définir les temps de chargement TIME
ajouter des temps de chargement TIME
mettre en pause le temps de jeu
reprendre le jeu
toujours mettre en pause le temps de jeu
setcomparison COMPARAISON
passer au temps réel
passer au temps de jeu
setsplitname NOM DE L'INDEX
setcurrentsplitname NOM
Commandes qui renvoient une heure :
obtenirdelta
COMPARAISON getdelta
obtenir le dernier temps partagé
obtenir des comparaisons à temps partagé
obtenir le temps réel actuel
obtenir l'heure de jeu actuelle
obtenir l'heure actuelle
obtenir l'heure finale
COMPARAISON getfinaltime
COMPARAISON getpredictedtime
obtenir le meilleur temps possible
Commandes qui renvoient un int :
obtientplitindex
(renvoie -1 si la minuterie ne fonctionne pas)
Commandes qui renvoient une chaîne :
obtenir le nom du partage actuel
obtenir le nom du partage précédent
obtenir la phase de minuterie actuelle
pinger
(renvoie toujours pong
)
Les commandes sont définies dans ProcessMessage
dans « CommandServer.cs ».
importer des sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect(("localhost", 16834))s.send(b"starttimern")
importer java.io.IOException; importer java.io.PrintWriter; importer java.net.Socket; classe publique MainTest {public static void main (String [] args) lance IOException {Socket socket = new Socket ("localhost", 16834) ;écrivain PrintWriter = nouveau PrintWriter(socket.getOutputStream());writer.println("starttimer");writer.flush();socket.close(); } }
Le logiciel qui implémente Lua est utilisable en tant que client. Cependant, la bibliothèque lua io doit être disponible pour que le script puisse l'utiliser, documentation complète disponible ici.
require "io"self.LSEndpoint = "\.pipeLiveSplit" --Localhost LiveSplit pipe.self.LSPipe = io.open(self.LSEndpoint, "w") --Ouvrir/démarrer le canal. Flush est requis après chaque command.self.LSPipe:write "starttimern"self.LSPipe:flush()self.LSPipe:close() --Ceci peut être laissé ouvert si nécessaire.
Implémentation du client Node.js disponible ici : https://github.com/satanch/node-livesplit-client
Mettez à jour les versions de tous les composants modifiés (créez une balise Git et mettez à jour le fichier d'usine pour chaque composant) pour qu'elles correspondent à la nouvelle version de LiveSplit.
Créez une balise Git pour la nouvelle version.
Téléchargez LiveSplit_Build
et UpdateManagerExe
à partir de la version GitHub Actions pour la nouvelle balise Git.
Créez une version GitHub pour la nouvelle version et téléchargez le fichier ZIP de build LiveSplit avec le nom de fichier correct (par exemple LiveSplit_1.8.21.zip
).
Modifiez les fichiers dans le dossier de mise à jour de LiveSplit.github.io et validez les modifications :
Copiez les fichiers modifiés du fichier ZIP de build LiveSplit téléchargé vers le dossier de mise à jour.
Copiez les fichiers modifiés à partir du fichier ZIP téléchargé d'Update Manager pour remplacer UpdateManagerV2.exe
et UpdateManagerV2.exe.config
.
Ajoutez de nouvelles versions aux XML de mise à jour pour ( update.xml
, update.updater.xml
et aux XML de mise à jour pour tous les composants modifiés).
Modifiez la DLL et mettez à jour le XML pour LiveSplit.TheRun dans son référentiel.
Mettez à jour la version sur la page de téléchargement.
La licence MIT (MIT)
Copyright (c) 2013 Christopher Serr et Sergey Papushin
L'autorisation est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), d'utiliser le Logiciel sans restriction, y compris, sans limitation, les droits d'utilisation, de copie, de modification, de fusion. , publier, distribuer, accorder des sous-licences et/ou vendre des copies du Logiciel, et permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.
LE LOGICIEL EST FOURNI « EN L'ÉTAT », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS LIMITATION LES GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET DE NON-VIOLATION. EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DES DROITS D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLIT OU AUTRE, DÉCOULANT DE, DE OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES TRANSACTIONS DANS LE LOGICIEL.