Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Amperandus

Pages: [1]
1
Спасибо. Все таки я, крыша слегка едет от работы и еще в промежутках тут пытаюсь ковыряться - вот и получается что то не то.

2
Quote
a ! b - истинно, если a неравно b (поддерживает строки)

что то я не понимаю...

3
тоже не то... пойду юзать поиск, не найду вернусь

4
чтобы не плодить темы

толи лыжи не едут то ли я ****

Code: (clickermann) [Select]
   $hwnd = wndfind("***")
   wndgetinfo($hwnd, $wx1, $wy1, $w, $h)
   if($wx1 ! 0 OR $wy1 ! 0)
   logwrite("pos")
      wndpos($hwnd,0,0)
      wait(5)
   end_if
   logwrite($w,"\",$h)
   if($w ! 1280 OR $h ! 700)
   logwrite($w,"/",$h)
      wndsize($hwnd,1280,700)
      wait(5)
   end_if

Code: [Select]
16:24:36 1280\700
16:24:36 1280/700
16:24:45 1280\700
16:24:45 1280/700
16:24:56 1280\700
16:24:56 1280/700
16:25:06 1280\700
16:25:06 1280/700

Почему if($w ! 1280 OR $h ! 700) выполняется, хотя не должно. ну по моей логике.

5
в общем и целом понятно. спасибо за объяснения, до этого с массивами не приходилось сталкиваться в clickermanne.

6
Да имелось в виду массив целиком, тут слегка в запаре просто.

Quote
Стоит добавить, что массивы, как и переменные хранят свои значения. Поэтому последовательный вызов двух scanpicture (например) без извлечения элементов через arrpop приведет к тому что у вас будет двойная очередь координат. Поэтому если вам для работы необходим «чистый» массив, то не забывайте высвобождать память, путем вызова undefine($var). Тут все как для переменных.

разве переменные не обнуляются при новом цикле?

подпрограмма вызывается ровно один раз.

$partyHpArr - 1 раз инициализируется за цикл.

$partyYArr - тут вот может быть и надо обнулять.

7
Спасибо вот это помогло

UNDEFINE($partyHpArr)

но не понятна природа явления. я читал про то, что переменная в цикле не обнуляется, но вроде бы не тот случай в моем коде. Придется теперь все arrsize проверять :(


8
так и есть. в нормальном цикле было бы <= а тут только <

9
Общие вопросы / Циклы, массивы, обнуления
« on: November 08, 2016, 07:12:38 PM »
Здравствуйте. Есть такой вот кусок кода. Проблема в том что переменная $count не обнуляется. Более того не обнуляется arrsize($partyHpArr). пробовал undefinу, разные названия переменных, хотя в моем понимании все должно работать так, как написано сейчас. Возможно я в чем то ошибаюсь и не вижу этого в упор

Code: (clickermann) [Select]
sub(partyHeal)
   getscreen()
   SCANPXL($partyHpArr,$pHpX1,$wy1,$pHpX2,$wy2,$colPartyHpLive)
   $count = arrsize($partyHpArr)
   if($count > 0)
      $pHpY = 0
      $minX = 1000
      for($i=1,$i < $count)
         if($partyHpArr[$i] ! $phpY)
            SCANPXL($partyYArr,$pHpX1,$partyHpArr[$i],$pHpX2,$partyHpArr[$i],$colPartyHpLive)
            $X = $partyYArr[arrsize($partyYArr) - 2]
            if($minX > $X)
               $minX = $X
               $minY = $partyHpArr[$i]
            end_if
         end_if
         INC($i,2)
      end_cyc
      if($minX ! $pHpX2)
         IF_PICTURE_IN($wx1,$wy1,$wx2,$wy2,"screens/svHeal.bmp")
            logwrite(partyHeal)
            IF_PICTURE_IN($wx1,$wy1,$wx2,$wy2,"screens/svPreHeal.bmp")
               keypress($btnPreHeal)
               waitms($timeSkill)
            end_if
            MOVE($minX,$minY)
            waitms($timeButton)
            lclick($minX,$minY)
            waitms($timeButton)
            keypress($btnHeal)
            waitms($timeSkill)
            $f = 1
         end_if
      end_if
   end_if
end_sub

т.е. logwrite($count) выдает вот такое вот
Code: [Select]
21:15:11 302
21:15:12 604
21:15:12 906
21:15:13 1208
21:15:13 1510
21:15:15 1812
21:15:16 2114
21:15:17 2416

Pages: [1]