- Modifié
C'est l'accessor get qui te pose problème ?
=> https://msdn.microsoft.com/en-us/library/aa287786(v=vs.71).aspx
C'est l'accessor get qui te pose problème ?
=> https://msdn.microsoft.com/en-us/library/aa287786(v=vs.71).aspx
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 :)
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
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
#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)
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 )
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;
}
}