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

    Résolu Vitesse d'un joueur côté serveur

    1.7.x
    1.7.10
    2
    6
    1043
    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.
    • SCAREX
      SCAREX dernière édition par

      J’aimerais récupérer la vitesse d’un joueur côté serveur (j’utilise un IExtendedEntityProperties et j’aimerais éviter d’utiliser un nouveau paquet à envoyer au serveur, je préfère l’utiliser en dernier recours). J’ai déjà essayé :

      • le motion, sauf qu’il n’existe pas côté serveur
      • la variable moveForward qui elle existe côté serveur sauf qu’elle n’est appliquée que si la valeur est supérieure à 1 côté serveur (géré lorsque le paquet est reçu)
      • la différence des positions (avant et après le tickage du joueur) mais ces valeurs sont toujours les mêmes (posX, prevPosX et lastTickPosX. La variable serverPosX est toujours à 0)
      • getWalkSpeed, sauf que c’est un multiplicateur constant

      Code à l’instant :

      @SubscribeEvent
      public void onPlayerTick(PlayerTickEvent event) {
      EntityPlayer player = event.player;
      EEPThirstBar t = EEPThirstBar.getEEP(player);
      int i = 0;
      if (event.phase == Phase.END) {
      if (event.side == Side.SERVER) {
      if (player.isInWater()) i = 1;
      }
      } else {
      if (event.side == Side.SERVER) {
      if (player.ticksExisted % 20 == 0) {
      Hilium.LOGGER.info(player.posX + " | " + player.prevPosX + " | " + player.lastTickPosX);
      }
      }
      }
      if (i != 0) t.incrementValue(i);
      }
      

      Mais rien à faire, je n’arrive pas à avoir la vitesse à laquelle avance le joueur.

      Site web contenant mes scripts : http://SCAREXgaming.github.io

      Pas de demandes de support par MP ni par skype SVP.
      Je n'accepte sur skype que l…

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

        Regardes la position déjà stocké dans tes extended properties (on considère qu’elle est égale à la position courante si aucune n’est sauvegardée) et soustrais cette position à la position courante pour obtenir la vitesse en mètres/ticks
        Une fois la vitesse obtenue, tu remplaces l’ancienne position par la position courante dans l’extended properties, et voilà 😉

        Sent from my GT-I9000 using Tapatalk 2

        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
        • SCAREX
          SCAREX dernière édition par

          Mais j’ai aucune position stockée dans l’EEP, et puis çà fait beaucoup d’enregistrer la position tous les ticks dans un EEP, non ?

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

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

            Si tu le fais que côté serveur, c’est juste ajouter trois variables dans l’EEP et changer leur valeur chaque tick, c’est rien ^^

            Sent from my GT-I9000 using Tapatalk 2

            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
            • SCAREX
              SCAREX dernière édition par

              Merci beaucoup, mais je crois au final que je vais devoir utiliser des paquets côté client : il faut que je détecte lorsqu’une personne boit une fiole d’eau et l’event est appelé seulement côté client, à moins qu’il y est une autre manière de savoir lorsqu’une fiole est bue (j’utilise le PlayerUseItemEvent.Finish).

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

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

                Bon, j’ai finalement décidé d’utiliser un paquet, je ferme.

                Site web contenant mes scripts : http://SCAREXgaming.github.io

                Pas de demandes de support par MP ni par skype SVP.
                Je n'accepte sur skype que l…

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

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB