2016-12-24 1 views
1

Mon code:Nichée boucle ralentissement pour une raison inconnue (autoit)

Func myFunc() 

    $lag = 1300 
    while (1) 
     MouseMove(870, 189) 
     sleep(10) 
     LC(870, 189) 
     sleep(1200 + $lag) 
     LC(1010,333) 
     sleep(100) 
     RC(826,115) 
     sleep(50) 
     LC(870,212) 
     sleep(50) 
     send("{ESC}") 
     sleep(150) 
     $x = 0 
     $y = 0 

     For $i = 0 To 27 Step 1 
      sleep(11) 
      MouseClick("left", 1158 + $x ,260 + $y) 
      $x+=42 
      if ($x = 168) Then 
       $x = 0 
       $y+=36 
      EndIf 
     Next 

    WEnd 

EndFunc 

Le retard que dans la boucle est le sommeil (11), mais il faut environ 0,5 secondes (500ms) pour chaque itération plutôt que 11ms + peu importe le petit retard. En outre, retirer complètement la partie sleep (11) de la boucle entraîne toujours un retard d'environ 500 ms. Incidemment, tout le monde se demandait, c'est une macro de jeu vidéo; la première partie de la boucle while ouvre une interface et définit quelque chose tandis que la seconde partie (la boucle for) est supposée cliquer très rapidement dans l'inventaire.

Répondre

0

Le curseur de la souris prend du temps à se déplacer. Réglez le paramètre de vitesse sur 0 pour le déplacer instantanément

MouseClick("left", 1158 + $x ,260 + $y,1,0)