Problème de datapack, ralentissement énorme du serveur local

Cinahcem

Bucheron
18 Février 2018
21
3
16
Bonjour,
dans ma map j'ai un datapack pour pas mal de choses et notamment l'ajout d'une épée capable d'envoyer des projectiles.
J'ai trois fonctions pour ça, la fonction tick de base qui s'active tous les tick, la fonction sword et la fonction swordfiles.
Lorsque que je clic avec une canne à pêche carotte ça ajoute 1 à "clic".

Le Problème est que au moment où je clic avec la canne le serveur local ralenti à fond genre je ne peux plus taper les mobs, les blocs de commandes sont vide les chunks ne chargent pas... etc. Le seul moyen est de désactiver le datapack...

Je ne sais pas du tout à quoi c'est dû, j'espère que vous pourrez m'aider... Merci d'avance.

Fonction tick.png





Fonction sword.png





Fonction swordfiles.png
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Hey !
Es-tu sûr que ta fonction récursive ne boucle pas à l'infini ?
 

Cinahcem

Bucheron
18 Février 2018
21
3
16
Bonjour,
si je crois bien que c'est ce qui ce passe mais je n'arrive pas à régler ce problème...
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Dans ce genre de cas, ajoute un "timeout", donc un nombre d'itération maximum !
Genre à chaque tour de boucle, tu incrémentes une variable de 1, et dès que tu atteins un palier défini préalablement, tu stoppes les appels récursif
 

Cinahcem

Bucheron
18 Février 2018
21
3
16
Je vais essayer, j'ai un peu modifié les fonction et le serveur ralenti un peu, que pendant 1 seconde, seulement le projectile ne bouge pas d'un pouce pendant ce laps de temps...
 

Cinahcem

Bucheron
18 Février 2018
21
3
16
Ah et aussi, je ne sais pas comment faire prendre des dégâts à un Wither grâce à des commandes j'ai essayé avec des effets de instant_health mais le jeu n'accepte pas alors qu'une potion en splash fonctionne... merci Mojang... J'aimerais lui faire prendre des dégâts à chaque fois que le projectile de l'épée le touche, du moins quand le projectile bougera... Désolé j'ai pas mal besoin d'aide...
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Personnellement, le effect d'instant_damage fonctionne :/
Code:
/effect give @e[type=minecraft:wither_skeleton] minecraft:instant_health 1 1
 

Cinahcem

Bucheron
18 Février 2018
21
3
16
Ah je me suis mal exprimé, je parlais du Wither boss, là ca ne fonctionne pas pour lui...
Et d'ailleurs merci pour les petits conseils pour le datapack, après avoir modifié quelque trucs, le projectile bouge correctement et sans lags du serveur local.
 
  • J'aime
Reactions: Oromis

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Du coup j'ai testé, le Wither est immunisé aux effets, dont les potions splash. Après, tu peux simuler des dégâts en faisant décrémenter directement la valeur du NBT Tag de vie "Health", par contre il n'aura l'animation spécifique de la prise de dégâts.
 

Cinahcem

Bucheron
18 Février 2018
21
3
16
Oui...
Ah on peut faire comme ça :o mais genre comment je fais pour que ça enlève 1 hp à chaque projectiles qu'il reçoit ? C'est avec la commande /data ?