Последние сообщения

Страницы: 1 ... 5 6 [7] 8 9 10
61
Общие вопросы / Re: Где реально применяются потоки?
« Последний ответ от resident Июль 04, 2022, 01:48:14 pm »
Когда несколько кликеров, они молчат. В случае нажатия комбинации клавиш в активное состояние входит один. Но когда будет один с потоками, то я так понимаю, он всегда будет в активном состоянии, что может отразиться на быстродействии ПК. Верно?
Кликер в принципе никогда не молчит если запущен. Скрипт всё равно выполняется в каком-то цикле. Цикл в котором будут проверяться только нажатие клавиш ни на что не повлияет. Главное только не допускать пустых циклов в которых нет хотя бы минимальной задержки.


Как это сделать, если есть к примеру 3 скрипта?

Запуск первого:
ALT + Z

Запуск второго:
ALT + A

Запуск третьего:
ALT + 2

Сделать поток для управления, который проверяет нажатые клавиши

if(iskeydown(#1)=1)
  if($status1=0)
    print("start 1")
  else
    print("stop 1")
  end_if
  $status1=$status1^1
  wait(5) // задержка чтоб отпустить кнопку до следующего переключения
end_if

if(iskeydown(#2)=1)
  if($status2=0)
    print("start 2")
  else
    print("stop 2")
  end_if
  $status2=$status2^1
  wait(5) // задержка чтоб отпустить кнопку до следующего переключения
end_if
62
Ошибки / httpget перестает работать
« Последний ответ от resident Июль 04, 2022, 01:30:18 pm »
При помощи httpget отправляю статистику на сервер. После кратковременных отключений интернета запросы перестают отправляться, кликер продолжает нормально работать. Приходится перезапускать кликер.
63
Общие вопросы / Re: Где реально применяются потоки?
« Последний ответ от SimplY Июль 04, 2022, 01:02:50 pm »
Верно?
Не верно, любая запущенная программа в какой-то степени влияет на работу ПК.
 Как вообще кликер может гореть, на ещё зелёным?
Так
64
Общие вопросы / Re: Где реально применяются потоки?
« Последний ответ от Иван_Васильевич Июль 04, 2022, 12:50:59 pm »
Верно?
Не верно, любая запущенная программа в какой-то степени влияет на работу ПК.
 Как вообще кликер может гореть, на ещё зелёным?
65
Общие вопросы / Re: Где реально применяются потоки?
« Последний ответ от SimplY Июль 04, 2022, 10:16:52 am »
Когда несколько кликеров, они молчат. В случае нажатия комбинации клавиш в активное состояние входит один. Но когда будет один с потоками, то я так понимаю, он всегда будет в активном состоянии, что может отразиться на быстродействии ПК. Верно?
Кликер в принципе никогда не молчит если запущен. Скрипт всё равно выполняется в каком-то цикле. Цикл в котором будут проверяться только нажатие клавиш ни на что не повлияет. Главное только не допускать пустых циклов в которых нет хотя бы минимальной задержки.
То есть если кликер будет гореть зеленым, это не повлияет на работу ПК. Верно?
66
Общие вопросы / Re: Где реально применяются потоки?
« Последний ответ от SimplY Июль 04, 2022, 10:15:43 am »
Когда несколько кликеров, они молчат. В случае нажатия комбинации клавиш в активное состояние входит один. Но когда будет один с потоками, то я так понимаю, он всегда будет в активном состоянии, что может отразиться на быстродействии ПК. Верно?
Кликер в принципе никогда не молчит если запущен. Скрипт всё равно выполняется в каком-то цикле. Цикл в котором будут проверяться только нажатие клавиш ни на что не повлияет. Главное только не допускать пустых циклов в которых нет хотя бы минимальной задержки.

Как это сделать, если есть к примеру 3 скрипта?

Запуск первого:
ALT + Z

Запуск второго:
ALT + A

Запуск третьего:
ALT + 2
67
Общие вопросы / Re: Где реально применяются потоки?
« Последний ответ от Иван_Васильевич Июль 04, 2022, 09:48:40 am »
но открывать каждый день по 5-8 кликеров из разных папок геморно.
Как это реализовать?
Перефразируя классика; " Гемор не в клозетах - гемор, в другом месте."
Что мешает запускать-закрывать, всё нужное одним запускающим-закрывающим скриптом и останавливать одним Сочетанием горячих клавиш?
68
Общие вопросы / Re: Где реально применяются потоки?
« Последний ответ от Vint Июль 04, 2022, 09:15:28 am »
Когда несколько кликеров, они молчат. В случае нажатия комбинации клавиш в активное состояние входит один. Но когда будет один с потоками, то я так понимаю, он всегда будет в активном состоянии, что может отразиться на быстродействии ПК. Верно?
Кликер в принципе никогда не молчит если запущен. Скрипт всё равно выполняется в каком-то цикле. Цикл в котором будут проверяться только нажатие клавиш ни на что не повлияет. Главное только не допускать пустых циклов в которых нет хотя бы минимальной задержки.
69
Общие вопросы / Re: Где реально применяются потоки?
« Последний ответ от SimplY Июль 04, 2022, 05:41:12 am »
Как потоки помогают вам в кликере? Есть реальные примеры, где потоки реально принесли пользу? В чем они помогли?
Если пока не понял, то тебе пока это не нужно. Как появится проблема которую решат потоки, так сразу и узнаешь. Ты узнаешь её из тысячи...
В группе ВК есть товарищи, которые пихают потоки везде, надо это или не надо. Нам с ними не по пути.

Часть примеров есть в справке и в той статье. Если обобщить и оставить только суть, то основных причин применять потоки две:
1. Нам нужно одновременное выполнение двух веток скрипта.
2. Нам нужно иметь возможность прерывать выполнение ветки кода в любом месте, с (или без) последующего перезапуска этого кода.
Чаще, но не всегда, эти причины ходят вместе.

Под "1" подходит пример с клавишами - из статьи. Где нужно нажимать кнопки клавиатуры каждую со своей периодичностью, а ля применение бафов/ударов со временем отката.
Можно сделать на паузах если они маленькие и не критично не точное выполнение периодов, ну будет чуть дольше, чем нужно. Если паузы большие, они будут мешать друг другу сильнее и может стать неприемлим такой подход. Здесь два варианта решения: на таймерах или на потоках. На потоках понятно как это будет выглядеть, плюс код будет меньше и менее сложный. На таймерах, каждому нажатию зададим свой таймер и все эти действия проверяем последовательно в цикле. Чей таймер вышел - то действие и выполняется. Точность меньше, чем на потоках из-за времени проверок и времени срабатываний вышедших таймеров.
Всё хорошо, если у нас действия простые, типа этих нажатий кнопок, а если более продолжительные? Допустим мы в цикле программы ожидаем какие-то признаки и в зависимости от признака выполняем довольно большой кусок кода. Но даже если один из признаков сработал и мы начали выполнять, нам требуется продолжать следить за другими признаками.
Пример -  рыбалка на 2+ снасти. Нужно следить за разными поплавками - это можно делать и последовательно, даже именно лучше последовательно, но при клёве нужно выполнят действия по вылову. Вот действия лучше запускать в отдельном потоке. При этом может начаться клёв на другую снасть и нужно одновременно вылавливать и другой.
Здесь у нас к первой причине присоединяется и вторая.

Всё это сопровождается возможностью включать/отключать отдельные слежения (ветки кода) не городя кучу условий.

Другой пример: в давние времена, когда деревья были большими, а версия кликера маленькой, писал я скрипт на зомби ферму. Скрипт выполнял по кругу очень продолжительные и сложные действия. В основном всё работало нормально в пределах нескольких часов. Но если дольше, флеш сильно сжирал память уставал и начинал падать. Если сбои по причине интернета или браузера были очень редкими и на них писать код проверки было мало смысла, то с этим сбоем надо было решать. Решаем стандартно, следим за каким нибудь постоянным элементом игры который при падении пропадает или проверяем не появилось ли сообщение о падении (сбоев было несколько и каждый нужно ловить по своему). Написал подпрограмму проверки на сбой и при сбое действия по устранению и GOTO на старт скрипта с начала. Теперь вопрос когда и где вызывать эту подпрограмму проверки. Начал раскидывать её максимально по скрипту, внутри больших и средних по продолжительности циклов с действиями, после основных блоков. Мало. Внутри часто использующихся блоков... Стало легче, но полностью вопрос не решило.
Потому, что в скрипте было много циклов ожидания изменений на экране и с необязательным появлением картинки и с обязательным. С необязательным не так критично, а вот с обязательным нужно было добавлять вызов проверки ещё и внутрь всех этих циклов ожидания. Стало всё не очень хорошо и уж совсем не красиво и неудобно. Я до сих пор не уверен не пропустил ли я потенциальные места для проверки.
К тому же простой перезапуск всего скрипта с самого начала не подходил, он был не с самого начала, а после некоторой части инициализаций. К тому же пришлось перешерстить все переменные и задать им начальные значения не полагаясь на значения по умолчанию, ведь после перехода в начало переменные уже были использованы и там хранилось много разных значений которые нужно было сбросить.
Вот когда в кликере появились потоки эту задачу стало гораздо проще реализовать. И работала она намного надёжнее и перезапускала правильней без выпрыгивания по GOTO из десятка подпрограмм и нескольких вложенных циклов.
Вот такие дела.

Ещё пример на 2 причину: управление кнопками типа горячих клавиш. Разные кнопки запускают/останавливают разные части кода. Даже если не нужно их одновременное выполнение, особенно если не нужно!
И если реализовывать без потоков, просто по условиям запуск можно, то с остановкой проблема. Мы даже если вовремя поймаем нажатие кнопки управления (тоже вопрос как это сделать не раскидывая по скрипту капсулы из условий меняющих флаг или выпригивающих по GOTO), то если менять флаг нам всё равно нужно дождаться окончания действия или подпрыгнуть ближе к этому окончанию. С потоками же мы просто останавливаем или приостанавливаем нужный поток и всё.

Спасибо за очень доходчивый комментарий!

Из всего этого мне реально интересно несколько скриптов в одном, чтобы запускать каждый отдельной комбинацией клавиш.
Сейчас каждый день открываю 3 разных кликера, но в случае СТОП происходят проблемы. Было бы круто, чтобы одна комбинация клавиш гарантированно остановила скрипт. Тем более давно была идея создать больше команд для более мелких задач, но открывать каждый день по 5-8 кликеров из разных папок геморно.

Даже не знаю, как стабильнее, открывать один с помощью потоков или несколько как сейчас? Когда несколько кликеров, они молчат. В случае нажатия комбинации клавиш в активное состояние входит один. Но когда будет один с потоками, то я так понимаю, он всегда будет в активном состоянии, что может отразиться на быстродействии ПК. Верно?

Как это реализовать?
70
Общие вопросы / Re: Где реально применяются потоки?
« Последний ответ от resident Июль 02, 2022, 10:17:17 pm »
Зачем в потоках обновлять графический буфер? Буфер обновляется в основном потоке, запускает потоки на анализ, после анализа потоки останавливаются, ждут обновления буфера. Если поток выполняется долго, то он может пропускать обновления буфера.
На счет последовательно и параллельно утверждать не буду, но то что с потоками работает в разы быстрее - факт.
Страницы: 1 ... 5 6 [7] 8 9 10