• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Help : L'oxygene

    Sans suite
    1.6.2
    7
    23
    7461
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • Bowser338
      Bowser338 dernière édition par

      forge 845

      Bonjour,
      j’ai creer une dimension : la lune

      mais j’aimerais rendre sa plus realiste
      j’aimerais creer un systeme d’oxygene
      en gros
      quand le joueur est sur la lune il prends des degats
      mais quand il est dans une piece avec un disperseur d’oxygene ( un piece contenant de l’oxygene )
      il ne prends pas de degats et peux “vivre”

      apres pour avoir l’oxygene je creerais une plante et un collecteur d’oxygene qui recuperera cet oxygene
      et l’enverra par tuyau dans le disperseur

      je sais que c’est peut etre compliquer a comprendre
      mais j’ai vraiment besoin d’aide
      si il y a des choses que vous ne comprenez pas n’hesitez pas 🙂

      Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Je pense qu’il faudrait créer un nouveau bloc comme l’air. Je vois pas d’autre solution, ou alors un tickhandler qui tick le player.

        1 réponse Dernière réponse Répondre Citer 0
        • Superloup10
          Superloup10 Modérateurs dernière édition par

          Regarde ce qu’à fais galacticraft, et inspire-t-en. https://github.com/micdoodle8/Galacticraft

          Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

          Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

          1 réponse Dernière réponse Répondre Citer 0
          • Bowser338
            Bowser338 dernière édition par

            Ok merci pour vos réponses/suggestions

            Comme l’a suggérer superloup je vais voir par rapport a ce qu’à fait micdoolde8
            ( d’ailleurs j’ai son api avec tout les fichiers java du mod )
            je vous tiens au courant

            Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

            1 réponse Dernière réponse Répondre Citer 0
            • elias54
              elias54 Administrateurs dernière édition par

              Inspires-toi de galacticraft, ce mod est codé par un jeune de 12 ans ^^

              Mon site | GitHub

              1 réponse Dernière réponse Répondre Citer 0
              • Bowser338
                Bowser338 dernière édition par

                J’ai pas mal réfléchis
                j’ai eu plusieurs idées
                déjà pour que dans la dimension on prenne des dégâts
                Faudrait appliquer le principe de suffocation ( comme quand on est dans l’eau )
                et ensuite pour notre oxygène
                faire comme l’a suggérer robin4002
                créer un nouveau bloc d’air
                et un bloc qui dans une pièce close,
                Rempli la pièce d’air maintenant il ne reste plus qu’à appliquer sa dans le jeux
                😕

                Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                1 réponse Dernière réponse Répondre Citer 0
                • Bowser338
                  Bowser338 dernière édition par

                  [desoler pour le double post]

                  quelqu’un pourrait m’aider ?

                  Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                  1 réponse Dernière réponse Répondre Citer 0
                  • jglrxavpok
                    jglrxavpok Modérateurs dernière édition par

                    Pour la dispersion de l’oxygène, tu peux dire qu’à chaque tick, tous les blocs “d’air de Minecraft” (id == 0) autour du bloc sont transformés en blocs d’oxygène. Mais à toi de faire en sorte que ça n’aille pas trop loin 😉

                    Modérateur sur MFF. 
                    Mon Github: http://github.com/jglrxavpok
                    Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                    1 réponse Dernière réponse Répondre Citer 0
                    • Bowser338
                      Bowser338 dernière édition par

                      je comprends pas tres bien
                      mais ce qu’il faudrait deja faire c’est que le joueur se prenne des degats parce qu’il n’est pas dans un bloc d’air ( que je creerais moi meme )
                      l’inverse du bloc d’eau enfait

                      et apres faire ton systeme
                      non ?

                      Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                      1 réponse Dernière réponse Répondre Citer 0
                      • jglrxavpok
                        jglrxavpok Modérateurs dernière édition par

                        Avec les “player ticks” gérés par le ServerTickHandler, tu peux facilement faire la suffocation s’il est sur la Lune 😉

                        Modérateur sur MFF. 
                        Mon Github: http://github.com/jglrxavpok
                        Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                        1 réponse Dernière réponse Répondre Citer 0
                        • Bowser338
                          Bowser338 dernière édition par

                          ok mais il faut mettre une condition : s’il n’est pas dans un bloc X* il se prends des degats

                          X = mon bloc d’oxygene

                          Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                          1 réponse Dernière réponse Répondre Citer 0
                          • utybo
                            utybo dernière édition par

                            Il te faut plutôt 2 conditions : qu’il soi dans la dimension et qu’il ne soit pas dans un bloc X

                            Moddeur à la retraite et développeur de trucs en Java.

                            J'aide les gens comme je peux, alors si mon message v…

                            1 réponse Dernière réponse Répondre Citer 0
                            • Bowser338
                              Bowser338 dernière édition par

                              Oui ^^

                              Par contre je sais pas trop comment m’y prendre pour la suffocation
                              quelqu’un peut m’aider ?

                              Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                              1 réponse Dernière réponse Répondre Citer 0
                              • utybo
                                utybo dernière édition par

                                Mince 😕
                                Je viens de penser au fait qu’il faut créer un nouveau type de dommages sinon la suffocation normal c’est dans un mur…
                                Je regarde ce que je peux faire

                                EDIT : Le DamageSource est en protected 😕

                                protected DamageSource(String par1Str)
                                

                                EDIT2 : Bon je crois que le code c’est bon, j’ai du recopier toute la class DamageSource car 99% des méthodes sont en protected ou en private

                                Moddeur à la retraite et développeur de trucs en Java.

                                J'aide les gens comme je peux, alors si mon message v…

                                1 réponse Dernière réponse Répondre Citer 0
                                • jglrxavpok
                                  jglrxavpok Modérateurs dernière édition par

                                  Pas de problème ^^
                                  Fais une classe qui extends de DamageSource 😉

                                  Modérateur sur MFF. 
                                  Mon Github: http://github.com/jglrxavpok
                                  Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • utybo
                                    utybo dernière édition par

                                    Nope la class voit pas les .setMachinTruc, je sais pas pourquoi

                                    Moddeur à la retraite et développeur de trucs en Java.

                                    J'aide les gens comme je peux, alors si mon message v…

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • Gugu
                                      Gugu dernière édition par

                                      Pour détecter si un bloc d’oxygène peut vivre, tu peux faire cette condition :

                                      Toucher le bloc générateur d’oxygène / un autre bloc d’oxygène.

                                      Ne pas être en contact avec trop de blocs d’air ( Pour faire en sorte que l’oxygène meurts sur la surface de la lune en se dissipant )

                                      "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                                      ― Jordan B. Peterson

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • utybo
                                        utybo dernière édition par

                                        Bon je crois que c’est bon pour les damage source (il faut que je fasse un tuto dessus!)

                                        EDIT :
                                        Code à mettre dans la class (pense à remplacer NomDeLaClass par… le nom de la class :dodgy:) :

                                        import net.minecraft.entity.Entity;
                                        import net.minecraft.entity.EntityLivingBase;
                                        import net.minecraft.entity.player.EntityPlayer;
                                        import net.minecraft.entity.projectile.EntityArrow;
                                        import net.minecraft.entity.projectile.EntityFireball;
                                        import net.minecraft.util.ChatMessageComponent;
                                        import net.minecraft.util.DamageSource;
                                        import net.minecraft.util.EntityDamageSource;
                                        import net.minecraft.util.EntityDamageSourceIndirect;
                                        import net.minecraft.util.StatCollector;
                                        import net.minecraft.world.Explosion;
                                        
                                        /** This whole code is a high-modified copy of DamageSource.
                                        * Original code is from Minecraft
                                        * @author utybo
                                        * */
                                        public class NomDeLaClass extends DamageSource {
                                        
                                        public static DamageSource moonSuffocation = (new NomDeLaClass("moonSuffocation")).setDamageBypassesArmor().setDamageAllowedInCreativeMode();
                                        
                                        public NomDeLaClass(String par1Str)
                                        {
                                        super(par1Str);
                                        this.damageType = par1Str;
                                        }
                                        
                                        protected NomDeLaClass setDamageBypassesArmor()
                                        {
                                        this.isUnblockable = true;
                                        this.hungerDamage = 0.0F;
                                        return this;
                                        }
                                        private boolean isUnblockable;
                                        private boolean isDamageAllowedInCreativeMode;
                                        private float hungerDamage = 0.3F;
                                        
                                        /** This kind of damage is based on fire or not. */
                                        private boolean fireDamage;
                                        
                                        /** This kind of damage is based on a projectile or not. */
                                        private boolean projectile;
                                        
                                        /**
                                        * Whether this damage source will have its damage amount scaled based on the current difficulty.
                                        */
                                        private boolean difficultyScaled;
                                        private boolean magicDamage;
                                        private boolean explosion;
                                        public String damageType;
                                        
                                        public static DamageSource causeMobDamage(EntityLivingBase par0EntityLivingBase)
                                        {
                                        return new EntityDamageSource("mob", par0EntityLivingBase);
                                        }
                                        
                                        /**
                                        * returns an EntityDamageSource of type player
                                        */
                                        public static DamageSource causePlayerDamage(EntityPlayer par0EntityPlayer)
                                        {
                                        return new EntityDamageSource("player", par0EntityPlayer);
                                        }
                                        
                                        /**
                                        * returns EntityDamageSourceIndirect of an arrow
                                        */
                                        public static DamageSource causeArrowDamage(EntityArrow par0EntityArrow, Entity par1Entity)
                                        {
                                        return (new EntityDamageSourceIndirect("arrow", par0EntityArrow, par1Entity)).setProjectile();
                                        }
                                        
                                        public static DamageSource causeThrownDamage(Entity par0Entity, Entity par1Entity)
                                        {
                                        return (new EntityDamageSourceIndirect("thrown", par0Entity, par1Entity)).setProjectile();
                                        }
                                        
                                        /**
                                        * Returns the EntityDamageSource of the Thorns enchantment
                                        */
                                        public static DamageSource causeThornsDamage(Entity par0Entity)
                                        {
                                        return (new EntityDamageSource("thorns", par0Entity)).setMagicDamage();
                                        }
                                        
                                        public static DamageSource setExplosionSource(Explosion par0Explosion)
                                        {
                                        return par0Explosion != null && par0Explosion.getExplosivePlacedBy() != null ? (new EntityDamageSource("explosion.player", par0Explosion.getExplosivePlacedBy())).setDifficultyScaled().setExplosion() : (new NomDeLaClass("explosion")).setDifficultyScaled().setExplosion();
                                        }
                                        
                                        /**
                                        * Returns true if the damage is projectile based.
                                        */
                                        public boolean isProjectile()
                                        {
                                        return this.projectile;
                                        }
                                        
                                        /**
                                        * Define the damage type as projectile based.
                                        */
                                        public NomDeLaClass setProjectile()
                                        {
                                        this.projectile = true;
                                        return this;
                                        }
                                        
                                        public boolean isExplosion()
                                        {
                                        return this.explosion;
                                        }
                                        
                                        public NomDeLaClass setExplosion()
                                        {
                                        this.explosion = true;
                                        return this;
                                        }
                                        
                                        public boolean isUnblockable()
                                        {
                                        return this.isUnblockable;
                                        }
                                        
                                        /**
                                        * How much satiate(food) is consumed by this DamageSource
                                        */
                                        public float getHungerDamage()
                                        {
                                        return this.hungerDamage;
                                        }
                                        
                                        public boolean canHarmInCreative()
                                        {
                                        return this.isDamageAllowedInCreativeMode;
                                        }
                                        
                                        public Entity getSourceOfDamage()
                                        {
                                        return this.getEntity();
                                        }
                                        
                                        public Entity getEntity()
                                        {
                                        return null;
                                        }
                                        
                                        protected NomDeLaClass setDamageAllowedInCreativeMode()
                                        {
                                        this.isDamageAllowedInCreativeMode = true;
                                        return this;
                                        }
                                        
                                        /**
                                        * Define the damage type as fire based.
                                        */
                                        protected NomDeLaClass setFireDamage()
                                        {
                                        this.fireDamage = true;
                                        return this;
                                        }
                                        
                                        /**
                                        * Returns the message to be displayed on player death.
                                        */
                                        public ChatMessageComponent getDeathMessage(EntityLivingBase par1EntityLivingBase)
                                        {
                                        EntityLivingBase entitylivingbase1 = par1EntityLivingBase.func_94060_bK();
                                        String s = "death.attack." + this.damageType;
                                        String s1 = s + ".player";
                                        return entitylivingbase1 != null && StatCollector.func_94522_b(s1) ? ChatMessageComponent.createFromTranslationWithSubstitutions(s1, new Object[] {par1EntityLivingBase.getTranslatedEntityName(), entitylivingbase1.getTranslatedEntityName()}): ChatMessageComponent.createFromTranslationWithSubstitutions(s, new Object[] {par1EntityLivingBase.getTranslatedEntityName()});
                                        }
                                        
                                        /**
                                        * Returns true if the damage is fire based.
                                        */
                                        public boolean isFireDamage()
                                        {
                                        return this.fireDamage;
                                        }
                                        
                                        /**
                                        * Return the name of damage type.
                                        */
                                        public String getDamageType()
                                        {
                                        return this.damageType;
                                        }
                                        
                                        /**
                                        * Set whether this damage source will have its damage amount scaled based on the current difficulty.
                                        */
                                        public NomDeLaClass setDifficultyScaled()
                                        {
                                        this.difficultyScaled = true;
                                        return this;
                                        }
                                        
                                        /**
                                        * Return whether this damage source will have its damage amount scaled based on the current difficulty.
                                        */
                                        public boolean isDifficultyScaled()
                                        {
                                        return this.difficultyScaled;
                                        }
                                        
                                        /**
                                        * Returns true if the damage is magic based.
                                        */
                                        public boolean isMagicDamage()
                                        {
                                        return this.magicDamage;
                                        }
                                        
                                        /**
                                        * Define the damage type as magic based.
                                        */
                                        public NomDeLaClass setMagicDamage()
                                        {
                                        this.magicDamage = true;
                                        return this;
                                        }
                                        }
                                        
                                        

                                        Code à mettre après les conditions et la méthode d’activation :

                                        par3EntityPlayer.attackEntityFrom(NomDeLaClass.moonSuffocation, demi-coeurs);
                                        

                                        (Demi-coeurs est un float)

                                        A mettre dans le fichier .lang :

                                        death.attack.moonSuffocation=%1$s suffocated because of a lack of oxygen
                                        

                                        Moddeur à la retraite et développeur de trucs en Java.

                                        J'aide les gens comme je peux, alors si mon message v…

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • Bowser338
                                          Bowser338 dernière édition par

                                          Merci beaucoup

                                          mais il y a un truc que je comprends pas

                                          
                                          par3EntityPlayer.attackEntityFrom(NomDeLaClass.moonSuffocation, demi-coeurs);
                                          
                                          

                                          je met sa ou je vois pas ou il faut le mettre

                                          Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • utybo
                                            utybo dernière édition par

                                            Après les codes “Si on est dans la dimension X et que je ne suis pas en contact avec un bloc d’oxygène”.
                                            Si tu veux que cela tue en un coup, mets le nombre de demi-coeurs à 20 sinon il faut faire un boucle et je ne sais pas comment faire…

                                            Moddeur à la retraite et développeur de trucs en Java.

                                            J'aide les gens comme je peux, alors si mon message v…

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB