Invité Posté : 29 août 2016 Oui rebonjour :) Donc j'ai besoin d'aide , j'ai un skript qui permet de regen une zone mais , il y a un bug , quand on casse un block , que l'on repose un autre block sur le block cassez et que l'on fait sa plusieurs fois sa bug , donc voila mon skript : command /regen [<text>]: permission: {@perm} permission message: {@perm_msg} trigger: if arg 1 is "skywars1": loop {skywars1.placed.blocks::*}: set {_loc} to loop-value set block at {_loc} to air wait 3 tick loop {skywars1.broken.blocks::*}: set {_loc} to loop-value set block at {_loc} to {skywars1.broken.type::%loop-index%} wait 3 tick on break: if "%region at player%" contains "{@RegionOne}": add location of block to {skywars1.broken.blocks::*} add type of block to {skywars1.broken.type::*} on place: if "%region at player%" contains "{@RegionOne}": remove location of block from {skywars1.placed.blocks::*} wait 1 tick add location of block to {skywars1.placed.blocks::*} Donc la seule solution que j'ai trouver c'est de verifier si , quand on casse avant de add la location , on verifie si elle est deja dans la variable ^^ Mais je ne sait pas comment on fais , en tout cas merci d'avance a tous seut qui vont m'aider ^^ <3 Partager ce message Lien à poster Partager sur d’autres sites
Gaël Erhlich 256 Répondu : 29 août 2016 Qu'est-ce que tu veux dire par "ça bug" ? Et si tu veux savoir si la position (la location en français, c'est le fait de louer uhuh) est déjà enregistrée, tu fouilles dans ta liste et tu annules si ça y est déjà : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Le problème, c'est que si tu fouilles toute la liste à chaque fois, tu risques de solliciter beaucoup plus ton serveur, puisque ça le fait au moindre bloc cassé dans ta zone et que plus la partie avance, plus il y aura de positions à vérifier à chaque fois. Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 29 août 2016 Qu'est-ce que tu veux dire par "ça bug" ? Et si tu veux savoir si la position (la location en français, c'est le fait de louer uhuh) est déjà enregistrée, tu fouilles dans ta liste et tu annules si ça y est déjà : loop {skywars1.broken.blocks::*} set {_Pos} to loop-value if {_Pos} is block-event: stop la suite... Le problème, c'est que si tu fouilles toute la liste à chaque fois, tu risques de solliciter beaucoup plus ton serveur, puisque ça le fait au moindre bloc cassé dans ta zone et que plus la partie avance, plus il y aura de positions à vérifier à chaque fois. Oui , mais j'ai que cette solution , je pense :c, Et pour le bug c'est en gros , si on casse le block , ensuite on replace , (et faire sa plusieurs fois ^^) Et que je regen la zone le block reste , c'est pour sa que je veut eviter de le placer 2 fois dans la liste :c Partager ce message Lien à poster Partager sur d’autres sites
Skripting 605 Répondu : 30 août 2016 C'est ce que l'on appelle une saturation de mémoire. Quand tu casses un bloc et que tu en reposes un assez rapidement, Skript n'a pas le temps de faire tous les calculs d'un coup, ce qui n'enregistrera pas les données du bloc. Si tu veux un Skript de régénération de monde très complet (il régénère absolument tout), prends le mien ci-dessous, mais il a quelques inconvénients : > La régénération d'un monde prend 20 secondes. > Impossible de se rendre sur le monde en question lors de la régénération. Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Partager ce message Lien à poster Partager sur d’autres sites
Snowach 288 Répondu : 30 août 2016 Ou alors pourquoi pas simplement annuler le placement de blocs dans le monde en question x) ? Partager ce message Lien à poster Partager sur d’autres sites
Gaël Erhlich 256 Répondu : 30 août 2016 Ou alors pourquoi pas simplement annuler le placement de blocs dans le monde en question x) ? Parce que mini-jeu. :p 1 Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 30 août 2016 C'est ce que l'on appelle une saturation de mémoire. Quand tu casses un bloc et que tu en reposes un assez rapidement, Skript n'a pas le temps de faire tous les calculs d'un coup, ce qui n'enregistrera pas les données du bloc. Si tu veux un Skript de régénération de monde très complet (il régénère absolument tout), prends le mien ci-dessous, mais il a quelques inconvénients : > La régénération d'un monde prend 20 secondes. > Impossible de se rendre sur le monde en question lors de la régénération. https://www.youtube.com/watch?v=JfXG_CO31i8 Le problème c'est que moi mes zones de "jeux" sont tous dans le meme monde ^^ Partager ce message Lien à poster Partager sur d’autres sites
Skripting 605 Répondu : 30 août 2016 Le problème c'est que moi mes zones de "jeux" sont tous dans le meme monde ^^ Bah tu n'as plus qu'à régénérer ce monde^^ ! Partager ce message Lien à poster Partager sur d’autres sites
Gaël Erhlich 256 Répondu : 30 août 2016 Bah tu n'as plus qu'à régénérer ce monde^^ ! Deux possibilités : - Deux parties se jouent en même temps. - La première se termine. - La carte est régénérée. - La deuxième partie ne peut pas être terminée. - Deux parties se jouent en même temps. - La première se termine. - Ceux qui jouaient veulent refaire une partie. - Ils attendent que la deuxième soit terminée. - La seconde partie s'éternise. - Les joueurs de la première partie en ont marre. Partager ce message Lien à poster Partager sur d’autres sites
Skripting 605 Répondu : 30 août 2016 Deux possibilités : - Deux parties se jouent en même temps. - La première se termine. - La carte est régénérée. - La deuxième partie ne peut pas être terminée. - Deux parties se jouent en même temps. - La première se termine. - Ceux qui jouaient veulent refaire une partie. - Ils attendent que la deuxième soit terminée. - La seconde partie s'éternise. - Les joueurs de la première partie en ont marre. ... Les mêmes jeux ne se trouvent pas sur le même monde... Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 30 août 2016 Bah tu n'as plus qu'à régénérer ce monde^^ ! Je te l'ai dit ^^ , il ne me faut pas de skript qui regen le monde , car toutes les zones d'un jeux , sont dans le meme monde^^ Genre skywars : il y a 5Hub(ZoneDeJeux) dans le meme monde, Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 30 août 2016 ... Les mêmes jeux ne se trouvent pas sur le même monde... bah si ^^ , il y a un monde pour chaque jeux oui. mais genre dans le monde skywars il y a , 5 partie de jeux , qui sont dans le meme monde ! , donc dans le monde skywars il y a un : 1Hub et 5Partie Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 30 août 2016 ... Les mêmes jeux ne se trouvent pas sur le même monde... j'ai pris une desision , (M'en fous de l'hortographe xD) Je vais prendre ton skript @PsYZiiK Juste une question , ton skript fera lag le serveur ? méchi =) Merci a tous =) Partager ce message Lien à poster Partager sur d’autres sites
Skripting 605 Répondu : 30 août 2016 Non il ne cause aucun Lags^^ et pour les régénérations des zones tu peux très bien utiliser WorldGuard si tu l'as^^ ! Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 30 août 2016 Non il ne cause aucun Lags^^ et pour les régénérations des zones tu peux très bien utiliser WorldGuard si tu l'as^^ ! Préfère utiliser ton skript en tous cas merci ^^ Partager ce message Lien à poster Partager sur d’autres sites