Alliz 27 Posté : 4 octobre 2019 Version de Minecraft : 1.12.2Version de Skript : 2.3.7 Addons utilisés: Skellet, SK-Nbeet, SkQuery, SkRayFall, TuSKE, skDragon Type du skript : Créer une recette à partir d'item custom Description du problème: Bonjour ! Alors, je souhaite créer une recette à base d'objet custom, tout simplement un item nommé X. J'ai réussi à faire ce système en utilisant ceci: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Cette ligne marche bien, cependant ceci était un test pour voir si on pouvait créer un craft entre 2 item custom. Maintenant voici la réel ligne que je souhaite faire: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Comme vous pouvez le voir, je veut craft un iron custom à partir de 9 iron nugget custom. Cependant lorsque que reload/démarre le serveur/skript, ma machine plante totalement. Je vais vous en dire plus sur les descriptions de la machine après, mais le serveur est bien démarré, aucun message dans la console. Cependant, lorsque je retire cette ligne et je redémarre le serveur (car il a planté), j'ai un message comme quoi une recette a été retiré car elle était non trouvable (ce qui prouve qu'elle a été créée même si le serveur a planté). J'ai remarqué d'ailleurs que plus j'ajoutais de "register new shapeless recipe" cela rallongeais le temps de reload du skript significativement. En outre cette fonction prend beaucoup de ressources "pour ce qu'elle fait". En outre, auriez-vous une solution plus légère à cette ligne de code ou une alternative ? J'ai déjà essayer de mettre des wait entre les register mais ça n'a rien changé. Description de la machine (On joue avec moins de 10 joueurs et même quand y'a que moi le bug est pareil, c'est le GP 2 ) : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Je vous remercie par avance, Alliz ! Partager ce message Lien à poster Partager sur d’autres sites
Anarchick 101 Répondu : 4 octobre 2019 (modifié) Il y a 5 heures, Alliz a dit : En outre cette fonction prend beaucoup de ressources "pour ce qu'elle fait". L'api de Bukkit/Spigot ne permet pas de modifier une recette déjà existante sans avoir préalablement supprimé cette recette, OR l'api ne permet pas non plus de retirer uniquement 1 recette déjà chargé, elle permet que de supprimer toutes les recettes du serveur ou de restaurer les recettes par défaut CE QUI VEUT DIRE QUE : A chaque fois que tu utilise cette effet il y a une vérification qui est faite pour vider toutes les recettes, puis les remettre en prenant en compte la modification de 1 seule recette ce qui n'est pas du tout optimiser. Tu peux passer par skript-mirror pour optimiser tout ça comme j'ai fait avec une recette de four pour cuire un oeuf: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Pour cette version du code tu as besoin de Skript-mirror 2.0 SNAPSHOT minimum (Les ENUM n'ont plus besoin du symbole "!" pour être interprété) Et pour adapter mon code qui est spécifique au recette de four en table de craft tu as ceci Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Je sais que c'est compliquer mais c'est ce qu'il y a de plus opti en terme de temps de reload ^^ (exit créer un datapac quoi que facilek, un plugin ou modifier le code source de spigot pour les plus téméraire) Modifié 4 octobre 2019 par Anarchick 1 Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 4 octobre 2019 Il y a 11 heures, Alliz a dit : Version de Minecraft : 1.12.2Version de Skript : 2.3.7 Addons utilisés: Skellet, SK-Nbeet, SkQuery, SkRayFall, TuSKE, skDragon Type du skript : Créer une recette à partir d'item custom Description du problème: Bonjour ! Alors, je souhaite créer une recette à base d'objet custom, tout simplement un item nommé X. J'ai réussi à faire ce système en utilisant ceci: on load: register new shapeless recipe for bow named "&cArc de cupidon" with lore "De joli coeurs !" using red wool, poppy, red wool, poppy, bow, poppy, red wool, poppy, red wool register new shapeless recipe for cyan dye named "&bOrbe bleu" with lore "Contient une âme puissante" using ghast tear, diamond block, water bottle, diamond block, beacon, diamond block, magma cream, enchanted golden apple, glistering melon #CETTE LIGNE CI DESSOUS register new shapeless recipe for iron ingot named "&fFer enchanté" with lore "Matériau précieux" using cyan dye named "&bOrbe bleu", bow named "&cArc de cupidon", air, air, air, air, air, air, air stop Cette ligne marche bien, cependant ceci était un test pour voir si on pouvait créer un craft entre 2 item custom. Maintenant voici la réel ligne que je souhaite faire: on load: register new shapeless recipe for bow named "&cArc de cupidon" with lore "De joli coeurs !" using red wool, poppy, red wool, poppy, bow, poppy, red wool, poppy, red wool register new shapeless recipe for cyan dye named "&bOrbe bleu" with lore "Contient une âme puissante" using ghast tear, diamond block, water bottle, diamond block, beacon, diamond block, magma cream, enchanted golden apple, glistering melon #CELLE CI DESSOUS register new shapeless recipe for iron ingot named "&fFer enchanté" with lore "Matériau précieux" using iron nugget named "&7Pepite de fer enchanté", iron nugget named "&7Pepite de fer enchanté", iron nugget named "&7Pepite de fer enchanté", iron nugget named "&7Pepite de fer enchanté", iron nugget named "&7Pepite de fer enchanté", iron nugget named "&7Pepite de fer enchanté", iron nugget named "&7Pepite de fer enchanté", iron nugget named "&7Pepite de fer enchanté", iron nugget named "&7Pepite de fer enchanté", iron nugget named "&7Pepite de fer enchanté" stop Comme vous pouvez le voir, je veut craft un iron custom à partir de 9 iron nugget custom. Cependant lorsque que reload/démarre le serveur/skript, ma machine plante totalement. Je vais vous en dire plus sur les descriptions de la machine après, mais le serveur est bien démarré, aucun message dans la console. Cependant, lorsque je retire cette ligne et je redémarre le serveur (car il a planté), j'ai un message comme quoi une recette a été retiré car elle était non trouvable (ce qui prouve qu'elle a été créée même si le serveur a planté). J'ai remarqué d'ailleurs que plus j'ajoutais de "register new shapeless recipe" cela rallongeais le temps de reload du skript significativement. En outre cette fonction prend beaucoup de ressources "pour ce qu'elle fait". En outre, auriez-vous une solution plus légère à cette ligne de code ou une alternative ? J'ai déjà essayer de mettre des wait entre les register mais ça n'a rien changé. Description de la machine (On joue avec moins de 10 joueurs et même quand y'a que moi le bug est pareil, c'est le GP 2 ) :https://www.firstheberg.com/fr/vps-kvm-ssd-windows-linux Je vous remercie par avance, Alliz ! Ca prend naturellement plus de temps... Je ne sais pas bien comment Skript fait pour enregistrer un nouveau craft, mais il doit bien il y avoir un énorme processus de "création" derrière tout ça, c'est pas la même chose qu'un broadcast où il ne faut pas faire "grand chose" en Java Sinon, pour ton problème ... Tu veux faire des crafts custom avec des crafts custom ... Mmh, je n'ai pas de solution de "craft", mais une solution alternative. Pourquoi ne pas utiliser un villageois (Un Shopkeeper) ? Comme ça, les joueurs craftent les deux premiers items, et doivent aller à ce fameux shopkeeper pour échanger leur 2 items custom contre un troisième (qui ne sera donc plus craftable dans ma solution alternative) Si tu ne comprends pas, je t'expliquerai ^^ Amicalement Partager ce message Lien à poster Partager sur d’autres sites
Alliz 27 Répondu : 5 octobre 2019 (modifié) Salut, Merci pour vos réponses ! @Anarchick je vais essayer ça lundi ! EDIT: Je viens d'essayer, tu pourrais pas me faire l'exemple des deux items customs s'il te plaît ? Je l'appliquerai ensuite au reste mais j'ai un peu de mal à mélanger Java et Skript (Si tu as le temps et l'envie de le faire bien sûr) @Kneaxy C'est une alternative oui, mais elle ne me convient pas, mais merci de la proposition Modifié 5 octobre 2019 par Alliz Partager ce message Lien à poster Partager sur d’autres sites