CommandBlock Scoreboard sprint_one_cm reset sans raison

FunkyToc

Map Baker
26 Mars 2013
511
112
155
33
France, Paris
funkytoc.fr
Bonjour,

Je pense avoir trouvé un bug/faiblesse de minecraft 1.13, et j'aimerai m'en assurer : si cela se trouve, je suis un bon gros mongole :fou:

L'idée : avoir la distance de sprint du joueur. Ce score augmente au cours de la distance parcourue. On le reset à 0 SI le joueur ne sprint plus.
Le problème : le score est reset aléatoirement en plein sprint. Ce qui suggère que le jeu n'incrémente pas correctement le sprint_one_cm. Proco ou RAM coupable ?

Initialisation :
Code:
/scoreboard objectives add SprintDistance minecraft.custom:minecraft.sprint_one_cm
/scoreboard players set @a SprintDistance 0
/scoreboard objectives add SprintReset minecraft.custom:minecraft.sprint_one_cm
/scoreboard players set @a SprintReset 0

Dans une boucle :
Avant l'exec des 2 lignes suivantes, le jeu a incrémenté les 2 objectifs à 1 puisque que le joueur est entrain de courir.
Code:
scoreboard players set @a[scores={SprintReset=..0}] SprintDistance 0
scoreboard players set @a[scores={SprintReset=1..}] SprintReset 0


PS: le fall_one_cm ne fonctionne pas non plus en 1.13 T.T
 
Dernière édition:

FunkyToc

Map Baker
26 Mars 2013
511
112
155
33
France, Paris
funkytoc.fr
J'ai trouvé une solution alternative convenant à ma demande, mais qui ne fait que contourner le problème : l'utilisation d'un buffer qui temporise le reset. Une sorte de cooldown !

Dans l'exemple suivant, on autorise un arrêt du Sprint pendant 20 ticks (soit 1 seconde) avant de reset le SprintDistance à 0. Cela permet d'éviter les reset de la distance dût aux lags/ralentissement/défauts.

Code:
/scoreboard objectives add Sprint minecraft.custom:minecraft.sprint_one_cm
/scoreboard players set @a Sprint 0
/scoreboard objectives add SprintDistance minecraft.custom:minecraft.sprint_one_cm
/scoreboard players set @a SprintDistance 0
/scoreboard objectives add SprintBuffer dummy
/scoreboard players set @a SprintBuffer 0

Code:
/scoreboard players add @a[scores={Sprint=..0,SprintBuffer=..20}] SprintBuffer 1
/scoreboard players set @a[scores={Sprint=1..}] SprintBuffer 0
/scoreboard players set @a[scores={SprintBuffer=20..}] SprintDistance 0
/scoreboard players set @a[scores={Sprint=1..}] Sprint 0
 

MrBurdy

Architecte en herbe
1 Août 2015
23
6
71
25
Le fall_one_cm fonctionne très bien mais il faut être en survie(et faire une chute de deux blocs minimum).
Les premières commandes fonctionnent très bien aussi mais le score reviens à 0 si on touche un mur, on saute... Ce qui est logique, donc je ne vois pas d'où viens ton problème.
 
  • J'aime
Reactions: FunkyToc