Здравствуйте, гость ( Вход | Регистрация )

> while и repeat
kdv
сообщение 12.3.2023, 21:05
Сообщение #1


**

Neophyte
Сообщений: 24
Регистрация: 23.3.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.927
Возраст: 40



Здравствует.

Делаю скрипт для игры, и возникла проблема
Код

while 1 == 1 do

local path = [["C:\uopilot\pic\pic_target_red.bmp"]]
local arr, a = findimage (761, 3 , 943, 53 , {path}, 2, 80, 1, 5)

  if a > 80   then     --нашли
        wait (1000)
        hw.mouse.left (453, 1018  ,  "abs")   --удар
   else

       --  while a > 80 do
          repeat
            wait (500)
            hw.mouse.left (514, 1020  ,  "abs")       ---подняли
            wait (1000 + math.random (250))
            hw.mouse.left (823, 1020 ,  "abs")          --ищу
            local path = [["C:\uopilot\pic\pic_target_red.bmp"]]
            local arr, a = findimage (761, 3 , 943, 53 , {path}, 2, 80, 1, 5)
          until  a > 80
       --  end

  end

end



Все хорошо проходить с repeat, только при нахождение объекта лишний раз выполняется команда
Код

wait (500)
            hw.mouse.left (514, 1020  ,  "abs")       ---подняли
            wait (1000 + math.random (250))
            hw.mouse.left (823, 1020 ,  "abs")          --ищу
            local path = [["C:\uopilot\pic\pic_target_red.bmp"]]
            local arr, a = findimage (761, 3 , 943, 53 , {path}, 2, 80, 1, 5)


я предполагал поставить while, так как с начало проверяется условие, но у меня в таком случае не работает вообще все
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
nykep
сообщение 13.3.2023, 13:35
Сообщение #2


****

Apprentice
Сообщений: 260
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1777
Пользователь №: 15.246
Возраст: 25



Код

local path = [["C:\uopilot\pic\pic_target_red.bmp"]]
local arr, a = findimage (761, 3 , 943, 53 , {path}, 2, 80, 1, 5)
while findimage (761, 3 , 943, 53 , {path}, 2, 80, 1, 5) do --не выйдет из цикла пока в зоне поиска есть картинка
    wait (1000)
    hw.mouse.left (453, 1018  ,  "abs")   --удар
end

точность поиска стоит 80, значит будет выполнять пока видит картинку попадающую в эту точность
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kdv
сообщение 13.3.2023, 15:31
Сообщение #3


**

Neophyte
Сообщений: 24
Регистрация: 23.3.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.927
Возраст: 40



Цитата(nykep @ 13.3.2023, 13:35) *

Код

local path = [["C:\uopilot\pic\pic_target_red.bmp"]]
local arr, a = findimage (761, 3 , 943, 53 , {path}, 2, 80, 1, 5)
while findimage (761, 3 , 943, 53 , {path}, 2, 80, 1, 5) do --не выйдет из цикла пока в зоне поиска есть картинка
    wait (1000)
    hw.mouse.left (453, 1018  ,  "abs")   --удар
end

точность поиска стоит 80, значит будет выполнять пока видит картинку попадающую в эту точность

а если картинки нету ....по тому , для того я внес эту операцию в else и он будет ее искать пока эта картинка не появится на экране, только когда появляется у меня она еше раз повторно ищет когда использую repeat, а с while не получается
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.6.2025, 11:00
Designed by Nickostyle