Помощь - Поиск - Пользователи - Календарь
Полная версия: Счетчик Цикла
UoKit.com Форумы > Кликер > UO Pilot
vein
Написал простенький скрип со счетчиком, но возникли проблемы.
Код
set #a 0
:hp
if_not 736, 561 5767168
    :start
    set #a #a + 1
        if #a < 3
        sendex  1
        end_if
        if #a > 2 and #a < 5
        sendex  2
        end_if
        if #a > 4 and #a < 7
        sendex  3
        end_if
        if #a > 6 and #a < 9
        sendex  4
        end_if
        if #a > 8
        set #a 0
        goto start
        end_if
    wait 10s
    goto hp
end_if

При срабатывание условия начинается действие, где #a получает знание "1". Затем перескакивает на метку ":hp" далее на строчку с условием и если условие не верно то перескакивает на первую строчку "set #a 0" тем самым присваивая #a опять значение "0". Как этого избежать?
Zeleax
в конце добавь end_script
vein
Цитата(Zeleax @ 22.5.2011, 23:41) *

в конце добавь end_script

Добавил. Теперь если условие не верно скрипт отключается. Это не то что нужно.
Zeleax
Тогда строку goto hp перенеси в самый конец твоего скрипта (после end_if)
vein
Цитата(Zeleax @ 22.5.2011, 23:55) *

Тогда строку goto hp перенеси в самый конец твоего скрипта (после end_if)

Тоже не то. Наверное я плохо описал что нужно. Пока условие не верно пилот считывает первые три строчки. Когда условие верно происходит действие, где #a присваивается значение "1". Далее пилот переходит к метке :hp и если условие не верно, он опять считывает первые три строчки где переменной #a присваивается значение с "1" на "0". А нужно чтоб после первого выполнения условия, где переменной #a присваивается значение "1", пилот переходил к метке :hp затем на строчку с условием if_not и тут ждал, пока условие не станет верным, чтоб начать действие, а не перескакивал на первую строчку set #a 0.
Zeleax
Так что ли?
Код

Код
set #a 0
:hp
if_not 736, 561 5767168
    :start
    set #a #a + 1
    if #a = 1
       goto hp
    end_if
        if #a < 3
        sendex  1
        end_if
        if #a > 2 and #a < 5
        sendex  2
        end_if
        if #a > 4 and #a < 7
        sendex  3
        end_if
        if #a > 6 and #a < 9
        sendex  4
        end_if
        if #a > 8
        set #a 0
        goto start
        end_if
    wait 10s
end_if
goto hp



Или все действия внутри
Код
        if #a < 3
        sendex  1
        end_if
...

должны выполняться если
Код
if 736, 561 5767168

?
Если бы ты объяснил что нужно, а не что куда должно перескакивать - толку было бы больше )
vein
Цитата(Zeleax @ 23.5.2011, 0:17) *

Так что ли?
Код

Код
set #a 0
:hp
if_not 736, 561 5767168
    :start
    set #a #a + 1
    if #a = 1
       goto hp
    end_if
        if #a < 3
        sendex  1
        end_if
        if #a > 2 and #a < 5
        sendex  2
        end_if
        if #a > 4 and #a < 7
        sendex  3
        end_if
        if #a > 6 and #a < 9
        sendex  4
        end_if
        if #a > 8
        set #a 0
        goto start
        end_if
    wait 10s
end_if
goto hp



Или все действия внутри
Код
        if #a < 3
        sendex  1
        end_if
...

должны выполняться если
Код
if 736, 561 5767168

?
Если бы ты объяснил что нужно, а не что куда должно перескакивать - толку было бы больше )

Ага так. Огромное спасибо.
Zeleax
Обращайтесь )
Спок ночи
vein
Цитата(Zeleax @ 23.5.2011, 0:27) *

Обращайтесь )
Спок ночи

И вам.
Kylee Kane
Мне нужно скопировать выделенный текст в файл несколько раз. Т.е. я с помощью скрипта выполняю необходимые действия, текст копируется в массив:

get clipboard $a
set %logs $a

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

save_array %logs с:\resource.txt

Но я не могу сообразить, как в данном случае воспользоваться счетчиком да и вообще возможно ли выполнение моей затеи?
Мое знакомство с UOPilot-ом весьма поверхностно.
Kylee Kane
Всё, вопрос снят. smile.gif

set #a #a + 1
get clipboard $a
set %logs [#a] $a
...
save_array %logs c:\resource.txt
Kylee Kane
Всем привет!
Есть цикл:


Код
set $sc_a findimage (622, 3  1059, 935 (\sc_.bmp) %sc_a 2 99 -1)
set #sc_aa size (%sc_a)

for #sc_i 1 #sc_aa
kleft %sc_a[#sc_i 1] %sc_a[#sc_i 2]  //переходим по ссылке

set $sc_b findcolor (782, 101 1295, 554  10 1 14842168 %sc_b 2)
if $sc_b > 0
kleft %sc_b[1 1] %sc_b[1 2]
end_if
sendex {Backspace} //на предыдущую страницу

end_for
end_script


Пилот нажимает на первое найденное изображение, выполняет дальнейшие действия в цикле и после возврата на страницу нажимает опять на первое найденное изображение и далее - по той же схеме. После этого уже нажимает на второе изображение, третье и т.д. Но в итоге он находит 6 изображений, но переходит только по 5 из них. Не могли бы вы подсказать мне, в чём проблема?
DarkMaster
Цитата
#sc_aa

какое значение содержит в себе? Сделайте:
log #sc_aa

Так же я не вижу никакого ожидания прогрузки. Идет спам кликов вслепую. В качестве теста сделайте первой строкой:
set linedelay 1000
Kylee Kane
Цитата(DarkMaster @ 21.3.2016, 14:02) *

какое значение содержит в себе? Сделайте:
log #sc_aa

Так же я не вижу никакого ожидания прогрузки. Идет спам кликов вслепую. В качестве теста сделайте первой строкой:
set linedelay 1000


Я убрала из кода всё лишнее, поэтому здесь без ожидания. Проблема только в том, что Пилот 2 раза нажимает на первую найденную картинку, всё остальное работает замечательно. Вместо log я использую hint, в маленьком всплывающем окошке Пилот мне и показывает кол-во найденных картинок, которое варьируются от 3 до 6. Поэтому мне нужен цикл.
DarkMaster
на данный момент для более очевиден вариант того, что просто пролетает ожидание загрузки.
Поставьте галочку рядом с кнопкой лога и запустите скрипт. Получившийся лог сюда.
Kylee Kane
Попробовала я сделать лог. В логе вроде бы всё выглядит нормально, на мой взгляд. Но Пилот по-прежнему нажимает 2 раза на первую найденную картинку. Ничего не понимаю. Сделала даже видео: youtube

Код
Код
move 95, 648 abs
set workwindow  windowfromcursor
set $sc_a findimage (811, 5 968, 938  (\gameminer\sc_by.bmp) %sc_a 2 99 10)
set #sc_aa size (%sc_a)
hint #sc_aa
for #sc_i 1 #sc_aa
kleft %sc_a[#sc_i 1] %sc_a[#sc_i 2]

wait 1s
set $kmf5 0
    while $kmf5 = 0
    set $kmf5 findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
    end_while

move 95, 648 abs
set workwindow  windowfromcursor
set $sc_b findcolor (782, 101 1295, 554  10 1 14842168 %sc_b 2)
if $sc_b > 0
kleft %sc_b[1 1] %sc_b[1 2]

wait 1s
set $kmf5 0
    while $kmf5 = 0
    set $kmf5 findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
    end_while

end_if
sendex {Backspace}

wait 1s
set $kmf5 0
    while $kmf5 = 0
    set $kmf5 findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
    end_while

end_for
end_script



Лог
Код
22:53:02 0 (auto.txt, 0): move 95, 648 abs
22:53:02 0 (auto.txt, 1): set workwindow  windowfromcursor
22:53:02 0 (auto.txt, 2): set $sc_a findimage (811, 5 968, 938  (\gameminer\sc_by.bmp) %sc_a 2 99 10)
22:53:02 0 (auto.txt, 2): $sc_a = 4
22:53:02 0 (auto.txt, 3): set #sc_aa size (%sc_a)
22:53:02 0 (auto.txt, 3): #sc_aa = 4
22:53:03 0 (auto.txt, 4): hint #sc_aa(4)
22:53:03 0 (auto.txt, 5): for #sc_i 1 #sc_aa(4)
22:53:03 0 (auto.txt, 6): kleft %sc_a(832)[#sc_i(1) 1] %sc_a(324)[#sc_i(1) 2]
22:53:03 0 (auto.txt, 8): wait 1s
22:53:04 0 (auto.txt, 9): set $kmf5 0
22:53:04 0 (auto.txt, 9): $kmf5 = 0
22:53:04 0 (auto.txt, 10):     while $kmf5(0) = 0
22:53:04 0 (auto.txt, 11):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:04 0 (auto.txt, 11): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:04 0 (auto.txt, 12):     end_while
22:53:05 0 (auto.txt, 10):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:05 0 (auto.txt, 14): move 95, 648 abs
22:53:05 0 (auto.txt, 15): set workwindow  windowfromcursor
22:53:05 0 (auto.txt, 16): set $sc_b findcolor (782, 101 1295, 554  10 1 14842168 %sc_b 2)
22:53:05 0 (auto.txt, 16): $sc_b = 11
22:53:05 0 (auto.txt, 17): if $sc_b(11) > 0
22:53:05 0 (auto.txt, 18): kleft %sc_b(932)[1 1] %sc_b(231)[1 2]
22:53:05 0 (auto.txt, 20): wait 1s
22:53:06 0 (auto.txt, 21): set $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) 0
22:53:06 0 (auto.txt, 21): $kmf5 = 0
22:53:06 0 (auto.txt, 22):     while $kmf5(0) = 0
22:53:07 0 (auto.txt, 23):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:07 0 (auto.txt, 23): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:07 0 (auto.txt, 24):     end_while
22:53:07 0 (auto.txt, 22):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:07 0 (auto.txt, 26): end_if
22:53:07 0 (auto.txt, 27): sendex {Backspace}
22:53:07 0 (auto.txt, 29): wait 1s
22:53:08 0 (auto.txt, 30): set $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) 0
22:53:08 0 (auto.txt, 30): $kmf5 = 0
22:53:08 0 (auto.txt, 31):     while $kmf5(0) = 0
22:53:08 0 (auto.txt, 32):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:08 0 (auto.txt, 32): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:09 0 (auto.txt, 33):     end_while
22:53:09 0 (auto.txt, 31):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:09 0 (auto.txt, 35): end_for
22:53:09 0 (auto.txt, 6): kleft %sc_a(832)[#sc_i(2) 1] %sc_a(446)[#sc_i(2) 2]
22:53:09 0 (auto.txt, 8): wait 1s
22:53:10 0 (auto.txt, 9): set $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) 0
22:53:10 0 (auto.txt, 9): $kmf5 = 0
22:53:10 0 (auto.txt, 10):     while $kmf5(0) = 0
22:53:10 0 (auto.txt, 11):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:10 0 (auto.txt, 11): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:11 0 (auto.txt, 12):     end_while
22:53:11 0 (auto.txt, 10):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:11 0 (auto.txt, 14): move 95, 648 abs
22:53:11 0 (auto.txt, 15): set workwindow  windowfromcursor
22:53:11 0 (auto.txt, 16): set $sc_b(11) findcolor (782, 101 1295, 554  10 1 14842168 %sc_b 2)
22:53:11 0 (auto.txt, 16): $sc_b = 0
22:53:11 0 (auto.txt, 17): if $sc_b(0) > 0
22:53:11 0 (auto.txt, 27): sendex {Backspace}
22:53:11 0 (auto.txt, 29): wait 1s
22:53:12 0 (auto.txt, 30): set $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) 0
22:53:12 0 (auto.txt, 30): $kmf5 = 0
22:53:13 0 (auto.txt, 31):     while $kmf5(0) = 0
22:53:13 0 (auto.txt, 32):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:13 0 (auto.txt, 32): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:13 0 (auto.txt, 33):     end_while
22:53:13 0 (auto.txt, 31):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:13 0 (auto.txt, 35): end_for
22:53:13 0 (auto.txt, 6): kleft %sc_a(832)[#sc_i(3) 1] %sc_a(568)[#sc_i(3) 2]
22:53:13 0 (auto.txt, 8): wait 1s
22:53:14 0 (auto.txt, 9): set $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) 0
22:53:14 0 (auto.txt, 9): $kmf5 = 0
22:53:15 0 (auto.txt, 10):     while $kmf5(0) = 0
22:53:15 0 (auto.txt, 11):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:15 0 (auto.txt, 11): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:15 0 (auto.txt, 12):     end_while
22:53:15 0 (auto.txt, 10):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:15 0 (auto.txt, 14): move 95, 648 abs
22:53:15 0 (auto.txt, 15): set workwindow  windowfromcursor
22:53:15 0 (auto.txt, 16): set $sc_b(0) findcolor (782, 101 1295, 554  10 1 14842168 %sc_b 2)
22:53:15 0 (auto.txt, 16): $sc_b = 11
22:53:15 0 (auto.txt, 17): if $sc_b(11) > 0
22:53:15 0 (auto.txt, 18): kleft %sc_b(932)[1 1] %sc_b(231)[1 2]
22:53:16 0 (auto.txt, 20): wait 1s
22:53:17 0 (auto.txt, 21): set $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) 0
22:53:17 0 (auto.txt, 21): $kmf5 = 0
22:53:17 0 (auto.txt, 22):     while $kmf5(0) = 0
22:53:17 0 (auto.txt, 23):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:17 0 (auto.txt, 23): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:17 0 (auto.txt, 24):     end_while
22:53:17 0 (auto.txt, 22):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:17 0 (auto.txt, 26): end_if
22:53:17 0 (auto.txt, 27): sendex {Backspace}
22:53:17 0 (auto.txt, 29): wait 1s
22:53:19 0 (auto.txt, 30): set $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) 0
22:53:19 0 (auto.txt, 30): $kmf5 = 0
22:53:19 0 (auto.txt, 31):     while $kmf5(0) = 0
22:53:19 0 (auto.txt, 32):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:19 0 (auto.txt, 32): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:19 0 (auto.txt, 33):     end_while
22:53:19 0 (auto.txt, 31):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:19 0 (auto.txt, 35): end_for
22:53:19 0 (auto.txt, 6): kleft %sc_a(832)[#sc_i(4) 1] %sc_a(690)[#sc_i(4) 2]
22:53:19 0 (auto.txt, 8): wait 1s
22:53:20 0 (auto.txt, 9): set $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) 0
22:53:20 0 (auto.txt, 9): $kmf5 = 0
22:53:21 0 (auto.txt, 10):     while $kmf5(0) = 0
22:53:21 0 (auto.txt, 11):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:21 0 (auto.txt, 11): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:21 0 (auto.txt, 12):     end_while
22:53:21 0 (auto.txt, 10):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:21 0 (auto.txt, 14): move 95, 648 abs
22:53:21 0 (auto.txt, 15): set workwindow  windowfromcursor
22:53:21 0 (auto.txt, 16): set $sc_b(11) findcolor (782, 101 1295, 554  10 1 14842168 %sc_b 2)
22:53:21 0 (auto.txt, 16): $sc_b = 12
22:53:21 0 (auto.txt, 17): if $sc_b(12) > 0
22:53:22 0 (auto.txt, 18): kleft %sc_b(932)[1 1] %sc_b(231)[1 2]
22:53:22 0 (auto.txt, 20): wait 1s
22:53:23 0 (auto.txt, 21): set $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) 0
22:53:23 0 (auto.txt, 21): $kmf5 = 0
22:53:23 0 (auto.txt, 22):     while $kmf5(0) = 0
22:53:23 0 (auto.txt, 23):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:23 0 (auto.txt, 23): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:23 0 (auto.txt, 24):     end_while
22:53:23 0 (auto.txt, 22):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:23 0 (auto.txt, 26): end_if
22:53:23 0 (auto.txt, 27): sendex {Backspace}
22:53:24 0 (auto.txt, 29): wait 1s
22:53:25 0 (auto.txt, 30): set $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) 0
22:53:25 0 (auto.txt, 30): $kmf5 = 0
22:53:25 0 (auto.txt, 31):     while $kmf5(0) = 0
22:53:25 0 (auto.txt, 32):     set $kmf5(0) findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:25 0 (auto.txt, 32): $kmf5 = findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)
22:53:25 0 (auto.txt, 33):     end_while
22:53:25 0 (auto.txt, 31):     while $kmf5(findcimage (37, 14 131, 62  (\gameminer\kmf5.bmp) %kmf5 2 abs)) = 0
22:53:25 0 (auto.txt, 35): end_for
22:53:25 0 (auto.txt, 36): end_script
DarkMaster
Ну в координаты он тыкает разные. Тем не менее у вас в 15 строке идет смена рабочего окна. Если оно уничтожается после перехода на предыдущую страницу (такое поведение ранее было типичным для браузеров), то при несуществующем хендле клики будут происходить по абсолютным координатам. Таким образом я предполагаю следующее:
1) Была сделана привязка.
2) Найдены изображения.
3) Клик по относительным координатам.
4) Смена привязки.
5) Переход на предыдущую страницу.
6) Уничтожение хендла к которому сделана привязка.
7) Т.к. хендл уничтожен, то фактический клик происходит по абсолютным координатам, в данному случае выше и чуть-чуть левее.
8) Из-за совпадения смещение координат приводит к попаданию в область первого изображения.
cirus
Цитата
set $kmf5 findcimage (37, 14 131, 62 (\gameminer\kmf5.bmp) %kmf5 2 abs)

Findimage написан с ошибкой
DarkMaster
Цитата
Findimage написан с ошибкой

Это вэйты убивает, но если бы именно в них была проблема, то тыкало бы что попало и были бы пропуски. Посмотри видео. Имхо не сходится с проблемой. Хотя безусловно ошибка smile.gif
cirus
Можно в цикле искать картинку каждый раз и кликать на первую найденную, ведь после того как зашли по ссылке эта картинка уже не найдётся, т. к. она меняется.
код
Код
//ищем сколько всего картинок
set $sc_a findimage (811, 5 968, 938  (\gameminer\sc_by.bmp) %sc_a 2 99 -1)
set #sc_aa size (%sc_a)
hint #sc_aa

for #sc_i 1 #sc_aa
    //ищем первую картинку и клик по ней
    set $sc_a findimage (811, 5 968, 938  (\gameminer\sc_by.bmp) %sc_a 2)
    if $sc_a > 0
        kleft %sc_a[1 1] %sc_a[1 2]
    end_if
    wait 3000

    set $sc_b findcolor (782, 101 1295, 554  10 1 14842168 %sc_b 2)
    if $sc_b > 0
        kleft %sc_b[1 1] %sc_b[1 2]
    end_if
    sendex {Backspace}
    wait 3000
end_for
Kylee Kane
DarkMaster
В качестве эксперимента добавила привязку к окну ещё после нажатия backspace. Мне кажется, это должно было решить проблему, но не решило. Не очень понимаю, что теперь не подходит.

cirus
Спасибо за подсказку! Теперь код работает как надо.
Странно, что Пилот не указал мне на ошибку в findimage. По идее, while должен был длиться бесконечно, если картинка не найдена.
DarkMaster
Цитата
По идее, while должен был длиться бесконечно

там переменной присваивалась строка. если не ошибаюсь, то при указанном сравнении сравнивались хекс коды символов строки и нуля.
Цитата
В качестве эксперимента добавила привязку к окну ещё после нажатия backspace.

Не сразу. Сначала надо было дождаться прогрузки прошлой страницы.
FREEON
Как из size сделать счетчик что бы значение массива соответствовала значению счетчика?

Код
//Генерируем таблицы путеводителей
log clear
log mode compact
load_array %arr C:\wiki.txt
//%arr [#i 1] номер id
//%arr [#i 2] имя рыбы RU
//%arr [#i 3] имя рыбы EN
//%arr [#i 4] температура
//%arr [#i 5] давление
//%arr [#i 6] глубина мин%
//%arr [#i 7] глубина макс%
//%arr [#i 8] мин глубина пруда
//%arr [#i 9] Наживки
//%arr [#i 10] частота клева на наживку
//%arr [#i 11] мин вес на наживку
//%arr [#i 12] макс вес на наживку
//%arr [#i 13] цена
//%arr [#i 14] опыт
//%arr [#i 15] трофей
//%arr [#i 16] ценый трофей
//%arr [#i 17] прикорм
//%arr [#i 18] время 00
//%arr [#i 41] время 23
//%arr [#i 42] тип проводки спининга
//%arr [#i 43] приманки
//%arr [#i 44] частота клева на приманку
//%arr [#i 45] мин вес на приманку
//%arr [#i 46] макс вес на приманку
//for #m 47 112 5  локации и вес
set $r 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,189  //список рыб номер id
set clipboard $r               // записали в буфер обмена значение переменной $r
get clipboard %a               // получили из буфера в массив - каждое слово - отдельный элемент массива
set #s size (%a [1])            // в #s записали число слов

log Рыб size (%a [1])
For #i 1 size(%arr)  //Перебираем список рыб
    for #j 1 #s      //Перебираем список рыб с локации
        if  %a [1 #j] = #i //Если номера совпадает то создаем таблицу
            // присваиваем номер
            log #j
            log %arr[#i 2]
            log %arr [#i 4] температура
            log %arr [#i 5] давление
            set $loc Карасевый пруд
            for #k 47 112 5
                if  %arr [#i #k] = $loc
                    set #html #k + 1 //html ссылка
                    set #glu #k + 2 //макс глубина локации
                    set #chas #k + 3 //частота клева
                    set #ves #k + 4  //макс вес
                    set %glubMin [1 1] (%arr [#i 6] * %arr [#i #glu])/100 //Расчет оптимальной глубины лова
                    set %glubMax [1 2] (%arr [#i 7] * %arr [#i #glu])/100 //Расчет оптимальной глубины лова
                    log %glubMin [1 1] %glubMax [1 2] глубина
                    log %arr [#i #ves] вес
                end_if
            end_for
            set $naz %arr [#i 9])            // записали масив Наживки
            set clipboard $naz               // записали в буфер обмена значение переменной
            get clipboard %naz               // получили из буфера в массив - каждое слово - отдельный элемент массива
            set $cas %arr [#i 10])           // частоста
            set clipboard $cas               // записали в буфер обмена значение переменной
            get clipboard %cas               // получили из буфера в массив - каждое слово - отдельный элемент массива
            set #naz size (%naz [1])         // в #s записали число слов (число слов равно для %arr всегда [#i 9] [#i 10] #[i 11] [#i 12])
            for #g 1 31                      // перебираем все возможные ячейки для таблицы
                for #l 1 size (%naz [1])     // перебираем значения масива

                    if  #g = %naz[1 #l]      // если значение массива соответстует значению счетчика то запишем
                        log наживка: %naz[1 #l] Клев %cas[1 #l]
                        break
else
log ячейка #g ---

                    end_if

                end_for

            end_for
        end_if
    end_for
end_for

End_script
Текущий лог
Код
Рыб 18
1
Карась
20 температура
750 давление
116 291 глубина
2.7кг вес
наживка: 1 Клев 30
наживка: 9 Клев 80
наживка: 10 Клев 80
наживка: 12 Клев 60
наживка: 14 Клев 60
наживка: 15 Клев 100
наживка: 22 Клев 80
наживка: 26 Клев 25
наживка: 28 Клев 50
наживка: 29 Клев 30

А должно выдавать так:
Код
Рыб 18
1
Карась
20 температура
750 давление
116 291 глубина
2.7кг вес
наживка: 1 Клев 30
ячейка: 2 ---
ячейка: 3 ---
ячейка: 4 ---
ячейка: 5 ---
ячейка: 6 ---
ячейка: 7 ---
ячейка: 8 ---
наживка: 9 Клев 80
наживка: 10 Клев 80
ячейка: 11 ---
наживка: 12 Клев 60
ячейка: 13 ---
наживка: 14 Клев 60
наживка: 15 Клев 100
и т.д.

dry.gif
Нажмите для просмотра прикрепленного файла
cirus
Цитата
C:\wiki.txt

И что в файле?
FREEON
Цитата(cirus @ 31.3.2020, 14:37) *

И что в файле?

таблица из exel в обычном txt формате.
Думал место сэкономить не грузив все..но вот держи
Нажмите для просмотра прикрепленного файла
cirus
Так?:
Код
set $s1 1,9,10,12,14,15,22,26,28,29,30
set $s2 30,80,80,60,60,100,80,25,50,30,75
init_arr %a (1) $s1
init_arr %a (2) $s2

log clear
log mode compact

set #j 1
for #i 1 30
    if  %a [1 #j] = #i
        log наживка: %a[1 #j] Клев %a [2 #j]
        set #j #j + 1
    else
        log ячейка: #i ---
    end_if
end_for
end_script
FREEON
Цитата(cirus @ 31.3.2020, 15:46) *

Так?:

ага так заработало. Хотя я пробовал прикрутить счетчик сразу но код отрабатывал не так как нужно, видимо где-то с указатялями напутал был. Спасибо большое! терь буду наполнять содержимым
Код
set $naz %arr [#i 9] // в #s записали число слов Наживки
set clipboard $naz               // записали в буфер обмена значение переменной $r
get clipboard %naz               // получили из буфера в массив - каждое слово - отдельный элемент массива
set $cas %arr [#i 10] // в #s записали число слов Наживки
set clipboard $cas               // записали в буфер обмена значение переменной $r
get clipboard %cas               // получили из буфера в массив - каждое слово - отдельный элемент массива
set #l 1
for #g 1 31
    if  %naz [1 #l] = #g
        log наживка: %naz[1 #l] Клев %cas[1 #l]
        set #l #l + 1
    else
        log ячейка: #g ---
    end_if
end_for
end_script
FREEON
Почему нельзя вывести размер массива при такой записи
Код
set $spis1 152 153 154 155 156 157 158 159 160 161 162 163 164
set $spis2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 189
set $spis3 1 2 3 4 7 8 13 15 17 19 23 24 28 39 168 190
set $spis4 4 7 8 13 14 16 18 23 25 26 27 29 30 31 138
set $spis5 5 6 13 14 15 19 20 21 22 23 26 27 32 33 34 35 36 37 38 168 191
set $spis6 3 4 5 6 8 9 17 18 20 40 53 60 61 63 65 66 69 109 127
set $spis7 1 2 7 8 9 18 23 25 28 30 40 41 42 43 44 192
set $spis8 3 5 6 13 14 17 32 40 45 46 47 48 49 50 51 165 193
set $spis9 2 5 8 15 20 24 26 27 28 29 43 50 51 52 53 54 55 56 57 58 59 170 172 173 190 192 194
set $spis10 5 8 9 28 40 43 48 53 54 55 56 57 165 166 167 169 170 171 172 173 175 195
set $spis11 1 2 8 9 12 13 15 18 41 60 61 62 63 64 65 66 196 //Река Ангара
set $spis12 2 3 9 14 24 25 26 28 29 34 40 43 50 53 170 226 227 228 229 //Река Кубань
set $spis13 5 6 8 12 17 18 60 61 62 63 65 67 68 69 70 71 72 73 74 75 197 //Озеро Байкал
set $spis14 1 2 4 8 9 12 14 18 60 61 64 65 66 68 70 106 107 108 109 110 111 112 198 //Река Енисей
set $spis15 8 9 12 18 28 57 60 61 71 109 126 127 128 129 130 131 132 //Река Лена
set $spis16 33 37 38 40 45 46 47 49 76 77 78 79 80 81 82 83 84 85 //Мистическое озеро
set $spis17 34 35 37 53 54 55 56 57 86 87 88 89 90 91 92 93 94 95 96 99 174 199 227 229 //Черное море
set $spis18 8 9 18 28 68 71 107 108 129 133 134 135 136 137 138 139 //Река Клондайк
set $spis19 77 85 105 212 213 214 215 216 217 218 219 220 221 222 223 224 225 //Озеро чудес
set $spis20 42 49 81 82 83 86 90 97 98 99 100 101 102 103 104 105 200 //Средиземное море
set $spis21 38 102 113 114 115 116 117 118 119 120 121 122 123 124 125 202 //Река Амазонка
set $spis22 8 18 28 50 51 60 61 110 132 135 136 137 190 191 196 203 204 205 206 207 208 209 210 211 //Река Амур
set $spis23 8 140 141 142 143 144 145 146 147 148 149 150 151 201 //Река Нил
set $spis24 90 92 94 98 99 104 105 176 177 178 179 180 181 182 183 184 185 186 187 188 //Индийский океан
init_arr %spis (1) $spis1
init_arr %spis (2) $spis2
init_arr %spis (3) $spis3
init_arr %spis (4) $spis4
init_arr %spis (5) $spis5
init_arr %spis (6) $spis6
init_arr %spis (7) $spis7
init_arr %spis (8) $spis8
init_arr %spis (9) $spis9
init_arr %spis (10) $spis10
init_arr %spis (11) $spis11
init_arr %spis (12) $spis12
init_arr %spis (13) $spis13
init_arr %spis (14) $spis14
init_arr %spis (15) $spis15
init_arr %spis (16) $spis16
init_arr %spis (17) $spis17
init_arr %spis (18) $spis18
init_arr %spis (19) $spis19
init_arr %spis (20) $spis20
init_arr %spis (21) $spis21
init_arr %spis (22) $spis22
init_arr %spis (23) $spis23
init_arr %spis (24) $spis24
log clear
log mode compact
For #i 1 24
log size(%spis[#i])
end_for
end_script
cirus
Цитата
Почему нельзя вывести размер массива при такой записи

Оно и показывает размер массива.
Храните количество элементов каждой строки в отдельном массиве или пишите на луа, с таблицами таких проблем нет.
FREEON
Цитата(cirus @ 4.4.2020, 20:10) *

Оно и показывает размер массива.
Храните количество элементов каждой строки в отдельном массиве или пишите на луа, с таблицами таких проблем нет.

я думал что для каждой строки оно...голову ломал ночами не спал а оно вон как оказываеца sad.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.