SHWotever / SimHub

Multi sim dashboard, bass shaker driver, ....
http://www.simhubdash.com/
803 stars 98 forks source link

Leaderboard - ajout de donnees #1366

Closed herve4545 closed 1 year ago

herve4545 commented 1 year ago

Objet : Enrichir les données du leaderboard avec

Type de pneu (soft, hard, etc...) mfrontTireCompoundName mrearTireCompoundName Sector1lastlaptime et sector1bestlaptime Sector2lastlaptime et sector2bestlaptime Sector3lastlaptime et sector3bestlaptime nombre d'arrêts aux stands effectués si l'arrêt aux stands est en cours (ISINPIT)

Nota : Ajouter aussi des infos pour les pneus car on ne peut pas afficher le type de pneu pour certains mods de Rf2 le DataCorePlugin.GameRawData.CurrentPlayerTelemetry.mFrontTireCompoundIndex ne suffit pas pour déterminer quel est le type de pneu utilisé par le véhicule ex : Enduracer Alpine A110 GT4 en pneu WET vs Ferrari GTE avec le même CompoundIndex et pas le même type de pneu en réalité

Merci

mFrontTireCompoundName peut-être edit : oui cet attribut permet d'afficher le type de pneu correct pour, au moins, certains mods. Secondmonitor l'utilise avec succès

herve4545 commented 1 year ago
herve4545 commented 1 year ago

Il serait intéressant d'avoir ces états Pit Request In PitLane Enter Pit In Pit Exit Pit

In Garage Exit Garage

Merci

SHWotever commented 1 year ago

Hello !

J'ai ajouté çà (dispo dans la beta sur discord):

herve4545 commented 1 year ago

un grand merci J'ai plus qu'à me mettre au boulot

herve4545 commented 1 year ago

Une petite question Étant entendu que les 5 ahead/behind n'affichent pas les concurrents qui sont aux stands

Est ce que je peux quand même afficher les données ci-dessous pour ces 5 ahead/behind :

herve4545 commented 1 year ago

sur rf2, j'ai commencé à intégrer les pitcount et les type de pneus sur mon dash_1 pour les 5 ahead/behind

en jeu, au départ d'une course, le pitcount n'est pas à 0 mais à 1 voire à 2 et, ce, sur practice ou race bizarre, j'ai enregistré un replay pour ce practice et cette course, et, quand je rejoue le replay, les pitcounts n'ont plus les mêmes valeurs. en course, ils étaient tous à 1 et sur le replay, ils sont tous à 0

sur ces mêmes 5 ahead/behind, j'ai intégré les types de pneus en me basant uniquement sur le driverfronttyrecompound(raceposition) sur rf2 et r3e, ca fonctionne bien sur ams2, je n'obtiens rien (je récupère null)

herve4545 commented 1 year ago

le LeaderboardOpponentGap ne semble plus fonctionner dès lors que j'ai au moins 1 tour de retard sur le leader. Dans ce cas, je recois 0.0 au lieu de +1lap

j'ai essayé celui-ci : return drivergaptoleader(maraceposition) mais même problème

SHWotever commented 1 year ago

Hello ! Pour les pits counts je suis sur le coup, vu qu'ils sont comptés et qu'ils ne viennent pas de la telemetrie il faut resetter les statistiques au bon moment et j'ai déjà repéré des cas où ça a loupé. Pareil si on "navigue" directement à un point du Replay si on ne passe pas le moment du pit stop il ne sera pas compté. Mais pour ça par contre on ne peux pas l'éviter.

Pour le gap je vais regarder je ne sais pas pourquoi pour le moment.

Pour ams2, c'est normal il n'y a pas la donnée. Avant je m'en tenais à ce qui était présent sur un nombre significatif de jeux... mais les données comme le compound c'est beaucoup plus rare. Et pour tout ce qui pourrais venir s'ajouter en plus il ne faut pas espérer avoir 100% des jeux qui en disposent, même parmis les plus récents. Si ça renvoie null, c'est simplement que ça n'est pas disponible sur ce jeu/a ce moment là (ce dernier cas surtout pour les données de pit stop pour le moment).

herve4545 commented 1 year ago

pour les driverbestlapsector1(x) + '-' + driverlastlapsector1(x) driverbestlapsector2(x) + '-' + driverlastlapsector2(x) driverbestlapsector3(x) + '-' + driverlastlapsector3(x)

sur rf2, ils se cumulent s2 = s1+s2 et s3 = s1+s2+s3...d'après ce que j'ai compris sur r3e, je n'ai pas réussi à récupérer une quelconque donnée

pour ams2 (comme pour acc d'ailleurs) je suis pas surpris par ta réponse. ces jeux sont pas terribles pour la shared memory j'espère que le mans ultimate sera bien à ce niveau

herve4545 commented 1 year ago

sur rf2 les s1/s2/s3 s'affichent lorsque le tour est terminé ex : avant la fin du 1er tour, il n'y a rien qui s'affiche

j'ai pas mal de problème de coding de mon côté mais je pense quand même qu'il y a un souci sur ces sx

SHWotever commented 1 year ago

Hello, il faut que le tour soit fini en effet, c'est le dernier tour (sous entendu fini) comme le lastlaptime.

herve4545 commented 1 year ago

Hello Arf, dommage ca serait bien que ce soit en temps réel comme pour [DataCorePlugin.GameData.SectorxTime]

sinon, je pense que ca va être un peu perturbant d'avoir ce décalaga d'affichage entre :

1) mon [DataCorePlugin.GameData.Sector1Time],'') que j'affiche sur le dash principal

2 )son équivalent affiché sur le leaderbord (driverlastlapsector1(moi))

SHWotever commented 1 year ago

C'est une question de cohérence entre les jeux, pour la plupart c'est une fois le tour fini, je vais m'en tenir à ça pour éviter que chaque jeu donne des choses différentes pour "soi disant" la même donnée ;)

Sachant que pour beaucoup il y a une nette différence entre ses "propres" données (du joueur), et les données de tous les autres, Ce que je peux donner pour le joueur en cours est rarement dispo pour tous les autres.

herve4545 commented 1 year ago

ok ca marche

herve4545 commented 1 year ago

Hello Avec la 9.0.5b3 qui me semble être une version très aboutie Bravo pour le super travail

J'ai testé sur rf2 OK pour moi pour :

Pour l'affichage en temps réel des sectors j'ai constaté que r3, rf2, acc et ams2 permettent d'afficher les sectors en temps réel. J'ai testé rapidement avec secondmonitor. Pour Iracing, je ne sais pas mais tu sembles bien connaître ce jeu Pourrais-tu reconsidérer la question pour les afficher en temps réel :)

En tout cas, merci pour ces très grosses évolutions

1

herve4545 commented 1 year ago

Pour ce problème, le LeaderboardOpponentGap ne semble plus fonctionner dès lors que j'ai au moins 1 tour de retard sur le leader. Dans ce cas, je recois 0.0 au lieu de +1lap

J'ai beau cherché, je ne trouve pas de bug chez moi Jai downgradé en 9.0.4 mais ca ne fonctionne pas non plus. Je suis perdu

sur mon leaderboard, ca fonctionne. je vois bien +1LAP mais sur mon dash_1, je vois uniquement un tiret

0

SHWotever commented 1 year ago

Hello a froid ça me paraît normal, le leaderboardposition est sur 1, je ne vois pas de formule pour le changer, donc le gap du leader au leader il n'y en a pas, ce qui me surprend c'est que de temps en temps il y ai de la donnée.je regarde demain au cas où ;)

Mais c'est sur que le leaderboard complet a droite et le composant seul sans position définie ne peuvent pas donner le même résultat (Dans une répétition simhub s'occupe d'incrementer le leaderboardposition a chaque ligne), mais sans répétition c'est la première ligne sur tu as, qui est bien vide aussi pour le gap a droite dans le leaderboard complet.

Pour avoir sa propre ligne, deux possibilités, soit assigner raceposition a leaderboardposition via une formule, ou plus simple activer l'option LeaderboardPositionRelativeToPlayer et mettre leaderboardposition a zéro (dans ce mode la position 0 est centrée sur le joueur en cours, 0 le joueur, -1 le précédent, 1 le suivant etc ...)

herve4545 commented 1 year ago

Oui pardon le gapmode devrait être sur fromplayer pour mon dash_1 Normalement Il etait bien sur fromplayer mais je n'ai pas fais attention lors de la copie d'écran car je faisais des tests

Si cane fonctionne plus, C'est peut être de ma faute....j'ai peut être fait une modif par erreur Je regarderai demain

SHWotever commented 1 year ago

Je ne parlais pas du gapmode, si tu veux la même donnée qu'à droite c'est bien le gap "from leader", par contre si tu veux ta ligne de leaderboard "a toi" sans trop d'efforts et retrouver ce que tu montres a droite, c'est un peu plus bas dans les options

herve4545 commented 1 year ago

Merci pour ton aide Je dois être un peu surmené avec toutes les modifs que j'ai intégré LOL

herve4545 commented 1 year ago

Hello J'ai corrigé plusieurs erreurs sur mon dash pour ce gap_leader Il semble que j'avais déjà cassé cette fonctionnalité il y a plusieurs mois

herve4545 commented 1 year ago

Hello A tout hasard, Est ce qu'une donnée PIT REQUEST serait disponible dans les jeux ? Merci

herve4545 commented 1 year ago

Hello Merci pour les sectors "temps réel"

herve4545 commented 1 year ago

Hello Une petite question sur les temps des sectors on a les cudrivercurrentlapsector1time et drivercurrentlapsector2time mais on a uniquement le driverlastlapsector3sectortime pour le sector3

ce qui veut dire que à chaque nouveau tour de piste, les sectors 1 et 2 sont réinitialisés jusqu'à leur prochaine alimentation alors que le sector 3 reste alimenté jusqu'à sa prochaine alimentation

pourquoi cette différence de traitement ? Ne serait-il pas possible d'avoir un "current" pour le s3

Cela vaut aussi pour ces attributs [DataCorePlugin.GameData.Sector1Time] [DataCorePlugin.GameData.Sector2Time] [Sector3LastLapTime]

Merci

SHWotever commented 1 year ago

Pour le coup dès qu'on finit le s3 on passe au tour suivant, donc le temps du secteur n°3 pour le tour en cours n'existe jamais, dès que l'on a fini le tour tour tout passe en "last lap"

Donc au final ca existe mais c'est : driverlastlapsector3, ca ne peut pas exister sur le tour en cours (sauf Iracing qui à pas mal de circuits avec plus de 3 secteurs, mais c'est une autre histoire que je doit adresser aussi :D ... mais ca ne change pas la logique, le dernier secteur conclut le tour).

Si je prends l'exemple de rf2, suivant la même logique le s3 du tour en cours n'existe juste pas : image

Pour les pit requests, j'ai regardé, mais me faudra plus de temps pour comprendre la logique des différents jeux, ca varie pas mal, je n'ai pas encore tout compris :(

herve4545 commented 1 year ago

OK Merci En tout cas, c'est des super évolutions On a un leaderboard très très complet Bravo pour le super taf

herve4545 commented 1 year ago

Hello Sur AMS2 Pour les sectors, tu précises que le jeu n'envoie rien Je récupère effectivement des données incohérentes avec des valeurs très faibles SecondMonitor récupère des données sectors qui semblent correctes. Est-ce à dire qu'il exploite le mode UDP ?

SHWotever commented 1 year ago

Sur AMS2 j'ai juste les secteurs du tour en cours, effectivement il y a un petit soucis avec les unités (seconds vs millisecondes) Pour le moment je n'ai pas tenté de combler les manques sur les secteurs (excepté Iracing pour le moment) Donc que ce soit current/last/best cela dépend de ce que le jeu fournit (a cet état de la béta), mais en aillant le "current", on peut commencer à déduire les autres en effet, je suis en train de préparer ça justement.

herve4545 commented 1 year ago

pour rf2, j'ai pas mal roulé et tout fonctionne très bien pour les données que j'ai ajouté :) 0 0 1

herve4545 commented 1 year ago

Hello Ok vu.....pour le Pit request a venir Il pourrait être intéressant d'avoir également les DNF. A voir si c'est disponible Merci

SHWotever commented 1 year ago

J'ai rien vu qui corresponde à cette donnée, si tu as un replay avec un cas identifié de DNF que je puisse creuser ca m'interresse ;)

herve4545 commented 1 year ago

sur rf2 A partir du milieu de la video je créé un paquet de dnf en roulant à contre-sens 1

https://drive.google.com/file/d/1ZbRR66Cz6UhBS-QYd5c-fee28sh_jOYw/view?usp=drive_link

SHWotever commented 1 year ago

En fait ... en fouillant ... j'ai trouvé la donnée sur RF2 et ams2, faut que je continue la quète :D

herve4545 commented 1 year ago

finalement, rf2 est plus riche que je ne l'imaginais pour les ingarage, inpit, inpitlane, outlap c'est rf2 qui fonctionne le mieux

Pour inpitlane, y aurait-il une possibilité de le scinder en 2 avec :

le "gainposition" me perturbe un peu MDR quand je gagne des place, ca affiche +xx et quand je perds des places, ca affiche -xx perso, j'aurai fait le contraire

ben oui, parmi toutes les données que j'ai ajouté, j'ai trouvé d'autre à redire :)

SHWotever commented 1 year ago

pour le gainposition c'est le nombre de "places gagnées" littéralement, si je prends deux places j'en ai bien gagnées "2", si je perd deux places mon gain devient négatif -2 places. Pour ce sujet il y aura deux camps :D J'en ai choisi un :D, vu que c'est juste un nombre un petit "-" devant et c'est arrangé ;)

Pour les pits, comme je disais plus tôt je m'arrête là, les leaderboards ne sont pas le sujet principal de simhub, et j'ai déjà fait pas mal de tours de passe passe pour le remplir, mais je ne veux pas m'engager dans ce niveau de détail au risque commencer à plomber les perfs :( .

Je vais juste conclure avec les DNF que j'ai vu à deux/trois endroits, ainsi que les Pitrequests. Après je ne cherche pas à tout extraire, l'idée ca n'est pas que l'on se trouve avec une majorité des données de leaderboard qui ne marchent que sur un jeu. pour le moment j'ai plutot pas mal choisi et le tout est plutôt cohérent, mais avec des enter/exit, là ca commence à être rare. En tout cas je stoppe ce sujet, je le stabilise, et plus tard si la demande se fait sentir j'engagerait un nouveau chantier ;)

herve4545 commented 1 year ago

OK Ca marche pas de soucis ; c'est déjà très très complet avec ce que tu as ajouté. Oui tu as bien choisi. J'ai pas mal testé sur rf2 et le résultat est vraiment super.....et ca laisse augurer de bien belles choses avec LMU pour r3e, ams2 c'est aussi très bien pour acc....ce jeu est pauvre en données. je vais supprimer toutes les spécificités que j'avais intégré. de toute facçon, ce jeu sera remplacé l'année prochaine Je vais pouvoir me passer de secondmonitor. J'en avais encore l'utilité pour les pits