Aller au contenu
  • 0

Besoin d'aide : Location et variables.


Question

Posté(e)

Bonjour, je suis actuellement en train de faire un Skript de Fallen Kingdoms pour un ami.

Le Fallen Kingdoms est un jeu très connu, il y a plusieurs bases faites par différentes équipes et ces équipes doivent se combattre pour s'emparer de la salle des coffre de leurs adversaires.

Venons à mon soucis.

Imaginons que l'équipe Bleue soit contre l'équipe Rouge.

Si l'équipe Bleue est parvenue à entrer dans la base Rouge, ils doivent chercher la salle des coffres des rouges, mais !

Quand les bleus sont chez les rouges, ils ne peuvent ni casser ni poser des blocs, sauf (tnt, torches).

Je voudrais savoir comment empêcher l'équipe Bleue (La variable : {team.%uuid of loop-player%} is "Bleu") de poser des blocs (tous sauf tnt, torches) et de casser des blocs.

Pouvez vous me dire comment faire cela ?

 

J"ai mis mon skript dans "Fichiers Atachés", il est donc désormais téléchargeable si vous voulez plus d'informations.

7 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Tu utilises quoi pour détecter les bases ?

J'te conseille le Plugin WorldGuard (+ WorldEdit) qui te permet de créer des régions (faisable aussi en Skript bien-sûr) !

➡ Je te laisse te renseigner sur ce Plugin via Internet.

 

Bref, tu peux créer une région a chaque base en la nommant le nom de l'équipe (bleue ou rouge dans ton cas), vérifier si le joueur est dans la base (donc la région) de l'adversaire, et l'empêcher de poser tout les blocs a l'exceptions de certains blocs, et l'empêcher également d'en casser.

Je te fait un petit code rapidement, je te laisse le modifier a ta guise.

on break:
   "%region at player%" contains "%{ta variable de team.%player%}%":
       stop
   else:
       cancel event
       send "Tu ne peux pas casser de blocs dans la base de ton adversaire !" to player

on place:
   "%region at player%" contains "%{comme taleure}%":
       stop
   else:
       if event-block isn't torch or tnt:
           cancel event
           send "Nop" to player

(J'utilise pas de doesn't contains car chez pas ça ne marchait pas)

N'hésite pas à aimer mon poste s'il t'a été utile pour me remercier d'avoir pris du temps pour t'aider !

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

Merci de ta réponse, mais, comment on défini la variable sur la region ?

Et je n'utilise rien pour détecter les bases, je ne sais pas comment le coder

  • 0
Posté(e)

Je n'ai pas très bien compris, en gros lorsque tu as installé WorldEdit et WorldGuard, tu prend une hache en main, et tu fais clique droit sur le bloc le plus en haut a droite de la base x, puis pareille mais avec un clique gauche sur le bloc le plus en bas a gauche, puis cela va sélectionner cet base x, tu fais ensuite:

/rg define <bleue> ou <rouge> (il faut que le nom de la région soit la même que le nom de la team dans la variable team)

/rg flag <bleue> ou <rouge> passthrough allow (pour plus de sécurité)

 

Ensuite si tu as tout bien mon code donné en haut fonctionnera ;)

  • 0
Posté(e)

Oui WorldGuard peut-être une très bonne solution, cependant pour avoir essayer de m'en servir très souvent, worldguard avec Skript sont généralement plein de bug et ne fonctionne même pas, j'ai une autre solution qui est la suivante:

 

command /region [<text>] [<text>]:
   permission:op
   trigger:
       if arg 1 is "rouge":
           if arg 2 is "region1":
               set {baserouge.region.loc1} to location of player
               send "%{baserouge.region.loc1}%"
           else if arg 2 is "region2":
               set {baserouge.region.loc2} to location of player
               send "%{baserouge.region.loc2}%"
on place:
   if {team.%uuid of player%} is "bleu":
       if event-block is tnt or redstone torch:
           stop
       else:
           if target of player is within {baserouge.region.loc1} to {baserougeregion.loc2}:
               stop
           else:
               cancel event
               send "&cTu ne peux placer que des TNT ou des torches chez les rouges =)"

 

Voilà le principe, tu as tout ce qu'il faut =) Tu as juste à set "{baserouge.region.loc1}" dans le coin de la base de rouge et "{baserouge.region.loc2}" dans le coin d'en face, de cette mannière tu auras la région de la base rouge voilà =) Ca fonctionne pour moi ^^

  • J'aime 1
  • 0
Posté(e)
Oui WorldGuard peut-être une très bonne solution, cependant pour avoir essayer de m'en servir très souvent, worldguard avec Skript sont généralement plein de bug et ne fonctionne même pas, j'ai une autre solution qui est la suivante:

 

command /region [<text>] [<text>]:
   permission:op
   trigger:
       if arg 1 is "rouge":
           if arg 2 is "region1":
               set {baserouge.region.loc1} to location of player
               send "%{baserouge.region.loc1}%"
           else if arg 2 is "region2":
               set {baserouge.region.loc2} to location of player
               send "%{baserouge.region.loc2}%"
on place:
   if {team.%uuid of player%} is "bleu":
       if event-block is tnt or redstone torch:
           stop
       else:
           if target of player is within {baserouge.region.loc1} to {baserougeregion.loc2}:
               stop
           else:
               cancel event
               send "&cTu ne peux placer que des TNT ou des torches chez les rouges =)"

 

Voilà le principe, tu as tout ce qu'il faut =) Tu as juste à set "{baserouge.region.loc1}" dans le coin de la base de rouge et "{baserouge.region.loc2}" dans le coin d'en face, de cette mannière tu auras la région de la base rouge voilà =) Ca fonctionne pour moi ^^

 

Je n'ai absolument aucun problème avec....

  • 0
Posté(e)

Merci beaucoup Maxl c'est exactement ce que je voulais, merci aussi aux autres qui m'ont aidés, je peux donc, désormais, passer en résolu, merci.

×
×
  • 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.