Partage
  • Partager sur Facebook
  • Partager sur Twitter

Convertir string en int32

    9 décembre 2018 à 20:17:56

    Bonjour,

    Pour les besoins d'un site pour un serveur fivem j'aurais besoin de convertir du texte en hash int32.

    Exemple :

    Model Name = hex,uint32,int32 (description)
    ------------------------------------
    adder = 0xB779A091,3078201489,-1216765807

    J'ai chercher (google, phpmanal, …) je ne trouve pas de solution, et ça devient trop complexe pour moi.

    Si quelqu'un sait comment faire ça, je suis preneur.

    • Partager sur Facebook
    • Partager sur Twitter
      10 décembre 2018 à 8:47:26

      Hello,

      On parle bien en PHP ?

      L'usage de intval($string, 32); n'a pas solutionner ton problème ?

      http://php.net/manual/fr/function.intval.php

      intval() retourne la valeur numérique entière (entier) de la variable var, en convertissant la valeur dans la base spécifiée (par défaut en base 10). intval() ne doit pas être utilisée sur des objets ; si c'est le cas, une erreur de niveau E_NOTICE sera émise et la fonction retournera 1.

      • Partager sur Facebook
      • Partager sur Twitter
        10 décembre 2018 à 13:24:22

        Cafonctionne pas.

        En reprenant l'exemple de la adder :

        Ce que j'obtient avec intval : 10925531

        Ce que je souhaiterais obtenir : -1214745807

        Je comprend pas comment rockstar hash le nom de ses models. A chaque système que je test ça foire.

        • Partager sur Facebook
        • Partager sur Twitter
          10 décembre 2018 à 14:06:03

          Hello,

          Il m'est difficile de comprendre l’étendue de la problématique car je n'ai jamais eu le loisir d'avoir des serveurs de ce type.

          Cependant tu mentionnes partir d'un STRING (Texte), c'est bien ça ? Si oui, quelle est la chaîne en question ? Actuellement, "adder" ressemble plus au résultat attendu.

          A noter que, pour la conversion en Hexadécimal (cas 1 de adder), la fonction PHP dechex() ne prends que des INTEGER non signés. Donc à mon avis, qu'importe ce que tu cherches à faire, il va te falloir programmer tes propres fonctions de traitement.

          • Partager sur Facebook
          • Partager sur Twitter
            10 décembre 2018 à 14:35:12

            La chaine utilisé correspond au nom de fichier sans extension du véhicule. C'est ce hash que le jeu (GTA) utilise pour spawn le véhicule en question.

            Mon problème est, que tout les modèles ne sont pas recensé et les véhicules que l'ont rajoute ne possède pas de hash à proprement parler.
            Je voulais faire un mini script en php pour lire la base de données et créer les hash inexistant au clic en prenant son nom de model. Si je peux pas c'est pas grave, il me semble qu'il y a des programmes en C... qui arrivent à récupérer ça. Au pire je les ferais à la main une à une.

            Merci de ton aide quand même ;)
            • Partager sur Facebook
            • Partager sur Twitter
              10 décembre 2018 à 15:15:36

              Peux-tu nous donner un exemple de nom de fichier non répertorié ?
              • Partager sur Facebook
              • Partager sur Twitter
                10 décembre 2018 à 18:02:25

                Par exemple, j'ai rajouté une mustang.

                Son nom de fichier est mustang67, je ne connais pas son hash vu qu'elle n'a tout simplement pas était faite par l'éditeur du jeu. Donc même si le jeu peut créer son hash, il ne me le fourni pas comme ça.

                La seule méthode pour le récupérer est très chiante, je dois installer un garage mal foutu pour la mettre dedans et fouiller le json créé par celui-ci.
                Quand ça touche qu'une ou deux voitures c'est pas génant, mais plusieurs dizaine rien que pour celle faite par Rockstar et que je dois rajouter à la main en BDD ...

                • Partager sur Facebook
                • Partager sur Twitter
                  12 décembre 2018 à 22:48:46

                  Hello,

                  Si c'est du JSON, saches que des fonctions PHP permettent d'extraire et de traiter les valeurs du JSON.

                  Je pense qu'il serait simple de partir sur ça puis de faire un simple rename() (si possible) ou simplement te donner la liste, tu ne penses pas ?

                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 décembre 2018 à 9:50:58

                    RPGBookOnline a écrit:

                    Hello,

                    Si c'est du JSON, saches que des fonctions PHP permettent d'extraire et de traiter les valeurs du JSON.

                    Je pense qu'il serait simple de partir sur ça puis de faire un simple rename() (si possible) ou simplement te donner la liste, tu ne penses pas ?


                    Concept fondateur de la programmation, laisser la machine faire le boulot. Tu parses ton json, si tu veux tu affiches ce qu'il contient dans un joli tableau avec des coeurs, et en plus tu peux INSERT le tout dans ta BDD. Je vois pas pourquoi tu ferais tout à la main. :-°
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 décembre 2018 à 22:02:42

                      Bonsoir,

                      C'est pas l'extraction le problème, c'est le hashage.
                      Dans le json c'est sous forme "-1214745807". C'est pour ça que j'ai besoin de pouvoir hash le nom en clair pour avoir une correspondance en hash.

                      Dans la bdd c'est dans deux tables séparé, pas le choix, dans la première c'est hash alors que la deuxième c'est en clair.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        13 décembre 2018 à 23:02:56

                        De ce que j'ai lu il te sera impossible de calculer un tel hash avec PHP. À vérifier je n'ai pas les connaissances dans ce domaine.

                        http://php.net/manual/fr/language.types.integer.php#117249



                        • Partager sur Facebook
                        • Partager sur Twitter
                          14 décembre 2018 à 14:10:03

                          Je commence à penser que ce n'est effectivement pas possible. Je trouve rien qui colle, peu importe la méthode PHP.

                          Je vais essayer autre chose, coté lua avec des print. Ca va être chiant de rentrer plus de 250 hash à la main en BDD, mais au moins je devrais avoir ce que je veux d'affiché dans la console. Il y a une fonction pour obtenir ce hash native à GTA. Il faudra juste que je la désactive histoire que ça pompe pas les ressources inutilement.

                          Merci quand même à vous tous.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            14 décembre 2018 à 14:13:44

                            Tu sais, si tu as des bases en programmation, créer un outil dédié uniquement à trouver ces fameux hashs dans le langage qui te permet de le faire, même si c'est un programme de 5 lignes, tu pourras toujours l'appeler avec PHP et récupérer l'output. C'est la méthode que j'emploie quand ça devient complexe pour utiliser PHP.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              14 décembre 2018 à 14:56:22

                              Hello. Ce genre de hash sert à certifier que le fichier n'a pas été altéré par une erreur lors du download, c'est donc le fichier qu'il faut hasher et non pas le nom. Le hash de adder ressemble à ce que la fonction crc32() pourrait retourner, mais il faudrait l'appliquer sur le fichier adder pour être certain car rien interdit à rockstar d'avoir fait son propre Contrôle de Redondance Cyclique.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                16 décembre 2018 à 12:05:47

                                Festin :

                                Je confirme que c'est bien le nom qui est hash et pas le fichier.
                                Testé tout simplement en modifiant les fichiers du véhicules, le hash reste le même tant que le nom est le même.

                                xoxotf :
                                C'est plus ou moins ce que j'ai fait.

                                Rockstar a en natif la function pour ce hash, du coup au lieu de passer par php, j'exécute un script lua qui fait le taff au lancement du serveur. Je le désactive quand j'en ai pas besoin, histoire qu'il ne prenne pas de ressource, même infime, inutilement ^^

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Convertir string en int32

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown