Mr_Kofte 5 Posté : 9 juin 2023 Version de Minecraft : 1.19.4 Version de Skript : 2.6.3 Addons utilisés: / Type du skript : Variable bloc Description du script : Bonsoir ! J'aimerai faire un petit système qui permet quand le joueur casse une buche ça set une variable sur la buche cassée et s'il l'a pose et qu'il la recasse ça ne lui donne pas d'expérience job... Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Merci à vous ! Partager ce message Lien à poster Partager sur d’autres sites
DKSM 13 Répondu : 10 juin 2023 En faite, tu as pas besoin de stocker de variable sur la buche cassé, de toute façon, elle ne la retiendra pas ^^ Techniquement, tout ce qui est posé par un joueur n'est pas censé apporté d'XP si on le recasse dans ton système de métier Donc ce qu'il faudrait je pense, c'est stocker la position du bloc qui est posé par un joueur, et ensuite vérifier quand on casse un bloc: Si le bloc en question fait partie de la liste: - on ne donne pas d'XP mais aussi - supprimer le bloc de la liste vu qu'il n'existe plus Je te recommande aussi pour que la vérif ne soit pas trop lourde de segmenté la recherche du bloc Par exemple, si une variable fini par contenir 200 000 blocs, on va pas passer au travers des 200 000 blocs à chaque fois qu'un joueur casse un bloc On peut commencer par trier par Monde, ensuite par chunk et enfin par bloc, tu peux aussi segmenter pour optimiser encore plus sur plusieurs couche en Y Bien sûr, pour encore optimiser la variable, on ne stockera que les blocs en rapport avec les métiers et pas tous les blocs que pose tous les joueurs ^^ 1 Partager ce message Lien à poster Partager sur d’autres sites
Mr_Kofte 5 Répondu : 13 juin 2023 Le 10/06/2023 à 19:22, DKSM a dit : En faite, tu as pas besoin de stocker de variable sur la buche cassé, de toute façon, elle ne la retiendra pas ^^ Techniquement, tout ce qui est posé par un joueur n'est pas censé apporté d'XP si on le recasse dans ton système de métier Donc ce qu'il faudrait je pense, c'est stocker la position du bloc qui est posé par un joueur, et ensuite vérifier quand on casse un bloc: Si le bloc en question fait partie de la liste: - on ne donne pas d'XP mais aussi - supprimer le bloc de la liste vu qu'il n'existe plus Je te recommande aussi pour que la vérif ne soit pas trop lourde de segmenté la recherche du bloc Par exemple, si une variable fini par contenir 200 000 blocs, on va pas passer au travers des 200 000 blocs à chaque fois qu'un joueur casse un bloc On peut commencer par trier par Monde, ensuite par chunk et enfin par bloc, tu peux aussi segmenter pour optimiser encore plus sur plusieurs couche en Y Bien sûr, pour encore optimiser la variable, on ne stockera que les blocs en rapport avec les métiers et pas tous les blocs que pose tous les joueurs ^^ Salut merci pour ta réponse ! Aurais-tu un exemple de skript pour que je comprenne comment tu réaliserais celui-ci ? Partager ce message Lien à poster Partager sur d’autres sites
DKSM 13 Répondu : 14 juin 2023 (modifié) Oula, si tu veux envoi moi ton discord en MP pour en parler ^^ Mais en brouillon ca donnerai on place unBloc: if le bloc et un bloc utilisé dans les métiers: if {bloc::%player's world%} is not set: add player's world to {bloc::*} if {bloc::player's world%::%chunk at event-block%} is not set: add chunk at event-block to {bloc::player's world%::*} add location of event-block to {bloc::player's world%::%chunk at event-block%::*} on break: if {bloc::player's world%::%chunk at event-block%} is set: if {bloc::player's world%::%chunk at event-block%::%location of event-block%} is set: on donne pas d'xp remove location of event-block from {bloc::player's world%::%chunk at event-block%::*} Alors, on est sur un truc très dégueulasse pas utilisable pour l'exemple. C'est juste pour donner une potentiel idée de la démarche ^^ Il pourrait être optimisé pour être plus précis et minimiser encore les calculs inutiles Pour pas conserver certaines variables vides inutilement, il faudrait aussi nettoyer les variables Le tout de manière plus propre, probablement avec des fonctions pour que ce soit plus propres et une manière simple de vérifier si c'est un bloc de métier Modifié 14 juin 2023 par DKSM Partager ce message Lien à poster Partager sur d’autres sites
Mr_Kofte 5 Répondu : 15 juin 2023 Il y a 20 heures, DKSM a dit : Oula, si tu veux envoi moi ton discord en MP pour en parler ^^ Mais en brouillon ca donnerai on place unBloc: if le bloc et un bloc utilisé dans les métiers: if {bloc::%player's world%} is not set: add player's world to {bloc::*} if {bloc::player's world%::%chunk at event-block%} is not set: add chunk at event-block to {bloc::player's world%::*} add location of event-block to {bloc::player's world%::%chunk at event-block%::*} on break: if {bloc::player's world%::%chunk at event-block%} is set: if {bloc::player's world%::%chunk at event-block%::%location of event-block%} is set: on donne pas d'xp remove location of event-block from {bloc::player's world%::%chunk at event-block%::*} Alors, on est sur un truc très dégueulasse pas utilisable pour l'exemple. C'est juste pour donner une potentiel idée de la démarche ^^ Il pourrait être optimisé pour être plus précis et minimiser encore les calculs inutiles Pour pas conserver certaines variables vides inutilement, il faudrait aussi nettoyer les variables Le tout de manière plus propre, probablement avec des fonctions pour que ce soit plus propres et une manière simple de vérifier si c'est un bloc de métier Ok, alors voici mon discord : Conor#2001 ou sans le hastag Partager ce message Lien à poster Partager sur d’autres sites
Mr_Kofte 5 Répondu : 17 juin 2023 Résolu avec @DKSM Partager ce message Lien à poster Partager sur d’autres sites
Yghore 379 Répondu : 18 juin 2023 Le sujet a été résolu. Il a donc été verrouillé. Cordialement, l'équipe. Partager ce message Lien à poster Partager sur d’autres sites