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

 
Ответить в эту темуОткрыть новую тему
> Зависает скрипт
nykep
сообщение 1.3.2019, 5:13
Сообщение #1


****

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



у меня работает два взаимосвязанных скрипта, по началу работали без проблем, но потом я очень долго над ними махался и че то начудил с переменными, если вкратце скрипт номер 0 запускает скрипт номер 2 и скрипт номер 2 работает до выполнения первого условия, после этого он просто виснет, индикатор показывает что он не остановлен и не на паузе, а что он активен, но он просто замирает на месте. От чего такое может быть? могу скинуть скрипты но там голову сломаешь.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 1.3.2019, 5:19
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27723
Пользователь №: 11.279



А можно минимально рабочий пример на котором будет воспроизводится проблема? Строчек по 10 ну или сколько там нужно будет.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 1.3.2019, 5:48
Сообщение #3


****

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



черт его знает как это сделать:) бошка уже не варит. Вот два варианта второго скрипта - первоначальный работает
Код

set #timer3 0
set #timer2 0
set #loot 0
:start
    if 1770, 205 867426  and 1813, 209 1463687    //качнуть гем
        kleft_up 960, 520
        wait 50
        move 1856, 208
        wait 100
        left 1856, 208
        wait 100
    end_if
:ex
set #ex findcolor (300, 220 1858, 1050 1 1 (10025624)  %ex 2 -1 1)   //поиск лута #cx1.0, #cy1.0 #cx2.0, #cy2.0
  if #ex > 0
     set #loot 1
     stop_script 0
     sendex_up e
     wait 50
     kleft_up 960, 520
     move %ex [1 1], %ex [1 2]
     wait 50
     left %ex [1 1], %ex [1 2]
     wait 1s
     get mouse_pos #mcx #mcy
        if #mcx = %ex [1 1] and #mcy = %ex [1 2]
            set #timer3 #timer3 + 1
                if #timer3 > 7
                    sendex qq
                    wait 1s
                end_if
        end_if
    goto ex
  else
    if #loot = 1
        set #loot 0
        start_script 0
    end_if
  end_if
  set #timer3 0
  goto start


а вот второй "улучшенный" (IMG:style_emoticons/default/smile.gif)
Код

set #timer3 0
set #timer2 0
set #timer4 0
set #loot 0
:start
    if 1770, 205 867426  and 1813, 209 1463687    //качнуть гем
        kleft_up 960, 520
        wait 50
        move 1856, 208
        wait 100
        left 1856, 208
        wait 100
    end_if
:ex
set #ex findcolor (300, 220 1858, 1050 1 1 (10025624)  %ex 2 -1 1)   //поиск лута #cx1.0, #cy1.0 #cx2.0, #cy2.0
  if #ex > 0
     set #loot 1
     stop_script 0
     sendex_up e
     wait 50
     kleft_up 960, 520
     move %ex [1 1], %ex [1 2]
     wait 50
     left %ex [1 1], %ex [1 2]
     wait 1s
     get mouse_pos #mcx #mcy
        if #mcx = %ex [1 1] and #mcy = %ex [1 2]
            set #timer3 #timer3 + 1
                if #timer3 > 7
                    sendex qq
                    wait 1s
                    goto full
                end_if
        end_if
    goto ex
  else
    if #loot = 1
        set #loot 0
        start_script 0
    end_if
  end_if
  set #timer3 0
  goto start
:full
        set #ex findcolor (300, 220 1858, 1050 1 1 (10025624)  %ex 2 -1 1)   //поиск лута
        set #timer2 #timer2 +1
        set #timer3 0
        if #ex > 0 and #timer2 > 1
                    set #timer4 #timer4 + 1
                    if #timer4 > 1
                        start_script 0
                        stop_script
                    end_if
                while_not 1575, 35 1514279 and 1590, 26 13889010
                    sendex v
                    wait 300
                end_while
                if_not 1815, 633 526344 or 1808, 682 526344 or 1814, 736 526344 or 1809, 788 526344 or 1809, 838 526344
                    while 1575, 35 1514279 and 1590, 26 13889010
                        sendex v
                        wait 100
                    end_while
                        start_script 0
                        stop_script
                else
                    while 1575, 35 1514279 and 1590, 26 13889010
                        sendex v
                        wait 300
                    end_while
                end_if
        end_if
goto start

Когда я этот улучшенный сокращал назад до первоначального сначала удалил все что после метки full вместе с ней, потом в первой половине подтирал лишнее и заметил что этот глюк пропал тогда, когда я удалил goto full(забыл про нее). странно потому что скрипт после первого выполнения не может попасть вовнутрь этого IF к goto full, тем не менее зависает.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 1.3.2019, 6:07
Сообщение #4


****

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



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

if 1770, 205 867426 and 1813, 209 1463687 //качнуть гем
kleft_up 960, 520
wait 50
move 1856, 208
wait 100
left 1856, 208
wait 100
end_if
в котором нет ничего заковыристого
надо комп перезагрузить а то уже сил нет:)
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 1.3.2019, 6:45
Сообщение #5


****

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



нет дело не в этом. зависает когда пытается найти цвет

set #ex findcolor (300, 220 1858, 1050 1 1 (10025624) %ex 2 -1 1)

собственно курсор перед set мигает на месте

несколько суток этот findcolor работал без проблем а теперь не хочет

в логе вот это
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Image capture by handle Failed.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 1.3.2019, 8:22
Сообщение #6


****

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



это может происходить из-за того что второй скрипт запускает первый скрипт, который в самом начале запускает второй?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 2.3.2019, 0:44
Сообщение #7


****

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



есть ли команда которая определяет запущен скрипт или нет?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 2.3.2019, 1:28
Сообщение #8


**********

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



Цитата
есть ли команда которая определяет запущен скрипт или нет?

http://uopilot.tati.pro/index.php?title=Get_scripts
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 2.3.2019, 2:00
Сообщение #9


****

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



Цитата(cirus @ 2.3.2019, 1:28) *

спасибо
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 2.3.2019, 3:26
Сообщение #10


****

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



только я так и не понял, что мне написать в скрипте 1 чтобы распознать запущен скрипт 2 в данный момент или нет
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 2.3.2019, 3:43
Сообщение #11


**********

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



Цитата
что мне написать в скрипте 1 чтобы распознать запущен скрипт 2 в данный момент или нет

Код
get scripts %a
if  %a[3 3] =  runing
    hint (20 clRed 500 500 -1 -1 (Скрипт 2 работает))
else
    hint (20 clblue 500 500 -1 -1 (Скрипт 2 остановлен))
end_if
wait 100
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 2.3.2019, 4:04
Сообщение #12


****

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



спасибо, я невнимательно смотрел
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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