Aller au contenu
  • 0

Question

Posté(e)

Bonjour,

 

Je suis en train de faire un uhc pour l'anniversaire de mon serveur. Cependant, je veux créer un uhc avec des trucs en plus et par exemple, je voudrais qu'à un certain moment, il va commencer à pleuvoir. Cependant, cette pluie sera acide et donnera des dégâts aux joueurs qui seront en contact avec la pluie. Cependant c'est là que je bloque, je ne trouve pas de conditions afin de vérifier si le joueur est en contact avec la pluie. Est-ce que'elle existe où est-ce qu'il y a une solution alternative?

 

Merci d'avance pour vos réponses. :)

23 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Et voila , je te laisse completer les options :)

 

options:
   world: lobby # Ton monde
   damage: 1 #Nombre de coeur de damage
   alert: &4[&cAlerte&4] &cMetttez vous à l'abri ! # Avertir le joueur

every 2 second in "{@world}":
   if is raining:
       loop all players in "{@world}":
           if block 5 above loop-player is air:
               if block 10 above loop-player is air:
                   if block 20 above loop-player is air:
                       if block 40 above loop-player is air:
                           if block 80 above loop-player is air:
                               message "{@alert}" to loop-player
                               damage loop-player by {@damage} hearts

  • 0
Posté(e)
En vrai soufreur78 c'est le meilleur Skripteur je crois xD

J'ai beaucoup de créativité pour résoudre des problèmes , mais il me manque encore pas mal de technique ce qui ne fait pas de moi le meilleur skripteur x)

  • 0
Posté(e)

Ce qu'a fait soufreur est logique (il faut juste y penser) et il s'est aidé de la docu (française ou anglaise), c'est a la portée de tout le monde ;). Et soufreur, le "on every 2 second" est faux je crois, il faut enlever le "on" au début (je crois, je suis pas sur xD).

  • 0
Posté(e)
Ce qu'a fait soufreur est logique (il faut juste y penser) et il s'est aidé de la docu (française ou anglaise), c'est a la portée de tout le monde ;). Et soufreur, le "on every 2 second" est faux je crois, il faut enlever le "on" au début (je crois, je suis pas sur xD).

Oups j'ai mal copier coller ^^ le "on" n'a pas à être la

  • 0
Posté(e)

Bonjour,

J'ai un peut optimisé le skript proposé et je les rendus compatible avec les dernières majs de certaine add-on qui empêche d'utiliser "in world "" ".

options:
   world: world #Le monde
   damage: 1 #Nombre de daumage
   alert: &4[&cAlerte&4] &cMetttez vous à l'abri ! # Avertir le joueur

every 2 second in "{@world}":
   set {_world} to "{@world}" parsed as world
   if is raining in {_world}:
       loop all players in {_world}:
           loop blocks above loop-player's head:
               if loop-block is not a air:
                   exit 2 sections
                   set {_protect} to true
           if {_protect} is not set:
               damage loop-player by 1
               send "{@alert}" to loop-player
           else:
               delete {_protect}

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

J'ai un peut optimisé le skript proposé et je les rendus compatible avec les dernières majs de certaine add-on qui empêche d'utiliser "in world "" ".

options:
   world: world #Le monde
   damage: 1 #Nombre de daumage
   alert: &4[&cAlerte&4] &cMetttez vous à l'abri ! # Avertir le joueur

every 2 second in "{@world}":
   set {_world} to "{@world}" parsed as world
   if is raining in {_world}:
       loop all players in {_world}:
           loop blocks above loop-player's head:
               if loop-block is not a air:
                   exit 2 sections
                   set {_protect} to true
           if {_protect} is not set:
               damage loop-player by 1
               send "{@alert}" to loop-player
           else:
               delete {_protect}

Comment tu arrive à savoir si le joueur n'est pas sous un toit ? Car tu check juste si il a un block au dessus de la tête la non ? :/

  • 0
Posté(e)
Comment tu arrive à savoir si le joueur n'est pas sous un toit ? Car tu check juste si il a un block au dessus de la tête la non ? :/

Effectivement, le loop-blocks above the player c'est une méthode simple mais efficace de vérifier s'il a un block au dessus de lui ^^.

PS : J'ai une question, qu'est-ce que "exit 2 sections" ?

 

PS2 : Petite, faute : Tu a fait une condition pour savoir si les loop-blocks ne sont pas de l'air et si c'est pas de l'air, on le protège é_è

  • 0
Posté(e)
options:
   world: world #Le monde
   damage: 1 #Nombre de daumage
   alert: &4[&cAlerte&4] &cMetttez vous à l'abri ! # Avertir le joueur

every 2 second in "{@world}":
   set {_world} to "{@world}" parsed as world
   if is raining in {_world}:
       loop all players in {_world}:
           loop blocks above loop-player's head:
               if loop-block is not a air: #Problème ICI je crois
                   exit 2 sections
                   set {_protect} to true
           if {_protect} is not set:
               damage loop-player by 1
               send "{@alert}" to loop-player
           else:
               delete {_protect}

 

J'ai signalé le "potentiel" problème ^^

  • 0
Posté(e)

C'est pas un problème, si il rencontre un bloc qui n'est pas de l'air il passe la variable {_protecte} en true pour signalé que le joueur est dessous un toit il y aucun soucis, comme je les dis plus haut ;)

  • 0
Posté(e)
options:
   world: world
   damage: 1
   alert: &4[&cAlerte&4] &cMettez vous à  l'abri !

every 2 second in "{@world}":
   set {_world} to "{@world}" parsed as world
   if is raining in {_world}:
       loop all players in {_world}:
           delete {_protect}
           loop blocks above loop-player:
               if loop-block is not a air:
                   set {_protect} to true
                   exit 2 sections
           if {_protect} is not set:
               damage loop-player by 1
               send "{@alert}" to loop-player

  • 0
Posté(e)
options:
   world: world
   damage: 1
   alert: &4[&cAlerte&4] &cMettez vous à  l'abri !

every 2 second in "{@world}":
   set {_world} to "{@world}" parsed as world
   if is raining in {_world}:
       loop all players in {_world}:
           delete {_protect}
           loop blocks above loop-player:
               if loop-block is not a air:
                   set {_protect} to true
                   exit 2 sections
           if {_protect} is not set:
               damage loop-player by 1
               send "{@alert}" to loop-player

 

En effet, comme je le pesais, c'était bel et bien 2 lignes qui étaient inversées. Mais là j'ai un autre problème. S'il y a plus d'un joueur connecté sur sur serveur, même si les joueurs sont protégés (qu'il y a au moins un bloc au dessus de leur tête) il y en aura un qui est protégé, mais tous les autres recevront des dégâts. J'ai tenté plusieurs trucs, mais ça n'a pas fonctionné. :/

  • 0
Posté(e)

Dans ce cas essaye ceci :

options:
   world: world
   damage: 1
   alert: &4[&cAlerte&4] &cMettez vous à l'abri !

every 2 second in "{@world}":
   set {_world} to "{@world}" parsed as world

   if is raining or thunder in {_world}:
       loop all players in {_world}:
           delete {_protect}
           loop blocks above loop-player:
               if loop-block is not a air:
                   set {_protect} to true
                   exit 2 loop
           if {_protect} is not set:
               damage loop-player by 1
               send "{@alert}" to loop-player

 

Au lieu d'exit des sections de code, on exit une boucle pour voir.

Ah, et j'ai rajouté "is raining or thunder", car il peux y avoir l'un ou l'autre, quand il y a orage il va pas détecter le raining.

  • 0
Posté(e)

Pour ce qui est de détecter la pluie ou l'orage n'est pas très important, car ce sera une pluie planifiée et pour ce qui est des changements de météo automatique, ce sera désactivé. J,essaie ton code ce soir et je t'en redonne des nouvelles. :)

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