Aller au contenu
  • 0

Problème du loop blocks


Question

Posté(e)

Salut,

 

mon problème c'est que en fait je voudrais que les joueurs ne puisse pas build dans une zone précise (autour de leurs point de spawn), c'est pour un skript skyblock. Voila le bout de mon code:

 

[spoiler=Code]

on click:
   if player is in "skyblock":
       loop all blocks in radius 50 around location at {is.coordonne.%player%}:
           if event-block is loop-blocks:
               set {sky.build.%player%} to true
               stop
           stop
       stop
on break:
   if player is in "skyblock":
       if {sky.build.%player%} isn't true:
           cancel event
           send "{@prefix}&7 Tu ne peux casser de block ici."
       else:
           stop

on place:
   if player is in "skyblock":
       if {sky.build.%player%} is true:
           cancel event
           send "{@prefix}&7 Tu ne peux poser de block ici."
       else:
           stop

 

Voila quand je loop les blocks autour de sa variante ca ne marche pas, y'a peut être des erreurs? Mais où elles sont? x)

 

Merci de ton aide ;)

9 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Voila le début du code (je donne pas tout car après y'a la création de l'ile block par block, assez long ^^)

 

[spoiler=Code]

options:
   prefix: &8[&9Islande&8]
   island: 100 #Distance entre chaque island vous pouvez la modifié mais plus elle est grande plus elle fait laguer
   height: 30 #Hauteur de l'island par rapport au sol
#_______________________________________________________________________________________________________________________________
#                                                  Commande de base Islande
#_______________________________________________________________________________________________________________________________

command /is [<text>] [<player>]:
   usage: &7/is <start/home/restart/inv/kick/help/sethome/leave/level/top>
   trigger:

       if arg 1 is not set:
           make player execute command "/is help"

#===================
# Commande help
#===================

       if arg 1 is "help":
           send "&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&8[&9Islande&8]-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-"
           send "&e/is start &8- &7Créer une Islande"
           send "&e/is restart &8- &7Recommencer votre Islande et suprime ton inventaire"
           send "&e/is home &8- &7Rejoindre le spawn de votre Islande"
           send "&e/is sethome &8- &7Définir le spawn de votre Islande"
           send "&e/is inv <player> &8- &7Inviter une personne dans votre Islande"
           send "&e/is join &8- &7Accépter une invitation"
           send "&e/is leave &8- &7Quitter l'Islande de votre ami"
           send "&e/is level &8- &7Voir le niveau de l'islande"
           send "&e/is top &8- &7Voir le classement des islandes"
           send "&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&8[&9Islande&8]-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-&7-&8-"

       if arg-1 is "stop":
           remove player from {playerisland::*}
           delete {portail.%player%}
           delete {deco.%player%}
           delete {has_an_island.%player%}
           delete {avousdechercher.%player%}
           delete {island.%player%}
           delete {is.coordonne.%player%}
           delete {cys.islandxcoordinate}
           delete {numislevel}
           delete {Istop}
           delete {spawn1.island.%player%}
           delete {spawn.island.%player%}
           delete {islands::*}
           send "{@prefix}&cIslande supprimé."
#===================
# Commande start
#===================

       if arg 1 is "start":
           if {island.%player%} is not set:
               add player to {playerisland::*}
               add 1 to {numislevel}
               add {@island} to {cys.islandxcoordinate}
               set {_is.coordonne} to location {cys.islandxcoordinate}, {@height}, 0
               set block at {_is.coordonne} to glass
               set {is.coordonne.%player%} to location at {_is.coordonne}
	#Création de l'ile

 

  • 0
Posté(e)

Bonsoir,

La méthodes est vraiment très mauvaise elle n'est pas du tout optimisé, il suffit tout simplement de vérifier la distance entre les coordonnées du spawn et le bloc cliqué.

  • 0
Posté(e)
Bonsoir,

La méthodes est vraiment très mauvaise elle n'est pas du tout optimisé, il suffit tout simplement de vérifier la distance entre les coordonnées du spawn et le bloc cliqué.

C'est a dire? je pourrais avoir un exemple stp?

  • 0
Posté(e)

Bonjour,

Donc on va tout simplement vérifier si le bloc placé/cassé et à +50blocs du spawn, pour sa on va également égaliser les coordonnées y pour qu'il ne prenne pas en compte la hauteur.

 

Code:

on break:
   set {_spawn} to {is.coordonne.%player%}
   set y-coordinate of {_spawn} to y-coordinate of event-block
   if floor(distance between {_spawn} and event-block) > 50:
       stop
   else:
       cancel event

on place:
   set {_spawn} to {is.coordonne.%player%}
   set y-coordinate of {_spawn} to y-coordinate of event-block
   if floor(distance between {_spawn} and event-block) > 50:
       stop
   else:
       cancel event

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