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

8 страниц V « < 3 4 5 6 7 > »   
Ответить в эту темуОткрыть новую тему
> UOpilot и ставки в онлайн браузере
Levo223
сообщение 10.11.2017, 13:19
Сообщение #81


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 10.11.2017, 2:18) *

Зачем тогда вообще ждать окна? Ставка максимальная значит остановка скрипта. Т. е. проверять можно до поиска окон.

Да затем что максимальная ставка не означает проигрыш, а только ставку, которая может окончится проигрышем а может выигрышем, и тогда пойдут ссылки на действия при жёлтом и сером окне соответственно.
Но чтобы не делать ссылку на серое окно и на (проигрыш при желтом) необходимо поставить проверку максимальной ставки в начале действий скрипта при этих окон, чтобы при не заходе их скрипт останавливался, в противном случае(заходе) шел в обычном порядке..

Цитата(cirus @ 10.11.2017, 2:18) *

Разберитесь с if, пока не поймёте скрипт никогда не напишете. Обратите внимание как стоят end_if в примере 2 и 3.
Примеры
Код
// Пример 1
log clear
if  1 = 1
    log +++   // показать в логе если условие истина
end_if
end_script

Код
// Пример 2, проверены будут оба условия
log clear
if  1 = 1
    log +++   // показать в логе если условие истина
end_if
if  2 = 2
    log !!!   // показать в логе если условие истина
end_if
end_script

Код
// Пример 3, проверено будет первое условие, второе только если первое истина
// если первое ложь, то второе не будет проверено
log clear
if  1 = 1
    log +++   // показать в логе если условие истина
    if  2 = 2
        log !!!   // показать в логе если условие истина
    end_if
end_if
end_script

Код
// Пример 4
log clear
if  1 = 1
    log +++   // показать в логе если условие истина
else
    log !!!   // если истина ложь
end_if
end_script

Код
// Пример 5, проверено будет первое условие, второе только если первое ложь
log clear
if  1 = 1
    log +++   // показать в логе если условие истина
else
    if  2 = 2
        log !!!   // показать в логе если условие истина
    end_if
end_if
end_script


Я понял, но почему оно у меня пропускает действия в скрипте даже если условие не истино?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 10.11.2017, 13:42
Сообщение #82


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Цитата
но почему оно у меня пропускает действия в скрипте даже если условие не истино?

Значит что-то неправильно написано.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 11.11.2017, 14:57
Сообщение #83


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 10.11.2017, 13:42) *

Значит что-то неправильно написано.


Ну вот не пойму что не правильного в
Код
if  #count = #x
        log #count = #x
            end_script
        else
        log #count не равен #x
            continue
        end_if

однако она не переходит дальше
команда continue не срабатывает и она пишет в лог
18:53:39 21 (Модиф 21.txt, 28): 1500 не равен 8600
18:53:41 21 (Модиф 21.txt, 28): 1500 не равен 8600
18:53:43 21 (Модиф 21.txt, 28): 1500 не равен 8600
3 раза

Почему 3 раза? И почему не срабатывает? Цикл возвращается назад к поиску окон
Есть какая-то другая команда которая позволяет опустится за данный цикл и продолжить его если условие не истинно? /Break также не подходит

почему у меня теперь когда я закоментировал строку с проверкой на макс ставку
Код

set #count #count + 1     // переменная-счётчик
       // if  #count > size(%num)   // если переменная-счётчик больше, чем размер массива num
          //  break            // break - сначала, end_script остановить скрипт, тут что делать если достигнута максимальная ставка
            // сейчас остановка скрипта, чтобы не было ошибки при выходе за пределы массива
        //end_if
        set #summa %num [#count]   // присваиваиваем переменной значение из массива
        log Текущая ставка #summa
        send #summa  // напечать сумму

печатается 0 вместо следующей суммы?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 11.11.2017, 19:49
Сообщение #84


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



continue относится к циклу for, но не while.
Цитата
#count не равен #x
1500 не равен 8600
set #summa %num [#count] // если #count = 1500, то вы обращаетесь к 1500 элементу массива

В массиве 1500 элементов? Сомневаюсь. Странно что вообще не выбило ошибку.
Цитата
Есть какая-то другая команда которая позволяет опустится за данный цикл и продолжить его если условие не истинно? /Break также не подходит

В кусках кода, который вы выкладываете, циклов нет вообще.
Нет кода, нет нормального описания что должно быть. Тут же не форум гадалок.

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 13.11.2017, 1:18
Сообщение #85


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 11.11.2017, 19:49) *

В кусках кода, который вы выкладываете, циклов нет вообще.


Впринципе пока не критично. Всёравно при макс ставке скрипт в ней намертво виснет) Так что ничего страшного не произойдет)

Теперь передо мной стоит другая задача - как найти при открытом браузере с привязанным к нему пилотом другое окно, взять из него данные и выполнить обратно действия в браузере на основании взятых оттуда данных?
Браузер имеет родительское и дочернее, и окно алерта также имеет родительское и дочернее? Что тут нужно будет делать? Перепривязку? Для поиска слова в дочернем окне алерта. Или же слово найти можно будет в родительском? Там оно есть но не редактируемо, только кликабельно, но не хотелось бы делать его активным для кликов, а сделать это фоном. Какая нужно будет команда (Getwindow/Findwindow) чтобы скрипт не запутался в ходе их смены? И нужна ли будет вобще смена? Вобщем нужно скопировать текст/найти слово в перекрытом окне не делая его активным.

Это древо окна алерта
(IMG:https://image.ibb.co/kSkt8G/image.jpg)
Скрипт должен:
1) Находиться в ожидании появления (Alert)(1)
2) Копировать верхнюю строку (2) или найти в ней Demand/ Supply(опционно)
3) Закрыть окно/или Нажать ОК кнопку(3) ну или тыкать на крестик. Пробовал Sendex @{f4} закрывается только пилот)
4) Исходя из найденой переменной Demand/Supply выполнять какие-то действия в браузере
само окно


Скрипт.. Ну что-то подобное

Код

while 1=1
    set #window Alert = 0
    while 2=2
       findwindow (Alert)
       end_while
      if Alert > 0
      log Alert найден
      //Ищем дочернее окно
     // set #ownerHandle findwindow (Алерт)
//set #tmp getwindow (#ownerHandle child) --
//set #tmp getwindow (#tmp next)
//set #tmp getwindow (#tmp next)
//set #childHandle getwindow (#tmp next)
//set workwindow #childHandle     //сделать рабочим окном
    // надо ли тут привязку делать?
// как скопировать строку AUDUSD M15 Demand Zone Entered at 0.76581? Или можно как-то найти это слово без копирования?
//Далее когда мы его находим, нужно получить что-то вроде
Sendex ^c
get clipboard $var
find word Demand
close "Alert"

//Пошли действия в браузере
if $var > 0
log Demand найден
send F // действия в браузере
else
log Demand не найден
send G // Действия в браузере
End_if
End_while
Вроде бы всё


Как это сделать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 13.11.2017, 2:22
Сообщение #86


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Для начала проверить находится ли изображение в перекрытом окне. Кнопка F в окне пилота, там должно отображаться окно программы Алерт во время работы findimage. Вырезаете нужный текст и ищете.
Код
set #handle findwindow("Алерт")  // ищем окно  Алерт"
while #handle = 0    // пока не найдено
    set #handle findwindow("Алерт")  // ищем окно  Алерт"
    wait 100
end_while
set #a findimage(0 0 500 500 (C:\Demand.bmp) %arr #handle)   // искать картинку в окне Алерт
log #a
end_script

Цитата
Пробовал Sendex @{f4} закрывается только пилот

sendex работает для активного окна. Если нужно закрыть конкретное окно, то сначала надо его вывести его на передний план через showindow.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 13.11.2017, 15:24
Сообщение #87


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 13.11.2017, 2:22) *

Для начала проверить находится ли изображение в перекрытом окне. Кнопка F в окне пилота, там должно отображаться окно программы Алерт во время работы findimage. Вырезаете нужный текст и ищете.
Код
set #handle findwindow("Алерт")  // ищем окно  Алерт"
while #handle = 0    // пока не найдено
    set #handle findwindow("Алерт")  // ищем окно  Алерт"
    wait 100
end_while
set #a findimage(0 0 500 500 (C:\Demand.bmp) %arr #handle)   // искать картинку в окне Алерт
log #a
end_script


sendex работает для активного окна. Если нужно закрыть конкретное окно, то сначала надо его вывести его на передний план через showindow.


Ладно, закрывает. Если найдется способ закрыть его без вывода на передний план это лучше
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 13.11.2017, 15:33
Сообщение #88


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Цитата
Как теперь закрыть его?

Код
terminate Алерт   // закрыть все окна с именем Алерт
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 13.11.2017, 15:43
Сообщение #89


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 13.11.2017, 15:33) *

Код
terminate Алерт   // закрыть все окна с именем Алерт
end_script


МММ Mass Armageddon)))

Вобще-то по этой команде целиком закрывает и терминал, а это делать не надо...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 13.11.2017, 16:57
Сообщение #90


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 13.11.2017, 15:33) *

Код
terminate Алерт   // закрыть все окна с именем Алерт
end_script



что-то не пойму
Вот есть скрипт


set #ownerHandle findwindow (Google Chrome)
set #tmp getwindow (#ownerHandle child)
set #childHandle getwindow (#tmp )
set workwindow #childHandle

end_if
end_while
if #handle > 0
set #a findimage(0 0 500 500 (C:\Supply.bmp) %arr #handle) // искать картинку Supply в окне Алерт
set #b findimage(0 0 500 500 (C:\Demand.bmp) %arr #handle) // искать картинку Demond в окне Алерт
if #a > 0
(IMG:https://image.ibb.co/bsqdtG/Lol_face.png)
end_if
else
return
end_if


Всё разобрался)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 15.11.2017, 13:33
Сообщение #91


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 13.11.2017, 15:33) *

[code]terminate Алерт



Теперь есть другая проблема:

Каким образом сделать счетчик с таймером? Чтобы у меня сканировалось событие, включался таймер и счетчик. А по истечении времени сбрасывался счетчик и таймер.

Т.е. пример.
У меня есть алерт, пилот сканирует его(найдя картинку присваевает ей переменную, количество которой затем будет сбрасываться) Т.е. нашел он первый раз, записывает в память и ждет. Если по истечении 3х минут(в определенном промеж времени) данная картинка появляется снова - идут какие-то действия, если не появляется - счетчик этой картинки сбрасывается. И он снова ищет как первый раз, для того чтобы подождать 3 мин, по по истечении которых ему дается временной промежуток секунд 15. Тут еще проблема в том что он должен искать и другие картинки, и сравнивать их, чтобы он не завис на ожидании одной, а продолжал бегать но таймер со счетчиком бы работал?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 16.11.2017, 2:15
Сообщение #92


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Что-то вроде этого.
код
Код
set #count 0    // флаг что картинка не найдена

while 1 = 1
    // какие-то действия

    gosub find_image   // подпрограмма поиска

    // какие-то действия
end_while

// подпрограмму можно в конец скрипта
:find_image
    if  #count = 0     // если картинка не найдена
        set #a findimage(...)  // ищем картинку
        if  #a > 0        // если найдена
            set #count 1  // флаг что картинка найдена
            set #time timer + 180000  // записываем в переменную текущее время + 3 минуты (60000 = 1мин)
            wait 3000  // ждать 3 секунды, указать нужное время
        end_if
    else  // иначе, т. е. картинка найдена, count = 1
        if  #time > timer   // если не прошло 3 минуты с момента нахождения картинки
            set #a findimage(...)  // ищем картинку
            if  #a > 0        // если найдена
                // тут что делать когда картинка найдена
            end_if
        else    // иначе, т. е. вышло время (3 минуты)
            set #count 0   // ставим флаг что картинка не найдена
            // все действия начнутся с начала
        end_if
    end_if
    // возвращаеися в тело скрипта
return
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 16.11.2017, 17:56
Сообщение #93


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 16.11.2017, 2:15) *

Что-то вроде этого.
код
Код
set #count 0    // флаг что картинка не найдена

while 1 = 1
    // какие-то действия

    gosub find_image   // подпрограмма поиска

    // какие-то действия
end_while

// подпрограмму можно в конец скрипта
:find_image
    if  #count = 0     // если картинка не найдена
        set #a findimage(...)  // ищем картинку
        if  #a > 0        // если найдена
            set #count 1  // флаг что картинка найдена
            set #time timer + 180000  // записываем в переменную текущее время + 3 минуты (60000 = 1мин)
            wait 3000  // ждать 3 секунды, указать нужное время
        end_if
    else  // иначе, т. е. картинка найдена, count = 1
        if  #time > timer   // если не прошло 3 минуты с момента нахождения картинки
            set #a findimage(...)  // ищем картинку
            if  #a > 0        // если найдена
                // тут что делать когда картинка найдена
            end_if
        else    // иначе, т. е. вышло время (3 минуты)
            set #count 0   // ставим флаг что картинка не найдена
            // все действия начнутся с начала
        end_if
    end_if
    // возвращаеися в тело скрипта
return



Может мне нужно было точнее выражаться, мне нужно искать подтверждение сигналу за N времени.
Т.е. у нас появился Петя с ножом, и продавщица про себя решила: если #Петя будет еще тут тереться с ножом возле магазина через 3 минуты когда она вернется из подсобки - то она вызывает полицию. Но если он будет тереться с деньгами! - то это совсем другой расклад и цикл начинается заново... Если его не будет когда она вернется из подсобки и покрутит головой в течении 15 сек - отбой тревоги.

Дано
Есть #Петя
Есть #Вася
У #Пети может быть #нож
А могут быть #деньги
У #Васи тоже может быть #нож
но могут быть и #деньги

Приходит #петя
продавщица смотрит
#нож или #деньги
если #нож - уходит в подсобку на 3 мин
возвращается- 15 секунд ищет #петю с #ножом
если дожидается #петю с #ножом
-вызывает полицию

если #петя с #деньгами это совсем другие действия и новый цикл
уходит в подсобку на 3 минуты за товаром
возвращается если #петя еще с #деньгами
продает ему

в это же время может прийти вася
и его тоже надо проверить на деньги или нож
и тоже запустить свой таймер
Ну вобщем я понял что для каждой переменной и подпеременной нужен свой таймер

Только непонятно зачем
Код

else  // иначе, т. е. картинка найдена, count = 1
        if  #time > timer   // если не прошло 3 минуты с момента нахождения картинки
            set #a findimage(...)  // ищем картинку
            if  #a > 0        // если найдена
                // тут что делать когда картинка найдена
            end_if

если время еще не вышло?

Т.е. у нас что будет:
s
Код

set #петя с #ножом
set #петя с #деньгами
set #вася с #ножом
set #вася с #деньги
if  #петя с ножом
    gosub петя с ножом
else
    if  vasa s nojom
        gosub vasla s nojom  // Или же можно прямо здесь каким-то образом написать вот этот блок с таймером???
    else
        if  peja s dengi
            gosub petja s dengi
        else
            if  vasja s dengi
                gosub vasja s dengi
            end_if
        end_if
    end_if
end_if

:Петя с ножом
    if  #count = 0     // если картинка не найдена
        set #a findimage(Петя с ножом)  // ищем картинку
        if  #a > 0        // если найдена
            set #count 1  // флаг что картинка найдена
            set #time timer + 180000  // записываем в переменную текущее время + 3 минуты (60000 = 1мин)
            wait 3000  // ждать 3 секунды, указать нужное время
        end_if
    else  // иначе, т. е. картинка найдена, count = 1
        if  #time > timer   // если не прошло 3 минуты с момента нахождения картинки
            set #a findimage(Петя с ножом)  // ищем картинку
            if  #a > 0        // если найдена
                // тут что делать когда картинка найдена
            end_if
        else    // иначе, т. е. вышло время (3 минуты)
            set #count 0   // ставим флаг что картинка не найдена
            // все действия начнутся с начала
        end_if
    end_if
    // возвращаемся в тело скрипта
return

:vasa s nojom
    if  #count = 0     // если картинка не найдена
        set #a findimage(vasa s nojom)  // ищем картинку
        if  #a > 0        // если найдена
            set #count 1  // флаг что картинка найдена
            set #time timer + 180000  // записываем в переменную текущее время + 3 минуты (60000 = 1мин)
            wait 3000  // ждать 3 секунды, указать нужное время
        end_if
    else  // иначе, т. е. картинка найдена, count = 1
        if  #time > timer   // если не прошло 3 минуты с момента нахождения картинки
            set #a findimage(vasa s nojom)  // ищем картинку
            if  #a > 0        // если найдена
                // тут что делать когда картинка найдена
            end_if
        else    // иначе, т. е. вышло время (3 минуты)
            set #count 0   // ставим флаг что картинка не найдена
            // все действия начнутся с начала
        end_if
    end_if
    // возвращаемся в тело скрипта
return

: peja s dengi
    if  #count = 0     // если картинка не найдена
        set #a findimage( peja s dengi)  // ищем картинку
        if  #a > 0        // если найдена
            set #count 1  // флаг что картинка найдена
            set #time timer + 180000  // записываем в переменную текущее время + 3 минуты (60000 = 1мин)
            wait 3000  // ждать 3 секунды, указать нужное время
        end_if
    else  // иначе, т. е. картинка найдена, count = 1
        if  #time > timer   // если не прошло 3 минуты с момента нахождения картинки
            set #a findimage( peja s dengi)  // ищем картинку
            if  #a > 0        // если найдена
                // тут что делать когда картинка найдена
            end_if
        else    // иначе, т. е. вышло время (3 минуты)
            set #count 0   // ставим флаг что картинка не найдена
            // все действия начнутся с начала
        end_if
    end_if
    // возвращаемся в тело скрипта
return

: vasja s dengi
    if  #count = 0     // если картинка не найдена
        set #a findimage(vasja s dengi)  // ищем картинку
        if  #a > 0        // если найдена
            set #count 1  // флаг что картинка найдена
            set #time timer + 180000  // записываем в переменную текущее время + 3 минуты (60000 = 1мин)
            wait 3000  // ждать 3 секунды, указать нужное время
        end_if
    else  // иначе, т. е. картинка найдена, count = 1
        if  #time > timer   // если не прошло 3 минуты с момента нахождения картинки
            set #a findimage(vasja s dengi)  // ищем картинку
            if  #a > 0        // если найдена
                // тут что делать когда картинка найдена
            end_if
        else    // иначе, т. е. вышло время (3 минуты)
            set #count 0   // ставим флаг что картинка не найдена
            // все действия начнутся с начала
        end_if
    end_if
    // возвращаемся в тело скрипта
return
???


Че-то мне кажется одно с другим будет путаться. Или я так всё сложно придумал. Вот щас сижу и не могу увязать - зачем мне в 2 цикла писать одно и то же действие по идентификации картинки?

т.е. у меня
Код
if  #петя с ножом
    gosub петя с ножом
else


а почему тогда я прям тут не могу написать
Код
 
set #time timer + 180000  // записываем в переменную текущее время + 3 минуты (60000 = 1мин)
            wait 3000  // ждать 3 секунды, указать нужное время

???


---------
и у меня дальше if #count = 0 // если картинка не найдена
не уходит просто возвращается в начало

нужно так - первый раз нашел картинку - включился таймер - включился счетчик. Он тикает
все разы которые он находит такую же картинку пока таймер не истёк идет команда закрытия алерта
Alert close
как только таймер истёк
Идет временное окно присвоения той же картинке повышенного приоритета важности с последующим выполнением по ней каких-то действий

Нужен какой-то такой вид счетчика
Set #count =0 (Картинка %arr, N time)
-----------

чет я даже в логе не могу желаемый результат получить
нужно что-то такое
if #time > timer
log найдена картинка в первый раз
else
log картинка найдена 2 раз
end_if
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 16.11.2017, 19:38
Сообщение #94


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Вот сейчас такая проблема.
пишу из маленького уголка своего монитора - не занятого пилотом.
Потому что он при проверке форматирования завис(окно стало серым) и где то выдал окно
которое указало там на какую-то ошибку
но не в диспетчере
ни где-то еще это окно не показывает, только писщит что оно есть
и перейти я к нему не могу(ни сдвинуть не свернуть окно) потому что в настройках пилота указано поверх всех окон
написал большой код
и если я просто закрою его в процессах он весь потеряется
Что делать? И как в последующем выводить это окно
"всплывающее табло пилота"(не лог)
на первый план ли вообще идентифицировать?

--------------------------------------

P.S| В этот раз спасся утилитой TurboTop позволяющей лишать топа и выводить окна на передний план
Но в дальнейшем с этим маленьким оконцем нужно что-то делать
(IMG:https://image.ibb.co/choe3R/image.jpg)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.11.2017, 2:38
Сообщение #95


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Цитата
написал большой код
и если я просто закрою его в процессах он весь потеряется

Скрипты сохраняются в папке Scripts, autosaved_номер_вкладки, также в папке Scripts\Backup сохраняются скрипты. В настройках пилота должны стоять соответствующие галки.
Цитата
Но в дальнейшем с этим маленьким оконцем нужно что-то делать

Ищите лишний end.
Цитата
нужно так - первый раз нашел картинку - включился таймер - включился счетчик. Он тикает
все разы которые он находит такую же картинку

код
Код
set #time1 0     // таймер 1
set #count1 0   // счётчик 1

while 1 = 1

    set #a findimage(299, 395 394, 488 (C:\Users\abc\Desktop\1.bmp) %arr)
    if  #a > 0               // если нашли картинку
        if  #count1 = 0      // если счётчик 0
            set #count1 1        // счётчик равен 1
            set #time1 timer + 180000 // установили таймер
        else
            hint #a #count1
            if  #time1 > timer         // если не вышло время
                set #count1 #count1 + 1   // увеличиваем счётчик
                log #count1
                wait 100
            end_if
        end_if
    end_if

end_while


Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 17.11.2017, 4:20
Сообщение #96


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 17.11.2017, 2:38) *

Скрипты сохраняются в папке Scripts, autosaved_номер_вкладки, также в папке Scripts\Backup сохраняются скрипты. В настройках пилота должны стоять соответствующие галки.


Нет, они то сохраняются, но с какой периодичностью. И если я просто вырублю в процессах пилот, думаю, он не успеет сохраниться.

Цитата(cirus @ 17.11.2017, 2:38) *

Ищите лишний end.


End я нашел. это не проблема. Проблема в том что при выдвинутом на передний план пилоте его вплывающие окна такой привилегией не обладают(кроме лога), о чем также нет и пункта в настройках.

Цитата(cirus @ 17.11.2017, 2:38) *

нужно так - первый раз нашел картинку - включился таймер - включился счетчик. Он тикает(ТУТ НУЖНО ПОСТАВИТЬ ЗАПЯТУЮ!!!)))
все разы которые он находит такую же картинку...

соотвтественно всё что написано дальше не так))

б

Код

set #time1 0     // таймер 1
set #count1 0   // счётчик 1

while 1 = 1

    set #a findimage(299, 395 394, 488 (C:\Users\abc\Desktop\1.bmp) %arr)
    if  #a > 0               // если нашли картинку
        if  #count1 = 0      // если счётчик 0
            set #count1 1        // счётчик равен 1
            set #time1 timer + 180000 // установили таймер
        else
            hint #a #count1 // тут я понимаю надо написать hint - Вторичное нахождение?
            if  #time1 > timer         // если не вышло время
                set #count1 #count1 + 1   // увеличиваем счётчик
                log #count1
                wait 100
            end_if
        end_if
    end_if

end_while

Можно разжевать? Какой параметр будет отвечать за первичное нахождение, а какой за вторичное?
Можно ли переименовать #count в например #счетчиквася и он будет продолжать считать?

Мне как очень привычному к вещественному порядку вещей непонятно на каком именно временном промежутке производится запись в первичное нахождение и вторичное? Вот я понимаю буфер обмена, какой-то файл где храниться информация до её обнуления. Но здесь где место где находятся переменные, ну ладно можно вывести logом посмотреть что там есть. Вот тут вроде бы 2 строчки а у меня идёт несостыковка. Почему count 1 при = 0 у нас считается истиной, а %arr - нигде не встречается кроме как в скобке, - у меня голова лопнет от такого вида синтаксиса.

-----------------------------------------------------------

план Б для особо клинического случая

Ладно. Сделаем проще. От начала поиска картинки.
Пускай пилот просто замрёт и ждёт пока пройдёт N минут после прихода сигнала, потом выйдя из анабиоза
прочекает еще раз наличие такой же картинки
в цикле:
допустим
Код

while time 15s
//так написать чтобы он гонял 15 секунд этот цикл?
findimage (картинка)
if картинка  найдена
goto на подпрограмму выполнения действий
end_if
если не найдена, он по истечении этих 15 с идет дальше
end_while


С таймерами пока чет не получается, либо я тупой либо лыжи не едут. Не пойму как он работает, где у него конец и где начало, в коде написано а в голове не укладывается откуда он начинается и где принимается во внимание.



Еще раз.
Ну тут просто у меня начались мозговые судороги

Код

Есть 2 картинки - Левая и правая.
set #L findimage (0 0 500 500 C;/L.Bmp #Alert)
set #R findimage (0 0 500 500 C;/R.Bmp #Alert)
if #L > 0
--Записываем L как мего L т.е. ML
наверно будет так - set L=#ML
это надо будет сделать пока не найдена 3-я картинка L
и где-то тут включаем таймер
set #time1 timer + 180000 // Можно объяснить тупому Барану где именно ведется отсчёт этого эфемерного таймера???? Я не могу визуально не наблюдая его понять когда он есть, а когда его нет.
Ждём
В это время приходит картинка R(но мы её ##ёбываем, потому что сидим здесь и ждём когда же у нас закончится таймер, или не сидим?) Где мы находимся?
Ок. Закончился таймер.
Пошел вторичный цикл поиска картинки L
я так думаю будет сделано.
while time 15s
set #L findimage (0 0 500 500 C;/L.Bmp #Alert) -- А как присвоить ей тут суперстатус #ML? чтобы она покруче была\ во избежании спутывания пилотом с другой картинкой L???
???
if #L > 0
goto Расправа с левой картинкой
else
log Картинка не найдена // только наверно лог будет забит этой строкой, потому что будет гонять её без перерыва на обед, пока не закончится???
end_if
end_while
else // т.е. не найдена L а найдена R - В ПЕРВЫЙ РАЗ!!!!
if R > 0  (Не говоря уже о том что мы @@ёбываем картинку R если она приходит во время ожидания вторичного появления картинки L, но это ладно, это проблема вторична)
log R найдена 1 раз
где-то тут таймер
Ну тут я понял что что-то не то делаю, но увы не пойму что...
goto Расправа с R картинкой


:Расправа с левой картинкой
и тут то уж я с ней расправлюсь!!!

:Расправа с R
Тут я со всеми расправляюсь и выхожу победителем!


Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.11.2017, 11:54
Сообщение #97


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Цитата
Нет, они то сохраняются, но с какой периодичностью.

При каждом запуске скрипта. Откройте папку бекап и найдёте все ваши скрипты, когда-либо запускаемые.
Цитата
соотвтественно всё что написано дальше не так))

Всё так, счётчик можно переименовать. Добавить закрытие аларм тоже не проблема.
Цитата
Можно разжевать? Какой параметр будет отвечать за первичное нахождение, а какой за вторичное?

Изначально счётчик равен 0, поэтому выполняется if #count1 = 0 устанавливаем счётчик в 1 или больше, т. е. не 0. Теперь будет выполняться else.
Код
log clear
log mode compact
set #count1 0   // счётчик, обозначает найдена картинка первый раз или нет

while 1 = 1
    if  #count1 = 0
        log #count1, картинка найдена первый раз
        log Счётчик равен 0, выполняется эта часть блока
        log ++++++
        set #count1 1   // счётчик равен 1, теперь эта часть блока не будет выполняться
    else
        log #count1, картинка найдена НЕ первый раз
        log Счётчик не равен 0, выполняется эта часть блока
        log !!!!!!!!!!!!!!
    end_if
    log
    wait 2000
end_while

Цитата
Почему count 1 при = 0 у нас считается истиной

Потому что #count1 это имя переменной. Напишите #счетчиквася если так понятнее.
Цитата
а %arr - нигде не встречается

В массив записываются координаты найденного изображения. Они нигде не используются, поэтому и нет в коде.
Цитата
С таймерами пока чет не получается

Код
// пример
log clear
log mode compact
set #time 0

while 1 = 1
    hint (20 clRed 500 500 -1 -1 (#time  timer))   // выводим переменную #time и timer
    if #time < timer
       log ++++++         // каждые 2 секунды будет сообщение в логе
       set #time timer + 2000   // увеличиваем таймер на 2 секунды
    end_if
end_while
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 17.11.2017, 12:33
Сообщение #98


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 17.11.2017, 11:54) *


Код
// пример
log clear
log mode compact
set #time 0

while 1 = 1
    hint (20 clRed 500 500 -1 -1 (#time  timer))   // выводим переменную #time и timer
    if #time < timer
       log ++++++         // каждые 2 секунды будет сообщение в логе
       set #time timer + 2000   // увеличиваем таймер на 2 секунды
    end_if
end_while


О слава те господи, увидел таймер!
Так а какой же из этих названий опять же можно переименовать? (напр: #Времяожиданияваси #Времяожиданияпети?)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.11.2017, 12:47
Сообщение #99


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Цитата
Так а какой же из этих названий опять же можно переименовать?

Всё что начинается с #, $, % можно переименовывать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo223
сообщение 17.11.2017, 14:14
Сообщение #100


***

Novice
Сообщений: 61
Регистрация: 8.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.638
Возраст: 23



Цитата(cirus @ 17.11.2017, 12:47) *

Всё что начинается с #, $, % можно переименовывать.

Можно как-то увеличить длительность hint? Или больше 5 с никак? P.S; понял что можно его просто почаще навтыкать и он не исчезнет
Нужно как-то поддерживать статус ожидания чтобы можно было ориентироваться есть ли текущая операция ожидания, или все сигналы ожидаются впервые...

..........
Почему у меня при выводе hint отображается что таймер не истекает а наоборот увеличивается?

Эмм, начал с 10.000
пару кругов и
(IMG:https://image.ibb.co/itHFSm/1.png)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

8 страниц V « < 3 4 5 6 7 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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