Aller au contenu
Shykuzo

solution partielle ... Skript - Crash du serveur à l'exécution du "/trade"

Messages recommandés

Version de Minecraft : 1.13.x - 1.14.x (Native : 1.14.4)
Version de Skript : 2.5.3

Addons utilisés: Vixio, Skript-GUI, SkQuery, SkEnt, SkDragon, Skellett, SkBee, SharpSK et Reqn

Type du skript : Echange d'objets entre joueurs

Description du script :

Bonjour à tous et à toutes !

J'ai créer une commande afin d'échanger un ou plusieurs objets entre deux joueurs, celle-ci n'est pas encore terminée mais je rencontre un problème plutôt énervant.
Quand j'exécute la commande "/trade", tout vas très bien, l'autre joueur reçoit bien la demande et quand lui fait cette même commande, pas de problème non plus.

Cependant, si je ferme l'inventaire, des centaines de messages s'envoient disant "... à annulé l'échange !", le menu de l'autre joueur ne se ferme pas automatiquement et le serveur peut crasher.
Il ne crash pas à tout les coups mais c'est déjà arrivé une fois, pas que j'ai une mauvaise machine, non, elle est assez puissante mais même certain de mes Skripts, tel que celui qui gère les logs, crash.

Voici le code :

 

Citation

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Ce problème est très embêtant car mon serveur prend des plombs à se relancer et crash une fois sur deux tellement il y a de trucs à chargés ...
Si vous avez la solution à mon problème, merci à vous !

Bonne journée !

Partager ce message


Lien à poster
Partager sur d’autres sites

De ce que j'ai compris, quand un des deux joueurs ferme le GUI, sa t'envoie plusieurs messages en même temps dans le chat donc je pense que il faut couper cette "boucle" en mettant "stop" ? 🤔

Modifié par LOUDO

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 18 heures, LOUDO a dit :

De ce que j'ai compris, quand un des deux joueurs ferme le GUI, sa t'envoie plusieurs messages en même temps dans le chat donc je pense que il faut couper cette "boucle" en mettant "stop" ? 🤔

Peut-être, je n'y ai pas pensé, j'essayerais plus tard 🙂

EDIT : 
Sa ne fonctionne pas 😕
(Aucune erreur)

Modifié par Shykuzo

Partager ce message


Lien à poster
Partager sur d’autres sites

 

Tu a juste à mettre des stop au bonne endroit pour que ton code s'exécute correctement

 

                                else:
                                    delete {Trade::%arg-1%}
                                    create a gui with virtual chest inventory with 3 rows named "&8● &bTrade" with stealable items:
                                        run on gui close:
                                            if player has a gui open:
                                                close player's inventory
                                                send "{@Prefix} &e%arg-1% &7à annulé l'échange !" to player
                                                send "{@Prefix} &7Vous avez annulé l'échange !" to arg-1
                                                stop
                                              else if arg-1 has a gui open:
                                                close arg-1's inventory
                                                send "{@Prefix} &e%player% &7à annulé l'échange !" to arg-1
                                                send "{@Prefix} &7Vous avez annulé l'échange !" to player
                                                stop
                                    open last gui to player and arg-1
                                    stop
                        else:
                            send "{@Error} &cIl semblerait que le joueur saisis ne soit pas dans le même monde que vous !" to player
                            stop

 

En gros  ton erreur c'étais que même si player ferme le gui bah ça va quand même le faire a arg-1 c'est pour ça que t'avais le double message sur arg-1 et player 

la ce que ça va faire c'est que si player ferme le menu ça ferme le gui envois les message et stop pareil avec arg-1
mais si t'es condition sont fausse ça va ouvrir le gui et stop 

Quand tu as des erreur comme ça de double message ou autre c'est qu'il manque un stop 

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.