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