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

3 страниц V < 1 2 3 >  
Ответить в эту темуОткрыть новую тему
> Ошибка get scripts
sutra
сообщение 5.3.2019, 2:23
Сообщение #21


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



В стиле Сайруса ... дал именно секунды.
Код
 set timer
while 1 = 1
    set #UserSec mod (div(timer 1000) 60)
    hint (20 clPurple 500 500 -1 -1 (#UserSec))
    wait 1
end_while
end_script


ЕЩЁ РАЗ. div и mod - это основа, со времён царя гороха, многие ходили в детсад, а многие ещё даже не родились, когда были рождены эти операторы.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 5.3.2019, 2:25
Сообщение #22


****

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



все понятно, спасибо, просто я раньше не пользовался mod и div и не знал про них. Хотя кажется в школе проходили припоминаю (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 5.3.2019, 2:32
Сообщение #23


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Родились, когда не то что hint, а и винды (даже версии 3.1) то не было.

В Пилоте - это основа, в lua есть свои, тоже очень похожие, чуть продвинутые (с округлениями и т.п.).

Собственно timestamp внутри себя и использует эти самые div и mod.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 5.3.2019, 11:55
Сообщение #24


****

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



у меня опять ошибка непонятная выскакивает рандомно в разных скриптах "Метка '0' не найдена, проверьте скрипт" .Может весь день работать и ничего а может за час 2 раза выдать ее. Никаких goto 0 там нет, в лог эта ошибка не записывается ни черта не понимаю.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 5.3.2019, 12:13
Сообщение #25


**********

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



Давайте код, тогда можно что-то будет подсказать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 5.3.2019, 12:27
Сообщение #26


****

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



вот два скрипта в которых было такое
Код
set #s4et 0
set timer1 0
set #milli 0
:start
set timer 0
get scripts %a
if (%a[1 3] = stoped) and (%a[3 3] = stoped) and (%a [4 3] = runing)
        while_not 1003, 893 7845095 and 896, 898 7845095
        wait 50
        if timer > 20000
        goto checkscr
        end_if
        end_while
:checkscr
    set timer 0
    if #check.3 = 0
    start_script 0
    end_if
end_if
get scripts %a
if (%a[1 3] = stoped) and (%a[3 3] = runing)
    while timer < 10000
        wait 1s
    end_while
get scripts %a
    if #loot.2 = 0 and (%a[1 3] = stoped)
    start_script 0
    end_if
end_if
if timer1 > 600000
    log проход дольше 10 минут
    stop_script 0
    stop_script 1
    stop_script 2
    stop_script 3
    wait 50
    start_script 0
    set timer1 0
    end_if
if 1003, 893 7845095 and 896, 898 7845095
    set #count #count + 1
    wait 5s
    set #mins div(timer1 60000)
    set #secs mod(div(timer1 1000) 60)

    set #milli #milli + timer1
    set #tmins div(#milli 60000)
    set #tsecs mod(div(#milli 1000) 60)

    set #avesec (#milli / #count)
    set #avemins div(#avesec 60000)
    set #avesecs mod(div(#avesec 1000) 60)

    hint (20 clRed 250 900 -1 -1 (ПРОХОЖДЕНИЙ #count; #mins мин #secs сек; всего #tmins мин #tsecs сек; сред. вр. #avemins мин #avesecs сек))
    log ПРОХОЖДЕНИЙ #count; #mins мин #secs сек; всего #tmins мин #tsecs сек; сред. вр. #avemins мин #avesecs сек
set timer1 0
end_if
goto start


Код
set #rbox 0
set #check 0
set #tupex 0
:start
set #exit findcolor (616, 200  988, 700  1 1 (2651609) %exit 2 3 0)     //2577100 2580433
    if #exit = 3
        set #tupex #tupex + 1
            if #tupex > 10
                move 306, 500
                wait 50
                sendex qq
                wait 500
                set #tupex 0
            end_if
            hint (20 clRed 800 900 -1 -1 (STOP SCRIPTS EXIT))
        stop_script 2
        stop_script 0
        sendex_up e
        kleft_up 960, 520
        kleft_up 960, 520
            move %exit [1 1], %exit [1 2]
            wait 50
            left %exit [1 1], %exit [1 2]
            wait 1300
:town
        set #town findcolor (186, 68 1252, 598 1 1 (12759216) %town 2 2 0)  //поиск названия выхода  14469320
            if #town = 2
                hint (20 clRed 800 900 -1 -1 (STOP SCRIPTS TOWN))
                    stop_script 0
                    stop_script 2
                    set #check 1
                    kleft_up 960, 520
                    wait 1s
                    kleft_up 960, 520
                    wait 100
                    move %town [1 1], %town [1 2]
                    wait 1s
                    left_down %town [1 1], %town [1 2]
                    wait 30
                    left_up %town [1 1], %town [1 2]
                    set timer 0
                        while 80, 983 1840259
                            if timer > 4000
                                goto town
                            end_if
                        wait 200
                        end_while
                            while 1003, 893 7845095 and 896, 898 7845095
                            wait 2s
                            end_while
                        if 739, 477 16711422 and 571, 300 16250871
                        start_script 1
                        stop_script
                        end_if
            end_if
        goto start
    end_if
goto start

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


**********

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



Цитата
if (%a[1 3] = stoped) and (%a[3 3] = stoped) and (%a [4 3] = runing)

Скобки не нужны. Хотя к ошибкам не приведёт.

Попробуйте убрать выход по goto из циклов.
Цитата
while 80, 983 1840259
if timer > 4000
goto town
end_if
wait 200
end_while

Тоже самое:
Код
set #flag 0
while 80, 983 1840259
    if  timer > 4000
        set #flag 1
        break
    end_if
    wait 200
end_while
if #flag = 1
    goto town
end_if

Цитата
while_not 1003, 893 7845095 and 896, 898 7845095
wait 50
if timer > 20000
goto checkscr
end_if
end_while
:checkscr

Тут вообще goto не имеет смысла, заменить на break.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 5.3.2019, 15:27
Сообщение #28


****

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



спасибо, надеюсь поможет, а то эта ошибка что то зачастила в нижнем скрипте.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 5.3.2019, 21:16
Сообщение #29


****

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



короче нефига не помогает, в нижнем скрипте кроме goto start в самом конце ничего не происходит когда выдает ошибку. Еще и ошибка get scripts опять появилась (IMG:style_emoticons/default/smile.gif) Попробую убрать все условия после get scripts оставлю только его, если будет ошибка опять значит ничего не поделаешь
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 5.3.2019, 23:54
Сообщение #30


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(nykep @ 5.3.2019, 21:16) *

короче нефига не помогает, в нижнем скрипте кроме goto start в самом конце ничего не происходит когда выдает ошибку. Еще и ошибка get scripts опять появилась (IMG:style_emoticons/default/smile.gif) Попробую убрать все условия после get scripts оставлю только его, если будет ошибка опять значит ничего не поделаешь


Во-первых, всегда есть что "поделать". Так что всё решаемо.
Дам самый важный совет как поймать 99% ошибок:
Делайте логи.
Чем больше их будет, тем быстрее поймаете.
По ним вы будете вычислять в каком месте ломается, а дальше дело техники.
К примеру, лог перед первым goto, потом перед вторым и т.д.
Когда выпадет ошибка, в логе посмотрите какой последний гото хотел выполниться, и до какого куска кода дело не доехало.

Второй совет:
В настройках поставьте "отображать ход выполнения скрипта", в этом случае, когда скрипт выдаст ошибку - курсор останется на строке, которая выдала ошибку. Тогда узнаете месте более чем точно.

И вопрос:
Цитата
if #check.3 = 0
start_script 0
end_if


Это что такое за точка? связано с луашкой? у меня например падает ошибка на такой переменной с точкой.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 6.3.2019, 0:45
Сообщение #31


****

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



Код
if #check.3 = 0
start_script 0
end_if

это проверка переменной из скрипта номер 3, эта переменная как индикатор у меня если она равна нулю значит ход выполнения в данный момент вне условия, то есть по сути скрипт ничего не делает тока проверяет условие, когда условие выполнится скрипт присвоит ей значение 1 и начнет нажимать всякое, поэтому я так написал чтоб скрипт 0 не запускался если скрипт 3 начал что то делать.

Я пока что убрал goto start совсем он там оказался не сильно нужен (IMG:style_emoticons/default/smile.gif) два часа работало без ошибок. На ночь оставлю посмотрю что будет. Хорошая конечно идея ставить логи как метки хода выполнения, однако как я уже писал в этом скрипте пока не выполняется условие все что происходит это проверка этого условия и goto start 500 раз в секунду:) не думаю что будет хорошо ставить туда пару логов (IMG:style_emoticons/default/smile.gif)
А ход выполнения у меня отображается всегда. В случае этой ошибки он никак не помогает. Условия которые нужны чтоб скрипт дошел до goto exit и goto town могут выполнится только в самом конце карты когда он увидит выход, я думаю там не может быть совпадений в одном IF по 3 точкам и внутри него еще IF по двум точкам. Я видел как ошибка вылетает задолго до того как персонаж достигнет выхода, значит дело в goto start который лишь отправляет в начало чтоб не сбросить переменные, но выполняется он настолько часто что происходит глюк похоже.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 7.3.2019, 17:42
Сообщение #32


****

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



помогите с привязкой скриптов к окну, из за моего дурацкого бота игра стала иногда крашиться. Я нашел команды findwindow и workwindow, написал:

Код
set #a FindWindow (Path of Exile)
if #a = 0
...
end_if

если игра закрывается то он срабатывает и запускает ее заново, дальше надо скрипты 00 01 02 03 04 (все они будут остановлены при вылете) привязать к этому окну, но с этим workwindow я не могу разобраться
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.3.2019, 17:56
Сообщение #33


**********

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



Код
set #a FindWindow (Path of Exile)
set workwindow #a   // сделать окно рабочим
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 7.3.2019, 18:51
Сообщение #34


****

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



Цитата(cirus @ 7.3.2019, 17:56) *

Код
set #a FindWindow (Path of Exile)
set workwindow #a   // сделать окно рабочим
end_script


вы имеете в виду что надо в каждом скрипте это прописать?Я написал только в скрипте который следит за тем вылетела игра или нет. Оно как бы работает, но странно скрипт 00 работает кажется в полтора раза быстрее даже не смотря на то что там действия повторяются по таймеру 2200 но навскидку все происходит быстрее, в скрипте 01 send {Spacebar} не работает и все left и right тоже только если kleft kright. Я так понимаю у меня ничего кроме одного скрипта не привязалось (IMG:style_emoticons/default/smile.gif) Просто у меня скрипты 00 и 03 очень часто перезапускаются и остальные скрипты раз в 4 минуты примерно и я беспокоюсь что если в каждом написать, может переглючить как с get scripts, я постарался свести к минимуму количество get scripts и частоту их использования вроде помогло. Нельзя ли из скрипта который смотрит за вылетом сделать привязку всех остальных?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.3.2019, 19:02
Сообщение #35


**********

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



Код
// Скрипт0
set #a FindWindow (Path of Exile)
set workwindow #a   // сделать окно рабочим
pause_script

То в остальных:
Код
set workwindow #a.0  // сделать рабочим окном

или
Код
set workwindow workwindow.0

Скрипт0 должен работать или быть на паузе чтобы можно было получить переменные из него.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 7.3.2019, 19:16
Сообщение #36


****

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



я плохо объяснил или я опять не понял. У меня скрипт 05 смотрит за вылетом, можно ли как то в нем прописать привязку остальных и при этом не писать в каждом из скриптов set workwindow #a.5. Если нет, тогда ладно я понял буду делать так.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.3.2019, 19:22
Сообщение #37


**********

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



Теоретически можно. Но нет гарантии что будет работать нормально.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 7.3.2019, 19:30
Сообщение #38


****

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



спасибо за ответ
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 7.3.2019, 19:48
Сообщение #39


****

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



случилось примерно то чего я опасался :/ во-первых скрипты так и не привязались вроде бы, а во-вторых скрипт 0 просто завис:), такие зависания скриптов у меня случаются когда один скрипт запускает другой который уже работает и этот работающий скрипт зависает и ничего не делает. Поэтому я использовал часто get scripts и условие чтоб он знал выполнять старт или нет
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 7.3.2019, 19:59
Сообщение #40


****

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



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

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

 

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