Aller au contenu

Messages recommandés

Posté(e) (modifié)

 

Version de Minecraft : 1.13.2
Version de Skript (La dernière )

 

Type du skript : GUI

Description du script :

 

Bonjour,

Alors voila je réalise actuellement un skript qui sert de ''Recycleur'', celui-ci ouvre un GUI de Dispenser et lorsqu'on le ferme il transforme tous les items en argent tout simplement.

Or le problème est que j'utilise des listes pour détecter les items déposés et une liste composée de plus de 1 élément ne fonctionne pas, je précise que lorsqu'il y a un seul item dans la liste cela fonctionne mais ça n'a aucune utilité d'avoir un seul item dedans.

Si vous avez une solution sans tout refaire, Merci par avance,

Exemple: if event-inventory contains {recycleur.vente.2::*} (La condition n'est jamais validée car la liste composée de plusieurs éléments)

Composition de la liste: set {recycleur.vente.2::*} to dirt block and cobble block and gravel

Code entier:

on right click on a villager:
	if the name of the villager is "&a&lRecycleur":
		Recycleur(player)
		
function Recycleur(p: Player):
	open virtual dispenser inventory named "&a&lRecycleur" to {_p}

on script load:
	set {recycleur.vente.1::*} to iron ingot
	set {recycleur.vente.2::*} to dirt block and cobble block and gravel
	set {recycleur.vente.3::*} to oak wood log

on inventory close:
	if inventory name of player's current inventory is "&a&lRecycleur":
		if event-inventory contains {recycleur.vente.1::*}:

			set {_count.%player%} to amount of {recycleur.vente.1::*} in event-inventory
			set {_coins.recycleur.%player%} to {_count.%player%} * 2
			add {_coins.recycleur.%player%} to {_argent.%player%}

			add {_count.%player%} to {_count.txt.%player%}

		if event-inventory contains {recycleur.vente.2::*}:

			set {_count.%player%} to amount of {recycleur.vente.2::*} in event-inventory
			set {_coins.recycleur.%player%} to {_count.%player%} * 0.01
			add {_coins.recycleur.%player%} to {_argent.%player%}

			add {_count.%player%} to {_count.txt.%player%}
		if event-inventory contains {recycleur.vente.3::*}:
			set {_count.%player%} to amount of {recycleur.vente.3::*} in event-inventory
			set {_coins.recycleur.%player%} to {_count.%player%} * 1
			add {_coins.recycleur.%player%} to {_argent.%player%}
			
			add {_count.%player%} to {_count.txt.%player%}

		add {_argent.%player%} to {coins.%player%}
		send "%{recycleur.vente.2::*}%"
		send "&a+ &e%{_argent.%player%}% €"
		send "&6&l[&2Recycleur&6&l] &b> &3Tu viens de recycler %{_count.txt.%player%}% items pour %{_argent.%player%}% €"

 

Modifié par camster512
Posté(e)

N'ayant eu aucune réponse de la part du Forum,

Et après de nombreuses heures de recherche et d'essai, j'ai réussi à faire ce que je voulais j'ai utilisé une fonction pour le contains car il semble qu'il ait des défauts.

Code de la fonction:

 function contains(l: objects, testo: object) :: boolean:
    loop {_l::*}:
        if {_testo} contains loop-value:
            return true
    return false

Nouveau IF: 

if contains({recycleur.vente.1::*},event-inventory) is true:

 

Me reste un problème c'est que je voudrais que les items qui sont dans aucune des listes du début sois drop ou directement mis dans l’inventaire du joueur avec un petit message dans le chat si possible.

 

 

Posté(e) (modifié)

@Enzo27310 Non rien à voir mais pas grave. Nous avons fait autrement avec mon équipe car ce n'était pas réalisable et tous fonctionne. Le sujet peut-être clôturer.

Modifié par camster512
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.