Aller au contenu

Question

Posté(e)

Bonjour,

Tout d'abord mes version, skript 2.2dev35b et minecraft 1.10.2


Voila, je cherche a gérer les déplacements d'armor stand  c'est a dire que des :
si 3 blocs en dessous, il y a un repeater,  je récupère sa direction et modifie la direction de l'armor stand
La détection fonctionne bien ainsi que le déplacement cependant ça ne change pas de direction au passage du répéteur mais des qu'il atteint la première destination
une petite video valent mieux qu'un long discours
et mon code 

command /grun [<integer>]:
	trigger:
		clear {gfinal}
		set {_distance} to 10
		set {_gloc} to location 3 below {gdepart}
		set the block at {_gloc} to a redstone block
		wait 20 tick # sinon n'a pas le temps de détecter la redstone allumée 
		loop all blocks in radius 2 around {_gloc}:
			if loop-block is redrepon:
				set {_t} to type of block at loop-block
				set {_t2} to data value of loop-block 
#				broadcast "%{_t}% direction %{_t2}%"
				if {_t2} = 2:# sud
					broadcast "Au démarrage direction vers LE SUD trouvé"
					set {gfinal} to location {_distance} meters south of {a}
					set the block at {gfinal} to a red wool block
					add location of {gfinal} to {_blocdir::*}
					wait 1 tick
					broadcast "%location of {gfinal}%"
					exit loop # comme on veux 1 on arrête la boucle au premiers
		if {gfinal} is not set:
			broadcast "il manque la direction de départ"
			stop
		set {_v} to vector from {gdepart} to {gfinal} #pour orienter l'armor
		set yaw of {a} to {_v}
		set vector length of {_v} to 1
		teleport {a} to {gdepart}
		broadcast "-----"
		while distance between {gfinal} and location of {a} is greater than 1:
			loop blocks between block at location of {a} and block at {gfinal}:
				set {_v} to vector from location of {a} to {gfinal}
				set vector yaw of {a} to {_v}
				set vector length of {_v} to 1
				teleport {a} to loop-block
				set {_t} to type of block 3 meter under {a}
				if {_t} is not air:
					if {_t} is redrepoff:# 93 redstone repeater eteint
						broadcast "repeater OFF"
						broadcast "ARRET"
						exit 2 sections
					if {_t} is redrepon:# 94 redstone repeater allumé:
						set {_t2} to data value of block 3 meter under {a} # on lis la direction du repeater
						#broadcast "Changement de direction %{_t2}%"
						if {_t2} = 1:# EST
							broadcast "Changement de direction vers L'EST"
							set block {_distance} meters east of {a} to a redstone block
							set {gfinal} to location {_distance} meters east of {a}
							add location of {gfinal} to {_blocdir::*}
							broadcast "%location of {gfinal}%"
							exit 1 section#loop
				if distance between {gdepart} and location of {a} is greater than 35: # définit un rayon de 35 pour ne le perdre
					exit loop
				wait 5 tick	
			wait 15 tick
			#fin loop	
			broadcast "fin loop"
		#fin while 	
		broadcast "- fin déplacement -"	
		teleport {a} to {gdepart}
#		set the block 3 meter under {gdepart} to air
		set the block at {_gloc} to air
		loop {_blocdir::*}:
			set block at location of loop-value to air

pour le moment je n'est fais les test que pour la direction est (et sud au démarrage) 
Si vous avez des idées merci et a bientôt

 

2 réponses à cette question

Messages recommandés

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.