TonioMC Posté(e) le 16 février 2019 Posté(e) le 16 février 2019 Bonjour j'aimerais un skript pour mon serveur , ou toutes les 10 minutes une pluie acide tombe sur la map qui enleve 1 coeur aux joueurs par secondes. J'aimerais que quand les joueurs soit au contact avec cette pluie ils prennent des degats. J'aimerais que dans le chat il y est marquer : &c&lAttention ! &cPluie acide dans 30 secondes ! Et a la fin &cLa plus acide se dissipe ! Voila voila merci d'avance :)
Trifcan54 Posté(e) le 16 février 2019 Posté(e) le 16 février 2019 Salut, juste pour t'annoncer que je suis pas sur que c'est possible pour ta pluie acide. Mais je ferrait des recherche pour savoir un peut plus pour le systeme de pluie.
> NoaGamingFR Posté(e) le 17 février 2019 Posté(e) le 17 février 2019 Il y a 8 heures, Trifcan54 a dit : Salut, juste pour t'annoncer que je suis pas sur que c'est possible pour ta pluie acide. Mais je ferrait des recherche pour savoir un peut plus pour le systeme de pluie. Ce seras de la pluie, et tout est possible ^^' Faut juste vérifie si la pluie touche le joueur pour lui infliger les damages.
TonioMC Posté(e) le 17 février 2019 Auteur Posté(e) le 17 février 2019 Si vous pouvez m'aider ducoup ^^
TonioMC Posté(e) le 18 février 2019 Auteur Posté(e) le 18 février 2019 Le 17/02/2019 à 07:48, > NoaGamingFR a dit : Ce seras de la pluie, et tout est possible ^^' Faut juste vérifie si la pluie touche le joueur pour lui infliger les damages. Tu peux m'aider alors ? 🙂
> NoaGamingFR Posté(e) le 19 février 2019 Posté(e) le 19 février 2019 Il y a 12 heures, TonioMC a dit : Tu peux m'aider alors ? 🙂 J'avais déjà fait ça il me semble, mais je n'ai plus la solution en tête pour vérifier si un joueur se fait toucher par la pluie :x
TonioMC Posté(e) le 19 février 2019 Auteur Posté(e) le 19 février 2019 Il y a 2 heures, > NoaGamingFR a dit : J'avais déjà fait ça il me semble, mais je n'ai plus la solution en tête pour vérifier si un joueur se fait toucher par la pluie :x Ha.....
Rhevel Posté(e) le 22 février 2019 Posté(e) le 22 février 2019 Je pense qu'il suffit de détecter si il n'y a aucun bloc au dessus du joueur. (vue sur le ciel). Je peux regarder si je vois comment faire. Alors, j'ai fait un skript qui fonctionne... pas toujours. on va dire que si tu te cache en mine, ça marche bien, mais si tu mets juste un block au dessus de toi, bah ça marche pas toujours. je suppose qu'il a pas le temps de calculer tous les blocs, mais je suis tout seul sur serveur, alors j'espère qu'en multi ça sera pas trop dégeu. J'ai pas trouvé d'autre solution donc si quelqu'un veut tenter de résoudre, ça serait pas de refus. Ah et aussi, il n'y avait pas marqué combien de temps il fallait que le pluie dure, donc j'ai mis 30 secondes au pif, tu peux changer. every 10 minutes: pluieaccide() command /pluieaccidestart: permission: pluieaccide.start trigger: pluieaccide2() function pluieaccide(): broadcast "&c&lAttention ! &cPluie acide dans 30 secondes !" wait 30 seconds pluieaccide2() function pluieaccide2(): broadcast "&c&lAttention ! &cLa pluie acide commence !" set the weather of all the worlds to rain loop 30 times: # durée de la pluie en secondes wait 1 second loop all players: if loop-player's gamemode is survival: set {_x} to x-coordinate of loop-player set {_z} to z-coordinate of loop-player set {_pos} to location at ({_x}, 255, {_z}) in world of loop-player loop blocks within position of loop-player and {_pos}: if loop-block is not air: set {pluie.safe.%loop-player-1%} to true broadcast "Vous êtes protégés." stop loop if {pluie.safe.%loop-player%} = true: delete {pluie.safe.%loop-player%} else: damage loop-player by 1 heart set the weather of all the worlds to sun broadcast "&cLa plus acide se dissipe !"
Anarchick Posté(e) le 26 février 2019 Posté(e) le 26 février 2019 (modifié) Holà, je n'ai pas codé depuis longtemps et je ne peux pas tester avant très longtemps mais : Si on utilise la technique de niveau de luminosité du soleil sur un bloc à la place de loop tous les blocs au dessus de la tête du joueur ? ( énorme gain de ressource processeur ! ) https://minecraft.gamepedia.com/Light#Other https://skripthub.net/docs/?id=970 Modifié le 26 février 2019 par Anarchick
noftaly Posté(e) le 26 février 2019 Posté(e) le 26 février 2019 (modifié) Le 22/02/2019 à 23:20, Rhevel a dit : Alors, j'ai fait un skript qui fonctionne... pas toujours. on va dire que si tu te cache en mine, ça marche bien, mais si tu mets juste un block au dessus de toi, bah ça marche pas toujours. je suppose qu'il a pas le temps de calculer tous les blocs, mais je suis tout seul sur serveur, alors j'espère qu'en multi ça sera pas trop dégeu. J'ai pas trouvé d'autre solution donc si quelqu'un veut tenter de résoudre, ça serait pas de refus. Ah et aussi, il n'y avait pas marqué combien de temps il fallait que le pluie dure, donc j'ai mis 30 secondes au pif, tu peux changer. every 10 minutes: pluieaccide() command /pluieaccidestart: permission: pluieaccide.start trigger: pluieaccide2() function pluieaccide(): broadcast "&c&lAttention ! &cPluie acide dans 30 secondes !" wait 30 seconds pluieaccide2() function pluieaccide2(): broadcast "&c&lAttention ! &cLa pluie acide commence !" set the weather of all the worlds to rain loop 30 times: # durée de la pluie en secondes wait 1 second loop all players: if loop-player's gamemode is survival: set {_x} to x-coordinate of loop-player set {_z} to z-coordinate of loop-player set {_pos} to location at ({_x}, 255, {_z}) in world of loop-player loop blocks within position of loop-player and {_pos}: if loop-block is not air: set {pluie.safe.%loop-player-1%} to true broadcast "Vous êtes protégés." stop loop if {pluie.safe.%loop-player%} = true: delete {pluie.safe.%loop-player%} else: damage loop-player by 1 heart set the weather of all the worlds to sun broadcast "&cLa plus acide se dissipe !" Je me suis permis de modifier ton code, pour le rendre plus compact et plus opti, et en enlevant les bugs (tu avais mis un "stop loop", donc si un joueur était protégé, la loop s'arrêtait et la pluie se dissipait. Ce que tu voulais c'était un "continue", qui sert a passer a la prochaine valeur dans une loop). every 10 minutes: pluieacide() command /pluieacidestart: permission: pluieacide.start trigger: pluieacide(true) function pluieacide(wait: boolean=false): if {_wait}: broadcast "&c&lAttention ! &cPluie acide dans 30 secondes !" wait 30 seconds broadcast "&c&lAttention ! &cLa pluie acide commence !" set the weather of all the worlds to rain loop 30 times: # durée de la pluie en secondes wait 1 second loop all players where input's gamemode is survival: set {_x} to x-coordinate of loop-player set {_z} to z-coordinate of loop-player set {_pos} to location at ({_x}, 255, {_z}) in world of loop-player loop blocks within position of loop-player and {_pos}: if loop-block is not air: broadcast "Vous êtes protégés." continue damage loop-player by 1 heart set the weather of all the worlds to sun broadcast "&cLa pluie acide se dissipe !" si tu veux lancer la pluie sans compte a rebours de 30s, alors c'est pluiacide(). Sinon c'est pluisacide(true) Le 26/02/2019 à 11:12, Anarchick a dit : Holà, je n'ai pas codé depuis longtemps et je ne peux pas tester avant très longtemps mais : Si on utilise la technique de niveau de luminosité du soleil sur un bloc à la place de loop tous les blocs au dessus de la tête du joueur ? ( énorme gain de ressource processeur ! ) https://minecraft.gamepedia.com/Light#Other https://skripthub.net/docs/?id=970 Pas bête ca pourrait fonctionner ! edit : dsl double post j'ai pas fait gaffe 😂 Modifié le 26 février 2019 par noftaly 1
Messages recommandés