Aller au contenu
  • 0

Question

Posté(e)

Version de Minecraft : 1.9.2 - Spigot
Version de Skript : 2.6.4

Addons utilisés: Skellet v2.0.8, LimeSK v1.0, skRayFall v1.9.28, skQuery v4.1.8, SkBee v2.7.1, SharpSk v1.6.3, 

Type du skript : L'idée est de détecter si un coffre a été généré naturellement ou si celui-ci a été placé par un joueur. La finalité est de générer "manuellement" par le skript le contenu possible du coffre, puis, empêcher la génération d'objet dans ce même coffre pour un joueur l'ayant trouvé ; 
Le "problème" est de ne pas appliquer cela à tout les coffres existants 

Description du script :

Actuellement je n'ai pas encore trouvé comment stocker le coffre placé artifficiellement dans une liste permettant d'indiquer que celui-ci ne doit pas être sujet aux modifications de son inventaires.
Pistes déjà explorées :
- NBT (Pas réussi à mettre en forme..)
- Nom de l'inventaire (Semble ne pas s'actualiser ?)
- Localisation du coffre


 

on place of chest:
	# set {_world} to player's world
	# set {_xlocchest} to x-coordinate of location of event-block
	# set {_ylocchest} to y-coordinate of location of event-block
	# set {_zlocchest} to z-coordinate of location of event-block
	# add -0.5 to {_xlocchest}
	# add -0.5 to {_ylocchest}
	# add -0.5 to {_zlocchest}	
	# message "%{_xlocchest}%, %{_ylocchest}%, %{_zlocchest}%"
	# broadcast "%{chestlist::*}%"
	add event-block to {chestlist::%player%::*}
			
on right click on a chest:
	loop {chestlist::*}:
		if {chestlist::*} contains location of targeted block:
			broadcast "test"
	# set {_xlocchest} to x-coordinate of location of event-block
	# set {_ylocchest} to y-coordinate of location of event-block
	# set {_zlocchest} to z-coordinate of location of event-block
	# add -0.5 to {_xlocchest}
	# add -0.5 to {_ylocchest}
	# add -0.5 to {_zlocchest}
	# broadcast "%{_locchest}%"
	loop {chestlist::*}:
		if {chestlist::*} contains {_locchest}:
			broadcast "test"
		else:
			broadcast "test2"
	

Merci par avance !

4 réponses à cette question

Messages recommandés

  • 0
Posté(e)
Il y a 2 heures, ThibaudPst a dit :

Version de Minecraft : 1.9.2 - Spigot
Version de Skript : 2.6.4

Addons utilisés: Skellet v2.0.8, LimeSK v1.0, skRayFall v1.9.28, skQuery v4.1.8, SkBee v2.7.1, SharpSk v1.6.3, 

Type du skript : L'idée est de détecter si un coffre a été généré naturellement ou si celui-ci a été placé par un joueur. La finalité est de générer "manuellement" par le skript le contenu possible du coffre, puis, empêcher la génération d'objet dans ce même coffre pour un joueur l'ayant trouvé ; 
Le "problème" est de ne pas appliquer cela à tout les coffres existants 

Description du script :

Actuellement je n'ai pas encore trouvé comment stocker le coffre placé artifficiellement dans une liste permettant d'indiquer que celui-ci ne doit pas être sujet aux modifications de son inventaires.
Pistes déjà explorées :
- NBT (Pas réussi à mettre en forme..)
- Nom de l'inventaire (Semble ne pas s'actualiser ?)
- Localisation du coffre


 


on place of chest:
	# set {_world} to player's world
	# set {_xlocchest} to x-coordinate of location of event-block
	# set {_ylocchest} to y-coordinate of location of event-block
	# set {_zlocchest} to z-coordinate of location of event-block
	# add -0.5 to {_xlocchest}
	# add -0.5 to {_ylocchest}
	# add -0.5 to {_zlocchest}	
	# message "%{_xlocchest}%, %{_ylocchest}%, %{_zlocchest}%"
	# broadcast "%{chestlist::*}%"
	add event-block to {chestlist::%player%::*}
			
on right click on a chest:
	loop {chestlist::*}:
		if {chestlist::*} contains location of targeted block:
			broadcast "test"
	# set {_xlocchest} to x-coordinate of location of event-block
	# set {_ylocchest} to y-coordinate of location of event-block
	# set {_zlocchest} to z-coordinate of location of event-block
	# add -0.5 to {_xlocchest}
	# add -0.5 to {_ylocchest}
	# add -0.5 to {_zlocchest}
	# broadcast "%{_locchest}%"
	loop {chestlist::*}:
		if {chestlist::*} contains {_locchest}:
			broadcast "test"
		else:
			broadcast "test2"
	

Merci par avance !

 

Salut,

 

on place of chest:
	add location of event-block to {chestlist::*}
			
on right click on a chest:
	if {chestlist::*} contains location of clicked block:
		cancel event
		send "Pas touche"

 

Je ne sais pas si ça répond au problème. Peut-être que je l'ai mal compris, redis moi si c'est le cas !

  • J'aime 1
  • 0
Posté(e) (modifié)

Salut, 

Merci effectivement c'est un super 

on right click on a chest:
	if {chestlist::*} contains location of clicked block:
		cancel event
		send "Pas touche"
	else:
		if {chestlist.%player%::*} contains location of clicked block:
			cancel event
		else:
			clear clicked block's inventory
			add 1 diamond to clicked block's inventory
			add location of clicked block to {chestlist.%player%::*}

J'édites mon précédent message car celui-ci n'a plus lieu d'être, j'ai compris ma bêtise et je l'ai modifiée.
Je laisse le code si jamais celui-ci peut-être utile à quelqu'un un jour !

Merci encore, 
Sujet résolu 😄

Modifié par ThibaudPst
  • 0
Posté(e)
il y a 31 minutes, ThibaudPst a dit :

Salut, 

Merci effectivement c'est un super début pour moi !
En voyant le skript, effectivement, j'avais poussé ma démarche de chercher trop compliqué :')

Saurais-tu éventuellement me dire, sur l'hypothèse après,
Le joueur 1 accède au coffre, "naturellement généré" (Exemple du coffre se trouvant dans un village PNJ) il y trouve 1 diamant.
Comment faire pour que ce joueur ne puisse plus accéder à ce même coffre ?
J'imagine faire ça en ajoutant le coffre dans une liste similaire comportant le joueur, mais je visualise mal le comment y parvenir, si tu peux également me filer un coup de main là-dessus ! stp 😄


on place of chest:
	add location of event-block to {chestlist::*}
			
on right click on a chest:
	if {chestlist::*} contains location of clicked block:
		cancel event
		send "Pas touche"
	else:
		if {chestlist.%player%::*} doesn't contains location of clicked block:
			clear clicked block's inventory
			add 1 diamond to clicked block's inventory
			add location of clicked block to {chestlist.%player%::*}
			

A savoir que sur ce code j'ai déjà une erreur "the clicked block is not a nbt compound" (Ligne "if {chestlist.%player%::*} doesn't contains location of clicked block:")

Salut, voilà

 

on place of chest:
	add location of event-block to {chestlist::*}
			
on right click on a chest:
	if {chestlist::*} contains location of clicked block:
		cancel event
		send "Pas touche"
	else if {chestlist.%player%::*} doesn't contain location of clicked block:
		clear clicked block's inventory
		add 1 diamond to clicked block's inventory
		add location of clicked block to {chestlist.%player%::*}
	else:
		cancel event
		send "T'as déjà regardé ce coffre !"

 

  • J'aime 1
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.