Aller au contenu

Messages recommandés

Version de Minecraft : 1.12.2
Version 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

 

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é par Anarchick
  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Il y a 11 heures, Alliz a dit :

Version de Minecraft : 1.12.2
Version 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

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é par Alliz

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.