MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    [1.7.x]Extended Entity Properties/Dimension/Particules/Rotation d'un Item

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    37 Messages 5 Publieurs 8.8k Vues 1 Watching
    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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Heu comment ça ? Tu veux générer une structure dans le monde, c’est juste ça ?

      1 réponse Dernière réponse Répondre Citer 0
      • mindany2M Hors-ligne
        mindany2
        dernière édition par

        Non, j’aimerais créer une dimension où il y a que la structure (pour prendre un exemple plus concret tu as l’idée de la dimension que propose sevenno07 dans son projet :

        créer une PERD “Personal Empty Room Dimension”.
        Donc via une autre “table de craft”, vous pourrez créer une gemme qui vous permettra d’aller dans votre dimension personnelle Explication :
        Cette salle sera fabriquée à partir de blocs incassables qui ont une valeur de 50 EPC, les blocs de vide aussi on une valeur, 2 EPC

        )

        Edit : merci isador34 ^^

        ^^

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

          Heu alors là, je ne sais pas trop, il faudrait virer tout le code de génération classique mais je ne sais pas comment faire.

          Pour ce que t’as dit isador c’est faux, les tags nbt ne sont pas effacés dans les deux cas. Les propriétés customs d’entity sont plus complexe à être mit en place mais sont plus pratique pour get / set les valeurs et ajouter ses propres méthodes dedans.

          1 réponse Dernière réponse Répondre Citer 0
          • DiangleD Hors-ligne
            Diangle
            dernière édition par

            pour les structures je vais bientôt faire un tuto dessus, et si aucun d’autre membre le fond un autre sur les dimensions.

            1 réponse Dernière réponse Répondre Citer 0
            • mindany2M Hors-ligne
              mindany2
              dernière édition par

              Le plus dûr n’est pas de généré une structure, ni de faire une dimension je pense
              C’est de faire en sorte que la dimension est vide avec une structure qui apparaît à ton spawn 😛

              ^^

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

                C’est même relativement facile à faire.
                Prenons une structure de 5^3.
                La bordure de la structure étant le 5ème bloc en x, y et z.
                Il suffit de dire que tous les blocs en dehors de cette zone sont des blocs d’air, et de dire, que le bas de la structure spawn en dessous du joueur.

                C’est moi, qui vais m’occuper de cette dimension-structure dans Energy Transformer (J’aime le challenge).

                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
                • mindany2M Hors-ligne
                  mindany2
                  dernière édition par

                  “C’est moi, qui va s’occuper de cette dimension-structure dans Energy Transformer (J’aime le challenge).”
                  Ok ^^ j’ai un projet personnel qui va utilisé le même principe (structure dans le vide), je vais essayé d’utiliser ça

                  Ah au faite je vais pouvoir vous aidez vers juillet pour Energy Transformer ^^ (enfin si j’arrive à vous aidez)

                  ^^

                  1 réponse Dernière réponse Répondre Citer 0
                  • mindany2M Hors-ligne
                    mindany2
                    dernière édition par

                    Après avoir vérifié le temps entre chaque post (doute entre 24 et 48h :P) :
                    J’ai réussi à créer ma dimension vide en revanche mon problème est de faire spawn la structure en dessous du spawn du joueur qui doit être identique à chaque endroit de l’overworld (en gros que le portail soit fait en 1900 1000 ou en 0 0 revient au même)

                    J’ai fait quelque recherche dans les codes mais je n’ai rien trouvé de spécial mise à part peut-être :

                    public ChunkCoordinates getEntrancePortalLocation()
                    {
                    return new ChunkCoordinates(100, 50, 0);
                    }
                    
                    

                    mais il n’est d’aucune aide pour ce problème il me semble
                    Auriez vous une idée :huh:

                    Merci d’avance 😄

                    ^^

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

                      C’est le joueur qui spawn en (100, 50, 0) ou la structure? Pour la structure, j’ai réussi à la faire spawné constamment en (0, 4, 0).

                      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
                      • mindany2M Hors-ligne
                        mindany2
                        dernière édition par

                        Bah les deux en faite 😛
                        Enfin après les coordonnés peut importe le temps que le joueur spawn bien au dessus de la structure ^^___Salut,
                        J’ai un autre problème qui concerne la façon dont on active le fly j’aimerais faire un système de la même façon (donc en faisant un “double saut” mais j’ai du mal à comprendre le système qui active le fly dans la class EntityPlayerSP on voit

                        boolean flag = this.movementInput.jump;
                        if (this.capabilities.allowFlying && !flag && this.movementInput.jump)
                        {
                        if (this.flyToggleTimer == 0)
                        {
                        this.flyToggleTimer = 7;
                        }
                        else
                        {
                        this.capabilities.isFlying = !this.capabilities.isFlying;
                        this.sendPlayerAbilities();
                        this.flyToggleTimer = 0;
                        }
                        }
                        

                        flag est normalement contraire de “this.movementInput.jump” et pourtant c’est une condition “et” (si on peut dire ça comme ça)
                        De plus j’ai utilisé ce code mais ça n’a pas marché un simple saut l’active
                        Merci d’avance

                        Edit : Oups >.<’ j’ai mal configurer mon profil… Le forum m’affichait l’heure en GTM +0 donc je pensais que ça faisait les 24 heures … Désolé 😞

                        ^^

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

                          J’ai fusionné les deux messages.

                          Tu l’as mit ou ton code ?
                          Car celui de mojang se trouve dans la fonction onUpdate du joueur, donc une fonction déclenché à chaque tick. Entre les deux morceaux de code que tu as donnés, il y a d’autres codes qui joue sur le timer, ça doit être ça.
                          La condition flag est obtenu plus tôt dans le temps, en fait elle sert à éviter que mettre le fly si le joueur reste appuyer sur la touche.

                          1 réponse Dernière réponse Répondre Citer 0
                          • mindany2M Hors-ligne
                            mindany2
                            dernière édition par

                            Merci d’avoir fusionné mes messages et encore désolé ^^’
                            J’ai mis le bout de code dans un LivingUpdateEvent
                            Ok, en revanche comment puis-je garder le même principe en ne pouvant pas vraiment “éloigner” le flag :s ?
                            Les codes entre les deux morceaux que j’ai envoyé concernent le sprint donc je ne pense pas que l’info est dedans

                            ^^

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

                              Envoie tout ton code actuel. Tu cherche à faire quoi exactement ?

                              1 réponse Dernière réponse Répondre Citer 0
                              • mindany2M Hors-ligne
                                mindany2
                                dernière édition par

                                Ok

                                @SubscribeEvent
                                public void onLivingUpdate(LivingUpdateEvent event)
                                {
                                Minecraft mc = Minecraft.getMinecraft();
                                if(event.entity instanceof EntityPlayer){
                                EntityPlayer player = (EntityPlayer) event.entityLiving;
                                
                                boolean flag = mc.thePlayer.movementInput.jump;
                                if(!flag&&mc.thePlayer.movementInput.jump){
                                final IEntitySelector livingFilter = new SonicEntityFilter();
                                List entityTagetList = player.worldObj.selectEntitiesWithinAABB(Entity.class, player.boundingBox.expand(64.0D, 64.0D, 64.0D), livingFilter);
                                for(int i = 0; i < entityTagetList.size(); i++)
                                {
                                Entity entityTarget = (Entity)entityTagetList.get(i);
                                if(entityTarget != player && entityTarget instanceof EntityLivingBase)
                                {
                                EntityLivingBase entityLivingTarget = (EntityLivingBase)entityTarget;
                                Vec3 vec3 = player.getLook(1.0F).normalize();
                                Vec3 vec31 = entityLivingTarget.worldObj.getWorldVec3Pool().getVecFromPool(entityLivingTarget.posX - player.posX, entityLivingTarget.boundingBox.minY + (double)(entityLivingTarget.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), entityLivingTarget.posZ - player.posZ);
                                double d0 = vec31.lengthVector();
                                vec31 = vec31.normalize();
                                double d1 = vec3.dotProduct(vec31);
                                if(d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(entityLivingTarget))
                                {
                                player.setPositionAndUpdate(entityLivingTarget.posX, entityLivingTarget.posY, entityLivingTarget.posZ);
                                player.attackTargetEntityWithCurrentItem(entityLivingTarget);
                                }
                                }
                                }
                                }
                                }
                                }
                                

                                Bon ben là les codes “parlent” d’eux même je cherche à faire en sorte que lorsqu’on appuie deux fois sur espace cela tp le joueur à l’entité et l’attaque ^^

                                ^^

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

                                  private final Map <entityplayer, integer="">timeSinceLastJump = new HashMap();
                                  @SubscribeEvent
                                  public void onJump(LivingJumpEvent event)
                                  {
                                  if(event.entityLiving instanceof EntityPlayer)
                                  {
                                  EntityPlayer player = (EntityPlayer)event.entityLiving;
                                  if(timeSinceLastJump.containsKey(player))
                                  {
                                  if(timeSinceLastJump.get(player) < 30)
                                  {
                                  System.out.println("deux jump à la suite");
                                  }
                                  }
                                  timeSinceLastJump.put(player, 0);
                                  }
                                  }
                                  
                                  @SubscribeEvent
                                  public void onLivingUpdate(LivingUpdateEvent event)
                                  {
                                  if(event.entity instanceof EntityPlayer)
                                  {
                                  EntityPlayer player = (EntityPlayer)event.entityLiving;
                                  if(timeSinceLastJump.containsKey(player))
                                  {
                                  timeSinceLastJump.put(player, timeSinceLastJump.get(player) + 1);
                                  System.out.println(timeSinceLastJump.get(player));
                                  }
                                  }
                                  }
                                  

                                  J’ai testé, c’est fonctionnel.</entityplayer,>

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • mindany2M Hors-ligne
                                    mindany2
                                    dernière édition par

                                    Pour ma part le message à parait à un simple saut pourtant 😮 , d’après ce que j’ai compris du code si la touche est maintenu cela marche quand même non ?

                                    Edit : Mise à jour du post afin de ne pas avoir à lire tout les messages

                                    ^^

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

                                      En effet, je viens de retesté, je devais être fatigué quand j’ai dis que ça fonctionnait x)

                                      Du-coup j’ai tout refait, ça m’a l’air bon parcontre c’est que en client :

                                      @SideOnly(Side.CLIENT)
                                      boolean jumpLast = false;
                                      @SideOnly(Side.CLIENT)
                                      int timer;
                                      
                                      @SideOnly(Side.CLIENT)
                                      @SubscribeEvent
                                      public void onTickPlayer(TickEvent.PlayerTickEvent event)
                                      {
                                      if(event.player.getCommandSenderName() == Minecraft.getMinecraft().thePlayer.getCommandSenderName())
                                      {
                                      EntityPlayerSP player = Minecraft.getMinecraft().thePlayer;
                                      if(player.movementInput.jump)
                                      {
                                      if(!jumpLast)
                                      {
                                      jumpLast = true;
                                      }
                                      else if(timer > 2)
                                      {
                                      jumpLast = false;
                                      System.out.println("second jump");
                                      }
                                      timer = 0;
                                      }
                                      if(jumpLast)
                                      {
                                      timer ++;
                                      if(timer > 20)
                                      {
                                      jumpLast = false;
                                      timer = 0;
                                      }
                                      }
                                      }
                                      }
                                      

                                      Ah, aussi, j’utilise un event de fml, donc il faut enregistrer la classe avec FMLCommonHandler.instance().bus().register(new TaClasse());

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • mindany2M Hors-ligne
                                        mindany2
                                        dernière édition par

                                        C’est pas grave 😛 vu tout ce que tu fais sur ce site ._.
                                        Merci beaucoup ça marche parfaitement bien ^^

                                        Edit : Encore un “petit” problème >.<’ (je suis actuellement en train de chercher comment l’arranger)
                                        J’ai voulu faire spawn des particules et j’aimerais que les particules soit “stable” comme le bloc barrier en snapshot

                                        ^^

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

                                          Pour l’image en jeu : https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotechmod/main/event/RenderEvent.java#L45-L64
                                          Par contre là c’est sur tout le jeu, il faudrait adapter le code pour mettre seulement sur une partie de l’écran.

                                          Pour les particules, aucune idée.

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • mindany2M Hors-ligne
                                            mindany2
                                            dernière édition par

                                            Ok merci, ça m’a permis en même temps de comprendre comment marchais le placement x, y avec Tessellator ^^
                                            Encore un petit problème avec les overlays : J’aimerais utilisé une police spécial pour afficher des chiffres, actuellement j’utilise

                                            FMLClientHandler.instance().getClient().fontRenderer.drawStringWithShadow(player.getEntityData().getInteger("numb"), 5, 15, 0xffffff);
                                            ``` mais il ne propose pas le changement de police donc y a t'il une fonction qui le propose où je vais devoir essayé de marcher par image :s ?

                                            ^^

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB