Aller au contenu

Question

Posté(e)

Version de Minecraft : 1.8.9
Version de Skript : 2.2

Addons utilisés: SkQuery, skRayFall, WildSkript, TusKe, Skellett

Type du skript : Uhc avec rôles

Description du script :

Bonjour, je voudrais de l'aide sur une partie de code. Je voudrais que un joueur ayant un certain rôle puisse placer des pièges en cliquant sur un bloc avec des fils et que quand d'autres joueurs marche à l'endroit du piège ça drop leurs coordonnées. Et si possible ne pas pouvoir poser les fils par terre pour que personne ne les voit.
 

options:
	block: grass_block or stone or dirt or sand or gravel or log or leaves or planks or clay or cobblestone or mycelium

on right click on {@block}:
	if {statut} is "Game":
		if name of player's tool is "&f&lPiège":
			if {role.%player%} is "MON_ROLE1":
				message "{@p} &f&lPiège&7 placé" to player
				command "/playsound tile.piston.out %player% ~ ~ ~ 1 1 1" by console
				set {_pos} to location of event-location
				remove 1 string named "&f&lPiège" from player's inventory

on walk on {@block}:
	if {statut} is "Game":
		if {_pos} is set: #pas sur
			if {role.%player%} is "MON_ROLE2":
				message "{@p} &7Vous venez de marcher sur un &f&lPiège" to player
				delete {_pos} #pas sur
				loop all players:
					if {role.%loop-player%} is "MON_ROLE1":
						message "{@p} &7Un joueur vient de marcher sur votre &f&lPiège&7 voici ses coordonnées : &6%location of event-location%" to loop-player

Je ne vois pas quand set le block qui a était sélectionné pour être un Piège

Merci de votre réponse !

24 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Salut !

on right click on {@block}:
	if {statut} is "Game":
		if name of player's tool is "&f&lPiège":
			if {role.%player%} is "MON_ROLE1":
              if {pos::*} contains event-location:
				cancel event
                send "{@p} &f&lPiège&7 déjà posé à cette position "
              else:
                cancel event
                message "{@p} &f&lPiège&7 placé" to player
                command "/playsound tile.piston.out %player% ~ ~ ~ 1 1 1" by console
                add event-location to {pos::*}
                remove 1 string named "&f&lPiège" from player's inventory

on walk on {@block}:
	if {statut} is "Game":
		if {role.%player%} is "MON_ROLE2":
			if {pos::*} contains event-location:
				message "{@p} &7Vous venez de marcher sur un &f&lPiège" to player
				remove event-location from {pos::*}
				loop all players:
					if {role.%loop-player%} is "MON_ROLE1":
						message "{@p} &7Un joueur vient de marcher sur votre &f&lPiège&7 voici ses coordonnées : &6%event-location%" to loop-player

Lors du clique droit, si la position donnée n'est pas déjà set dans la liste, je cancel l'event, remove le string de l'inventaire et set la localisation. Lorsqu'un joueur marche sur un block donné, si la position du block est détectée comme une position de piège, alors celui-ci s'active et la position est supprimée de la liste.

J'ai testé, mais ai modifié 2, 3 trucs. Normalement tout fonctionne mais dis moi si ce n'est pas le cas.

 

ps: Utilise plutot des listes que des variables à ".", c'est plus pratique : {role::%player%}

  • 0
Posté(e) (modifié)
Il y a 20 heures, Azur21 a dit :

Salut !


on right click on {@block}:
	if {statut} is "Game":
		if name of player's tool is "&f&lPiège":
			if {role.%player%} is "MON_ROLE1":
              if {pos::*} contains event-location:
				cancel event
                send "{@p} &f&lPiège&7 déjà posé à cette position "
              else:
                cancel event
                message "{@p} &f&lPiège&7 placé" to player
                command "/playsound tile.piston.out %player% ~ ~ ~ 1 1 1" by console
                add event-location to {pos::*}
                remove 1 string named "&f&lPiège" from player's inventory

on walk on {@block}:
	if {statut} is "Game":
		if {role.%player%} is "MON_ROLE2":
			if {pos::*} contains event-location:
				message "{@p} &7Vous venez de marcher sur un &f&lPiège" to player
				remove event-location from {pos::*}
				loop all players:
					if {role.%loop-player%} is "MON_ROLE1":
						message "{@p} &7Un joueur vient de marcher sur votre &f&lPiège&7 voici ses coordonnées : &6%event-location%" to loop-player

Lors du clique droit, si la position donnée n'est pas déjà set dans la liste, je cancel l'event, remove le string de l'inventaire et set la localisation. Lorsqu'un joueur marche sur un block donné, si la position du block est détectée comme une position de piège, alors celui-ci s'active et la position est supprimée de la liste.

J'ai testé, mais ai modifié 2, 3 trucs. Normalement tout fonctionne mais dis moi si ce n'est pas le cas.

 

ps: Utilise plutot des listes que des variables à ".", c'est plus pratique : {role::%player%}

Salut,

Quand je marche dessus rien ne se passe

J'ai testé avec un debug, j'ai bien les coordonées d'enregistrées

Et les fils ne veulent pas se remove de l'inventaire

Modifié par LightCookies
  • 0
Posté(e)
il y a 3 minutes, Azur21 a dit :

Ta version de skript est ancienne et il y a surement des syntaxes légèrement différentes... Je te conseil d'installer une version plus récente "/sk update download" si il ya, sinon ici : https://github.com/Matocolotoe/Skript-1.8/releases, dis moi si ca fonctionne.

Prends la dernière 2.5 dans "asset".

Ouais, mais le soucis c'est que je vais devoir modifier mon code car je vais surement avoir des erreurs

  • 0
Posté(e)
il y a 1 minute, LightCookies a dit :

Ouais, mais le soucis c'est que je vais devoir modifier mon code car je vais surement avoir des erreurs

Oui, sinon tu essaies d'adapter le code que je t'ai envoyé avec les expressions des anciennes versions qui parfois peuvent être complétement connes : "with name" à la place de "named" par exemple (en l’occurrence je ne sais pas si cette nuance est détecté sur les anciennes versions)

  • 0
Posté(e) (modifié)
il y a 4 minutes, Azur21 a dit :

Oui, sinon tu essaies d'adapter le code que je t'ai envoyé avec les expressions des anciennes versions qui parfois peuvent être complétement connes : "with name" à la place de "named" par exemple (en l’occurrence je ne sais pas si cette nuance est détecté sur les anciennes versions)

En mettant, la version 2.5 de Skript j'ai toujours pas d'erreur mais rien ne fonctionne

Et le named, il fonctionne c'est juste le fait de passer sur le block en question que rien ne se passe

Modifié par LightCookies
Ajout d'une phrase
  • 0
Posté(e)
il y a 8 minutes, Azur21 a dit :

Tiens j'ai modifié et expliqué pourquoi ca ne fonctionne pas. Test et tiens moi au courant.

ex.sk 1.86 Ko · 0 téléchargements

C'est totalement my bad, j'avais oublié d'enlever "if {_pos} is set:"

Mais j'ai toujours un soucis, car quand le rôle "Phinks" se déplace il s'enfonce dans le sol alors que j'ai même pas marché sur le fil

  • 0
Posté(e) (modifié)
il y a 4 minutes, Azur21 a dit :

Tu es sur que cela est du à cette partie de code ?

 

Certain, je suis de le delete pour tester et je m'enfonce plus

Par contre quand je vais sur le fil, j'ai bien les cos

Je m'enfonce uniquement sur les blocs dans les options

Modifié par LightCookies
Ajout d'une phrase
  • 0
Posté(e) (modifié)

C'est vraiment bizarre. Y a rien dans le code qui pourrait provoquer cela.

Perso dans les options, les blocs "grass_block" et "clay" il connait pas, j'ai du remplacer par: "grass" et "clay block", mais je ne vois pas le rapport.

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

C'est vraiment bizarre. Y a rien dans le code qui pourrait provoquer cela.

Perso dans les options, les blocs "grass_block" et "clay" il connait pas, j'ai du remplacer par: "grass" et "clay block", mais je ne vois pas le rapport.

Bah ouais, je ne vois pas non plus

Il n'y a pas un événement qui existe si on marche sur un fil ?

J'ai essayé "on walk on string:" mais ça ne fonctionne pas

  • 0
Posté(e)
il y a 1 minute, LightCookies a dit :

Bah ouais, je ne vois pas non plus

Il n'y a pas un événement qui existe si on marche sur un fil ?

J'ai essayé "on walk on string:" mais ça ne fonctionne pas

De toute façon ça ne fonctionnerait pas puisqu'on cancel l'event lors du placement du string sur le sol. Essaye de limiter ton option à la grass et la stone et dis moi si tu passes toujours a travers les blocs. D'ailleurs tu passes a travers tous les blocs ou seulement ceux set dans ton option ?

 

Entre la boule d'xp et ça, on croirait presque que tes codes sont hantés ahah

  • 0
Posté(e)
il y a 2 minutes, Azur21 a dit :

De toute façon ça ne fonctionnerait pas puisqu'on cancel l'event lors du placement du string sur le sol. Essaye de limiter ton option à la grass et la stone et dis moi si tu passes toujours a travers les blocs. D'ailleurs tu passes a travers tous les blocs ou seulement ceux set dans ton option ?

 

Entre la boule d'xp et ça, on croirait presque que tes codes sont hantés ahah

Uniquement dans ceux set dans l'option

Et pour info, mon string reste sur le bloc il ne disparait pas

  • 0
Posté(e)
il y a 7 minutes, LightCookies a dit :

Uniquement dans ceux set dans l'option

Et pour info, mon string reste sur le bloc il ne disparait pas

Ce n'est pas normal qu'il reste sur le block, tu as du oublié de remettre "cancel event" comme je te l'ai indiqué dans ce que je viens de t'envoyer. Pour ton autre probleme tout ce que je peux te dire c'est de restart ton jeu et ton serveur. Je ne sais absolument pas désolé.

  • 0
Posté(e)
il y a 2 minutes, Azur21 a dit :

Ce n'est pas normal qu'il reste sur le block, tu as du oublié de remettre "cancel event" comme je te l'ai indiqué dans ce que je viens de t'envoyer. Pour ton autre probleme tout ce que je peux te dire c'est de restart ton jeu et ton serveur. Je ne sais absolument pas désolé.

J'ai bien mis le "cancel event" pourtant

Mais quand, je marche sur le fil je ne m'enfonce plus dans les blocs

  • 0
Posté(e) (modifié)
il y a 3 minutes, LightCookies a dit :

J'ai bien mis le "cancel event" pourtant

Mais quand, je marche sur le fil je ne m'enfonce plus dans les blocs

Ajoute moi sur discord

Révélation

Azur21#2694,

ca sera plus pratique pour communiquer (même par écrit). Si on trouve on viendra mettre la réponse et expliquer quel était le problème.

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