Aller au contenu
Mr_Kofte

résolu ✔ Job - Variable dans un bloc

Messages recommandés

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

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 ^^

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
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

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é par DKSM

Partager ce message


Lien à poster
Partager sur d’autres sites
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
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

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