MFF

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

    Système de backstab

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    20 Messages 6 Publieurs 4.2k 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.
    • DeletedD Hors-ligne
      Deleted
      dernière édition par

      Je ne suis pas trop d accord. Certes les angles restent plus précis mais les direction de 1 sont a mon goût beaucoup plus faciles et puis quand tu dis attaquer dans le dos a partir du moment où toi et ton ennemi avez le même point cardinal en commun, tu ne pourras voir que son dos.

      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

        Je ne vois pas en quoi passer par les points cardinaux simplifierait les choses. Pour moi ça fait plus usine à gaz d’autre chose. Car de toute façon comment tu connais le point cardinal vers lequel l’entité regarde ? Avec son angle … Donc au final il faut utiliser l’angle. Plus simple de comparer directement les deux angles.

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

          Bon ok, deux heures que je suis stuck là-dessus, j’ai hésitée à faire une nuit blanche pour trouver la solution au problème, mais vu mes skills en Java c’est mort pour que je trouve la solution toute seule… Je donne ma langue au chat.  -_-

          J'aime coder. Même si je sais pertinemment que je suis nulle.
          [url=http://image.noelshack.com/fichiers/2015/43/1445473320-al…

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

            Ok je te file le code 2 sec

            EDIT = Voici le code, alors j’ai testé sur des cochons, vaches et autres animaux de mc. Certes c’est précis mais pas autant que les angles, cependant si comme tu l’as dit, tu le fais sur ton serv, ça devrait poser aucun problème sur des ModelBiped, tels que les joueurs ^^

            
            @SubscribeEvent
            public void onEntityAttacked2(LivingAttackEvent event) 
            {
            if(!event.entityLiving.worldObj.isRemote)
            {
            int var1 = MathHelper.floor_double((double) (event.entityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;//On récupère l'angle de l'entity qui se fait attaqué
            String direction1 = Direction.directions[var1];//On crée un String de la direction vers laquelle regarde l'entity au-dessus
            int var2 = MathHelper.floor_double((double) (event.source.getEntity().rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;//idem mais pour celle qui attaque
            String direction2 = Direction.directions[var2];//idem
            //Maintenant place à la condition
            if(direction1 == direction2)
            {
            //event.entityLiving.setDead();//Le fait disparaître instantannément, c'est violent ^^', prend la lige d'en dessous sinon
            event.entityLiving.setHealth(0);//Moins radical 
            System.out.println("dans son dos");
            //Et voilà ton code n'est pas plus gros que ça =D (et pas plus compliqué non plus…)
            }
            }
            }
            
            

            Event se trouvant sur le bus minecraftforge, donc rajoute cette ligne dans la méthode init de ta classe principale
            MinecraftForge.EVENT_BUS.register(new TaClasseOuTAsMisLEvent());

            Voilà j’espère que mon code t’aura aidé. J’ai pris soin comme tu as vu de mettre des commentaires (n’oublie pas le petit + x))

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

              Le principe est simple: quand tu tapes une entité, tu vérifies si oui ou non tu est derrière la-dite entité pour choisir le nombre de dégâts.
              Le plus dur est de savoir si oui ou non tu est derrière la cible.
              Pour cela:

              • On récupère les vecteurs de ‘regard’ (celui qui représente la direction dans laquelle une entité regarde) du joueur et de la cible.
              • On remet à 0 leur composante Y, puisque si le joueur regarde en haut ou en bas n’influence pas trop sa capacité à planter un couteau dans le dos.
              • On les transforme en vecteurs unitaires pour faciliter les calculs d’angles.
              • On récupère le cosinus de l’angle avec le produit scalaire et on en déduit l’angle.
              • On vérifie si l’angle est dans un intervalle prédéfini. (-85° à 85° dans mon exemple)

              :::

              public static boolean isBehind(EntityPlayer player, Entity target)
              {
              if(target.getLookVec() == null)
              {
              return false;
              }
              Vec3 targetLook = target.getLookVec();
              targetLook = new Vec3(targetLook.xCoord, 0, targetLook.zCoord).normalize();
              Vec3 playerLook = player.getLookVec().normalize();
              playerLook = new Vec3(playerLook.xCoord, 0, playerLook.zCoord).normalize();
              double angle = Math.acos(playerLook.dotProduct(targetLook));
              if(angle < Math.toRadians(85) && angle > Math.toRadians(-85))
              {
              return true;
              }
              return false;
              }
              

              :::

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

                "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
                • AmbreeeeA Hors-ligne
                  Ambreeee
                  dernière édition par

                  Désolée de cette réponse plutôt tardive.

                  Merci pour vos réponses, les deux -ont l’air de- marcher nickel, mais le problème est que, sachant que je trouve le projet de serveur basé sur Assassin’s Creed un peu trop ambitieux pour une novice comme moi, j’ai décidé de me lancer sur un autre projet. En espérant que cette astuce sera utile à d’autres moddeurs…  😛

                  Désolée de vous avoir dérangés pour finalement me désister au dernier moment. Je voit trop grand dans mes projets à chaque fois…

                  Sur ce, merci de m’avoir aidée, je reviendrais avec plaisir sur MFF si j’ai (encore) besoin d’aide ! ^^

                  J'aime coder. Même si je sais pertinemment que je suis nulle.
                  [url=http://image.noelshack.com/fichiers/2015/43/1445473320-al…

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

                    Pas grave, comme tu dis ça servira à d’autres qui passeront par là 😉

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

                      Même si tu abandonnes le concept, les maths derrière peuvent toujours aider.

                      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
                      • FolganskyF Hors-ligne
                        Folgansky Correcteurs
                        dernière édition par

                        Ouaip, au lieu d’instant kill ça peut jouer un son “Chat c’est toi qu’y est!” pour un mod “le chat et la souris”.

                        Enfin tout ce qu’on veut quoi.

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

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB