Aller au contenu
  • 0

Mystère des bugs de mon skript de save inventory


Question

Posté(e)

De retour, pour un autre problème.

En effet, j'ai créé en m'inspirant d'un script passé en forum d'aide ainsi que des documents de ce site, cependant j'ai des problèmes sur l’exécution de certaines commandes de mon script.

 

variables:
   {ID} = 1

command /backupinventory:
   permission: skript.invbackup
   description: Backup générale des inventaires
   usage: /backupinventory
   aliases: backinv
   trigger:
       broadcast "&dBackup de tous les inventaires !"
       loop all players in world "Kingdoms Origins":
           set {helmet.%loop-player%.%{ID}%} to helmet of the player
           set {chestplate.%loop-player%.%{ID}%} to chestplate of player
           set {leggings.%loop-player%.%{ID}%} to leggings of player
           set {boots.%loop-player%.%{ID}%} to boots of player
           set {inventory.%loop-player%.%{ID}%} to player's serialized inventory
           wait 1 tick
           send "&dTon inventaire a été sauvegardé !" to loop-player
       set {Date.%{ID}%} to now
       broadcast "&dTout les inventaires ont été sauvegardés !"
       message "&c Le numéro de ce backup est %{ID}% effectué le %now%"
       add 1 to {ID}

command /restoreallinventory <int>:
   permission: skript.invrestoreall
   description: restauration de l'inventaire de tout les joueurs
   usage: /restoreallinventory <n° du backup>
   aliases: resallinv
   trigger:
       if arg 1 is an integer:
           broadcast "&dRestauration de tout les inventaires !"
           loop all players in world "Kingdoms Origins":
               equip player with 1 of {helmet.%loop-player%.%arg-1%}
               equip player with 1 of {chestplate.%loop-player%.%arg-1%}
               equip player with 1 of {leggings.%loop-player%.%arg-1%}
               equip player with 1 of {boots.%loop-player%.%arg-1%}
               restore inventory of player from {inventory.%loop-player%.%arg-1%}
               wait 1 tick
               send "&dTu as récupérer ton inventaire !" to loop-player
           broadcast "&dTout les inventaires ont été restaurés !"

command /restoreinventory <player> <int>:
   permission: skript.invrestore
   description: restaure l'inventaire d'un joueur
   usage: /restoreinventory <player> <n° du backup>
   aliases: resinv
   trigger:       
       if arg 1 is in world "Kingdoms Origins":
           if arg 2 is an integer:
               equip player with 1 of {helmet.%arg-1%.%arg-2%}
               equip player with 1 of {chestplate.%arg-1%.%arg-2%}
               equip player with 1 of {leggings.%arg-1%.%arg-2%}
               equip player with 1 of {boots.%arg-1%.%arg-2%}
               restore inventory of player from {inventory.%arg-1%.%arg-2%}
               wait 1 tick
               send "&dTu as récupérer ton inventaire !" to arg-1
               message "&dL'inventaire de %arg-1% a été restauré !"

command /listbackup:
   permission: skript.listbackup
   description: affiche les n° et les dates des backups
   usage: /listbackup
   trigger:
       subtract 1 from {ID}
       loop {ID} times:
           message "&9Backup n°&4%loop-number%&9 à &2%{Date.%loop-number%}%"
       add 1 to {ID}

on join:
   if player is in world "Kingdoms Origins":
       if {inventory.%player%.%{ID}%} is not set:
           wait 20 tick
           send "&dTon inventaire n'a pas été sauvegardé au dernier backup, lancement de la sauvegarde" to player
           set {helmet.%player%.%{ID}%} to helmet of the player
           set {chestplate.%player%.%{ID}%} to chestplate of player
           set {leggings.%player%.%{ID}%} to leggings of player
           set {boots.%player%.%{ID}%} to boots of player
           set {inventory.%player%.%{ID}%} to player's serialized inventory
           wait 1 tick
           send "&dTon inventaire a été sauvegardé !" to player
           send "&cL'inventaire de %player% a été sauvegardé au backup n°%{ID}%" to console

every 30 minutes:
   broadcast "&dSauvegarde automatique de tous les inventaires"
   execute console command "/backupinventory"

 

d'abord, la console ne peut exécuter correctement aucune des commandes, les messages s'affichent correctement des 2 cotés mais rien ne se passe au finale, de plus, le célèbre message "commande inconnue" vient a chaque fois se glissé dans les messages d’exécution de la console. Aussi, cela rend le dernier event "every 30 minutes" inefficace.

 

2ème problème que j'ai rencontré, (mais que j'ai peut-être réglé sans y faire attention), lorsque je restaure l'inventaire d'un joueur, sa restaure le mien a la place et ce, de façon partielle.

 

Je ferais après cela d'autres optimisations simples du type, limite de backup sauvegardé et désactivation de l'event périodique lorsqu’aucun joueur est connecté. Le seules aides que je voudrais serez pour réglé les bugs cité ci-dessus.

 

Spigot 1.8.8

SkQuerry 3.21.4 et 4.0

Skript 2.2-snapshot

 

tout aide pour réglé/réduire ces petits bug de script est la bienvenue :)

syl2010

1 réponse à cette question

Messages recommandés

  • 0
Posté(e)

ah bah, non, je vient de régler le problème, pas trops compris comment mes modifs a réglé les problèmes de la console mais sa marche maintenant, désolé pour le post inutile. Je vous donne quand même mon code résolu.

 

variables:
   {ID} = 1

command /backupinventory:
   permission: skript.invbackup
   description: Backup générale des inventaires
   usage: /backupinventory
   aliases: backinv
   trigger:
       broadcast "&dBackup de tous les inventaires !"
       loop all players in world "Kingdoms Origins":
           set {helmet.%loop-player%.%{ID}%} to helmet of the loop-player
           set {chestplate.%loop-player%.%{ID}%} to chestplate of loop-player
           set {leggings.%loop-player%.%{ID}%} to leggings of loop-player
           set {boots.%loop-player%.%{ID}%} to boots of loop-player
           set {inventory.%loop-player%.%{ID}%} to loop-player's serialized inventory
           wait 1 tick
           send "&dTon inventaire a été sauvegardé !" to loop-player
       set {Date.%{ID}%} to now
       broadcast "&dTout les inventaires ont été sauvegardés !"
       message "&c Le numéro de ce backup est %{ID}% effectué le %now%"
       add 1 to {ID}

command /restoreallinventory <int>:
   permission: skript.invrestoreall
   description: restauration de l'inventaire de tout les joueurs
   usage: /restoreallinventory <n° du backup>
   aliases: resallinv
   trigger:
       if arg 1 is an integer:
           broadcast "&dRestauration de tout les inventaires !"
           loop all players in world "Kingdoms Origins":
               equip loop-player with 1 of {helmet.%loop-player%.%arg-1%}
               equip loop-player with 1 of {chestplate.%loop-player%.%arg-1%}
               equip loop-player with 1 of {leggings.%loop-player%.%arg-1%}
               equip loop-player with 1 of {boots.%loop-player%.%arg-1%}
               restore inventory of loop-player from {inventory.%loop-player%.%arg-1%}
               wait 1 tick
               send "&dTu as récupérer ton inventaire !" to loop-player
           broadcast "&dTout les inventaires ont été restaurés !"

command /restoreinventory <player> <int>:
   permission: skript.invrestore
   description: restaure l'inventaire d'un joueur
   usage: /restoreinventory <player> <n° du backup>
   aliases: resinv
   trigger:       
       if arg 1 is in world "Kingdoms Origins":
           if arg 2 is an integer:
               equip arg-1 with 1 of {helmet.%arg-1%.%arg-2%}
               equip arg-1 with 1 of {chestplate.%arg-1%.%arg-2%}
               equip arg-1 with 1 of {leggings.%arg-1%.%arg-2%}
               equip arg-1 with 1 of {boots.%arg-1%.%arg-2%}
               restore inventory of arg-1 from {inventory.%arg-1%.%arg-2%}
               wait 1 tick
               send "&dTu as récupérer ton inventaire !" to arg-1
               message "&dL'inventaire de %arg-1% a été restauré !"

command /listbackup:
   permission: skript.listbackup
   description: affiche les n° et les dates des backups
   usage: /listbackup
   trigger:
       subtract 1 from {ID}
       loop {ID} times:
           message "&9Backup n°&4%loop-number%&9 à &2%{Date.%loop-number%}%"
       add 1 to {ID}

on join:
   if player is in world "Kingdoms Origins":
       if {inventory.%player%.%{ID}%} is not set:
           wait 20 tick
           send "&dTon inventaire n'a pas été sauvegardé au dernier backup, lancement de la sauvegarde" to player
           set {helmet.%player%.%{ID}%} to helmet of the player
           set {chestplate.%player%.%{ID}%} to chestplate of player
           set {leggings.%player%.%{ID}%} to leggings of player
           set {boots.%player%.%{ID}%} to boots of player
           set {inventory.%player%.%{ID}%} to player's serialized inventory
           wait 1 tick
           send "&dTon inventaire a été sauvegardé !" to player
           send "&cL'inventaire de %player% a été sauvegardé au backup n°%{ID}%" to console

every 30 minutes:
   broadcast "&dSauvegarde automatique de tous les inventaires"
   execute console command "/backupinventory"

 

Merci quand même si vous aviez eu l'attention de me répondre ^^

×
×
  • 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.