nan j'arrive pas a comprendre ces lignes

m_x = (Id & 0x3FE00) >> 9; // 9 higher bits
                if ((m_x & 0x100) == 0x100) // 9th bit is the sign. 1 means it's minus
                {
                    m_x = -(X & 0xFF); // just take the 8 first bits and take the opposite number

Avec les commentaires c'est difficile de faire mieux.

oui mais genre avec un id au pif 84608476 il va renvoyer quoi a la fin ? et dans se code le "X" est égale a quoi ?

m_x = -(X & 0xFF);

Je ne peux pas te donner de valeur de retour mais X correspond à la variable qui englobe la propriété que tu traite.

public int X

ok ok :D et qq sait comment traduire le code du sujet en AutoIT ?

Je crois que je commence a comprendre un peu pres le code mais a la fin il renvoit quoi ? True, False ou un int ? Et que veut dire le .value a la fin ? Désolé je suit un noob dans ce language

Il renvoi un entier forcément puisque X est un entier... Value renvoi la valeur de l objet, ici m_x.

Bon serieusement on va pas vulgariser a chaque fois, ca tombe sous le sens de plus tu as la doc pour t'aider

Hum si tu décide de te lancer dans ce genre de "projets" laisse tombé autoit :)

    Akrone

    Hum si tu décide de te lancer dans ce genre de "projets" laisse tombé autoit :)

    nan je laisserait pas tomber autoit ^^ mais tkt je laisse tomber le calcule et je vais faire un référencement automatique du X,Y par rapport au mapid

    Tu devrais pas abandonner pour si peut, en autoit si je me souviens bien tu n´a pas directement d´opérateur sur les byte ( "<<" , "&") il faut utiliser les fonctions BitAND et BitSHIFT sa fais tellement longtemps que j´ais pas toucher autoit je te ferais pas un exemple mais franchement rien de plus simple

      Mais ouais, sinon tu fait un enum qui associe chaque coords à une mapId

      ... C´est une idée a la c** sa va prendre une blinde de ram pour rien

      Pas plus que des sockets en autoit :p

      asyade

      Tu devrais pas abandonner pour si peut, en autoit si je me souviens bien tu n´a pas directement d´opérateur sur les byte ( "<<" , "&") il faut utiliser les fonctions BitAND et BitSHIFT sa fais tellement longtemps que j´ais pas toucher autoit je te ferais pas un exemple mais franchement rien de plus simple

      merci ! du coup grâce a toi j'ai résolut une partie mais je bloque pour le Y

      la map est 84805126 = -3 -16

      Il me renvoit bien -3 en X

      mais 6 en Y why ?

      code

      Cliquez pour révéler Cliquez pour masquer

      #include <MsgBoxConstants.au3>
      $m_x = 0
      X()
      Func X()
      
      
      
                      $m_x = BitAND(84805126 , 0x3FE00); // 9 higher bits
                      $m_x = BitShift($m_x,9)
      
                      if BitAND($m_x, 0x100) == 0x100 Then  ;9th bit is the sign. 1 means its minus
      
                          $m_x = -BitAND( $m_x,0xFF); // just take the 8 first bits and take the opposite number
      
      Return $m_x
                      EndIf
      
      
      EndFunc
      
      
      $m_y = 0
      Y()
      Func Y()
      
      
      
                      $m_y = BitAND(84805126 , 0x01FF); // 9 higher bits
      
                      if BitAND($m_y, 0x100) == 0x100 Then  ;9th bit is the sign. 1 means its minus
      
                          $m_y = -BitAND( $m_y,0xFF); // just take the 8 first bits and take the opposite number
      
      Return $m_y
                      EndIf
      
      EndFunc
      MsgBox($MB_SYSTEMMODAL, "Title", $m_x & "   " & $m_y, 10)

        Akrone

        Hum si tu décide de te lancer dans ce genre de "projets" laisse tombé autoit :)

        Tu veux dire quoi par se genre de projet ? Si tu pense que c pour un bot socket c complètement l'inverse :D

        ... un emu? ( lol )

        wiwileborne

        merci ! du coup grâce a toi j'ai résolut une partie mais je bloque pour le Y

        la map est 84805126 = -3 -16

        Il me renvoit bien -3 en X

        mais 6 en Y why ?

        code

        Cliquez pour révéler Cliquez pour masquer

        #include <MsgBoxConstants.au3>
        $m_x = 0
        X()
        Func X()
        
        
        
                        $m_x = BitAND(84805126 , 0x3FE00); // 9 higher bits
                        $m_x = BitShift($m_x,9)
        
                        if BitAND($m_x, 0x100) == 0x100 Then  ;9th bit is the sign. 1 means its minus
        
                            $m_x = -BitAND( $m_x,0xFF); // just take the 8 first bits and take the opposite number
        
        Return $m_x
                        EndIf
        
        
        EndFunc
        
        
        $m_y = 0
        Y()
        Func Y()
        
        
        
                        $m_y = BitAND(84805126 , 0x01FF); // 9 higher bits
        
                        if BitAND($m_y, 0x100) == 0x100 Then  ;9th bit is the sign. 1 means its minus
        
                            $m_y = -BitAND( $m_y,0xFF); // just take the 8 first bits and take the opposite number
        
        Return $m_y
                        EndIf
        
        EndFunc
        MsgBox($MB_SYSTEMMODAL, "Title", $m_x & "   " & $m_y, 10)

        montre le code originale du y mais bon tu a compris l´idée je pense que tu peut trouver tout seule

        Nan mais enfin.. Pas complètement l'inverse mais je fait un bot non socket ou mitm ou détection de pixel

        Sa fait 1h je cherche je trouve pas pourtant tout a l'air bon..

        public int Y

        {

        get

        {

        m_y = Id & 0x01FF; // 9 lower bits

        if ((m_y & 0x100) == 0x100) // 9th bit is the sign. 1 means it's minus

        {

        m_y = -(X & 0xFF); // just take the 8 first bits and take the opposite number

        }

        return m_y.Value;

        }

        }