|
|
  |
Lineage2, Interlude |
|
|
| Шмель |
1.4.2011, 11:58
|

Registred
Сообщений: 9
Регистрация: 31.3.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.568

|
Алгоритм ловли рыбки просто замечательный. Если не считать нудного перебора в той части где определяется hp рыбы. Пробывал использовать бинарный поиск - быстрее намного. Но... Столкнулся с общей, думается для всех, проблемой определения цвета (IMG: style_emoticons/default/smile.gif) Если для дневной ловли цвета различаются (цвет hp в диапазоне 10-16кк, оставшейся части 900к -1кк), то для ночной ловли диапазон красной hp рыбы (2кк - 4кк) пересекается с оставшейся частью (900к - 3кк). Таким образом hp, определяется с ошибкой, ну и рыба не ловиться, соответственно. То есть диапазоны цветов (синего например) который мы определяем, может содержать оттенки других цветов. Как правильно определить диапазоны незнаю. UniqueColorsSearch конечно полезная программа, но вопрос в другом. Что делать, если диапазон цвета нужного объекта пересекается с диапазонами цветов соседних объектов? В данном случае мы сканируем полоску цвета hp рыбы, пока цвет не выйдет из нужного нам диапазона. А оставшаяся незаполненной часть hp рыбы имеет цвета из того же диапазона. Кстати из за этого и все ошибки в программе с рыбалкой. Я ставил глубину цвета 4 бита (тогда цвет hp рыбы практически не изменяется ни по длине ни по ширине). Тогда можно пользоваться одним цветом и не заморачиваться с диапазонами. Ошибок с тянуть и подсечь нет совсем!! Часть скрипта MAN-biker а, в которой он использует обратные действия при ошибках - становиться просто ненужной (IMG: style_emoticons/default/smile.gif) Но черно-белая линейка - эт полный кошмар!!!
|
|
|
|
|
|
| Шмель |
1.4.2011, 18:54
|

Registred
Сообщений: 9
Регистрация: 31.3.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.568

|
Ясно. Спасиб за ответ. Все оказывается сложнее, чем я думал. Впрочем и так достаточно неплохо. Просто хотелось бы сделать, чтобы ошибок при ловле совсем небыло. Я отталкивался от поста MAN-biker а #127. Добавил в переменные крайнюю правую точку HP рыбы (для поиска нужен весь интервал) Код set #fish_hp_end 418 // крайняя правая точка полоски рыбалки (x) и кусок кода после метки :poisk до wait #time_izmenenia_hp заменил на следующий бинарный поиск хп
Код //-------------- //Ищем текущее здоровье рыбы, используем нужны скиллы. //-------------- :poisk // используем соску send $fishing_shot
//устанавливаем временные переменные для точек начала и конца полоски HP set #st #fish_hp_start set #ed #fish_hp_end
// расчитываем координаты середины полоски HP set #i #ed - #st set #i #i / 2 set #i #i + #st // цикл :poiskHP // берем цвет HP в точке середины очередного отрезка get color #fish_hp_color #i #fish_hp_line // если этот цвет синий... if #fish_hp_color >= #fish_hp_color_1 and #fish_hp_color <= #fish_hp_color_2 // значит край здоровья рыбы где то правее // сужаем левую границу интервала поиска set #st #i // расчитываем координаты середины нового интервала поиска set #i #ed - #st set #i #i / 2 set #i #i + #st // определяем длину интервала поиска set #r #ed - #st // если этот интервал длинее одного пикселя if #r > 1 // возвращаемся к началу цикла goto poiskHP end_if else //... в противном случае край здоровья рыбы где то левее // сужаем правую границу интервала поиска set #ed #i // расчитываем координаты середины нового интервала поиска set #i #ed - #st set #i #i / 2 set #i #i + #st // определяем длину интервала поиска set #r #ed - #st // если этот интервал длинее одного пикселя if #r > 1 // возвращаемся к началу цикла goto poiskHP end_if end_if
// HP определено, проверяем, что пиксель справа не принадлежит интервалу HP рыбы set #i #i + 1 // берем в точке соседней с границей хп цвет get color #fish_hp_color #i #fish_hp_line // и, если он имеет цвет HP if #fish_hp_color >= #fish_hp_color_1 and #fish_hp_color <= #fish_hp_color_2 // увеличиваем найденное HP еще на один пиксель set #i #i + 1 end_if
Выполняется этот поиск намного быстрее, чем последовательный перебор точек. Но, как я уже написал, нужно, чтобы все точки, в которых определяется цвет, попадали в указанный интервал. Для синего цвета работает безупречно (и очень быстро, даже приоритеты процеса пилота можно не трогать), а вот для красного цвета, для ночной рыбалки, только последовательный перебор годиться. Ошибки определения HP в этом случае компенсируются (частично) использованием обратного скила.
|
|
|
|
|
|
| MAN-biker |
3.4.2011, 2:11
|

 
Neophyte
Сообщений: 37
Регистрация: 19.10.2010 Группа: Пользователи Наличность: 0 Из: Россия, МО, г.Мытищи
Пользователь №: 13.113
Возраст: 37

|
Цитата(DarkMaster @ 2.4.2011, 2:51)  кстати отключи в настройках "отображение хода скрипта" - скорость выполнения существенно возрастет.
О, блин, DarkMaster, гуру ты наш и спаситель! Как бы раньше было знать про эту опцию (ну вот невнимательно по настройкам пробежался, каюсь)... Отключил "отображение хода скрипта", теперь скрипт просто летает!!! Все оптимизации скорости нахождения стали казаться просто ненужными, поиск происходит МОМЕНТАЛЬНО!!! Честно говоря даже стало просто лень разбираться с кусками кода, указанными в распоследнем посте, ибо мой двухпроходный поиск теперь находит точку за считанные миллисекунды, вместо ~1,5 секунд! Цитата(Шмель @ 1.4.2011, 11:58)  Но..Столкнулся с общей, думается для всех, проблемой определения цвета (IMG: style_emoticons/default/smile.gif) Если для дневной ловли цвета различаются (цвет hp в диапазоне 10-16кк, оставшейся части 900к -1кк), то для ночной ловли диапазон красной hp рыбы (2кк - 4кк) пересекается с оставшейся частью (900к - 3кк). Таким образом hp, определяется с ошибкой, ну и рыба не ловиться, соответственно. Почему-то для меня этой проблемы не существует. Просто найди в полоске по ширине место, где цвета равняются примерно этим (красный порядка 1 млн, а синий 16 млн, неплохой разрыв, на мой взгляд): Код //16560896 - BLUE set #fish_hp_blue_1 16000000 // цвет синей полоски НР рыбки (MIN) set #fish_hp_blue_2 16580000// цвет синей полоски НР рыбки (MAX) //1324740 - RED set #fish_hp_red_1 1320000 // цвет КРАСНОЙ полоски НР рыбки (MIN) set #fish_hp_red_2 1325000 // цвет КРАСНОЙ полоски НР рыбки (MAX)
Цитата(Шмель @ 1.4.2011, 11:58)  Кстати из за этого и все ошибки в программе с рыбалкой.
Ошибки этого рода вычислить элементарно, я выше писал как (включив в код пару строчек, чтоб курсор постоянно находился в месте пробы цвета). Но у меня цвет как синей, так и красной линии ВСЕГДА скрипт находит идеально, а проблемы бывают только в "неудачные моменты", когда скрипт нашел конец линии, ждет перед решением какое действие выбрать и в этот момент полоска начинает расти или наоборот, а скрипт уже побежал исполнять уже не актуальное действие. Ну и особенно этому подвержена ночная рыбалка, т.к. тут еще учитывается смена цвета в этот "неподходящий момент". В остальном, двухпроходный скрипт работает изумительно (первый проход ищет с шагом, например, 30 пикселей, откатывается на величину шага, и делает второй "тонкий" проход с шагом 1 или 2, где заведомо число точек для окончательной проверки будет равняться примерно величине шага первого прохода). Цитата(Шмель @ 1.4.2011, 11:58)  Я ставил глубину цвета 4 бита (тогда цвет hp рыбы практически не изменяется ни по длине ни по ширине). Тогда можно пользоваться одним цветом и не заморачиваться с диапазонами. Ошибок с тянуть и подсечь нет совсем!!
Интересно, как ты Линягу заставил работать в 4-битном цвете?! Через конфиги? И что, прокатило? И на руоффе работает? Цитата(Шмель @ 1.4.2011, 11:58)  Часть скрипта MAN-biker а, в которой он использует обратные действия при ошибках - становиться просто ненужной (IMG: style_emoticons/default/smile.gif) Это не я использовал в скрипте обратные действия, в моем скрипте этого нет =) Мой работает и без этого замечательно, хотя тот что у меня работает сейчас, уже сильно переработан в мелочах по сравнению с тем, что приведен мной выше. Цитата(Шмель @ 1.4.2011, 11:58)  Но черно-белая линейка - эт полный кошмар!!!
А для бота не пофиг? Запустил рыбалку и все, чего тебе красотами-то наслаждаться?
|
|
|
|
|
|
| Шмель |
3.4.2011, 13:26
|

Registred
Сообщений: 9
Регистрация: 31.3.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.568

|
Цитата кстати отключи в настройках "отображение хода скрипта" - скорость выполнения существенно возрастет. Да, спасиб, у меня это как "само сабой разумеющееся". Цитата Интересно, как ты Линягу заставил работать в 4-битном цвете?! Через конфиги? И что, прокатило? И на руоффе работает? Все достаточно просто... Я так и не смог нигде на форумах найти четкого ответа на вопрос: можно ли со стороны сервера отследить работу UO Pilot а. Рыбалка выгодна на высоких лвлах. И жаль получать баны высокоуровневыми твинками. Поэтому я не запускаю пилот и линейку на одном компьютере. Использую программки удаленного администрирования (тот же Remote Desktop из винды, TeamViewer, RAdmin и т.п.). А в настройках удаленного рабочего стола можно глубину даже в 1 бит поставить - жуткое зрелище, но в использовании стороннего софта уличить невозможно. Впрочем для бота и впрямь - неважно. С красным цветом еще буду разбираться - качество ночного лова меня пока не полностью устраивает. Ряд ошибок связаны с трехсекундным откатом скилов. А в общем то, действительно, достаточно скурпулезно выкусить диапазон и будет "счастье". У меня правда, по этому поводу еще один вопрос возникает. Окончательно сформулирую и отпишу в соответствующей теме. Иначе тут оффтоп будет.
|
|
|
|
|
|
| MAN-biker |
5.4.2011, 1:11
|

 
Neophyte
Сообщений: 37
Регистрация: 19.10.2010 Группа: Пользователи Наличность: 0 Из: Россия, МО, г.Мытищи
Пользователь №: 13.113
Возраст: 37

|
Цитата(Шмель @ 3.4.2011, 13:26)  Все достаточно просто... Я так и не смог нигде на форумах найти четкого ответа на вопрос: можно ли со стороны сервера отследить работу UO Pilot а.
Ну, если только это долбаный троян Frost тупо палит саму UOPilot, но не более того. На пакетном уровне не происходт ровным счетом ничего, вплоть до того, что даже данные не читаются из трафика, так что запалить такого "бота" можно ТОЛЬКО по тупому поведению (например, когда персонаж сдох, но в течение, скажем, часа продолжает слать последовательные комбинации клавиш и при условии того, что на той стороне секут что идет в данный момент от твоего клиента, что может быть только в результате проверки по наводке стукача. И то, если даже проверка будет во время штатной работы пилота, не запалят его, если скрипт работает нормально. Цитата(Шмель @ 3.4.2011, 13:26)  Рыбалка выгодна на высоких лвлах.
Глубокое заблуждение. Ну-ка скажи-ка мне на чем намерен разжиться рыбалкой? Какие самые ходовые и ценные ресурсы с рыбалки, не считая "пруфов", которые я с рыбалки имею только как полезные "отходы производства"? А я скажу, что первый ресурс, один из самых ценных (!!!) как раз добывается из синей рыбки (и даже из нефритовой, хотя и в чуть меньшем кол-ве), а это 7-й уровень рыбалки, получаемый на 19-м уровне персонажа (сейчас на ру-оффе до 20 уровня персонаж качается в течение часа-двух, это если еще в носу поковырять успеть). Следующий клондайк это 14-й уровень рыбалки (40-й уровень персонажа), потом 21-й рыбалки (61 персонажа), ну и наконец, 24-й (70+ уровень перса), но еще раз замечу, что основные бабки уже можно заколачивать без напрягов на 19-20 уровне персонажа. Цитата(Шмель @ 3.4.2011, 13:26)  Использую программки удаленного администрирования (тот же Remote Desktop из винды, TeamViewer, RAdmin и т.п.).
Это паранойя в чистом виде =) А по поводу удаленок... если у тебя компы в локалке, то еще куда ни шло, но если по интернету, то лаги могут все сильно испортить, но все равно, я считаю предосторожности такого плана абсолютно необоснованными и излишними. ЗЫ: а ночная рыбалка в деле "манимейкерства с рыбалки" вообще погоды не делает, за исключением, если у вас есть постоянные клиенты на цветную чешую, либо если она является дефицитным и сильно востребованным товаром на ВАШЕМ сервере. Мне нужна была ночная рыбалка только для того чтобы наловить цветной чешуи и скрафтить себе шапку, но после того как я увидел какие бабки можно заколачивать абсолютно тупой низкоуровневой рыбалкой, я просто сел и за 10кк купил себе шапку (очки ремесленника). Такую сумму я имею в среднем с одного дня торговли тем, что я наловил. Если бы я ловил ресурсы для ее крафта, я бы потратил сумму как минимум в 2 раза больше и времени раз в 20-30 больше.
|
|
|
|
|
|
| Шмель |
7.4.2011, 21:32
|

Registred
Сообщений: 9
Регистрация: 31.3.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.568

|
MAN-biker, Цитата Это паранойя в чистом виде =) Вполне возможно. Извиняюсь за боян, но лучше "перебдеть чем недобдеть". За "синюю рыбку" спасибо, советом воспользовался. Меня вот еще что интересует. Есть мнение, что необходимо после каждых 60 закидываний удочки отходить на расстояние не менее 1000
Этот факт я проверил (логирование оказалось весьма кстати). Через 40-50 минут рыбалки, после 60-70 забросов клевать перестает. В качестве решения добавил кусок кода, в котором чар просто садиться на "попу", если не клюет определенное количество раз. Нужно перебегать ручками. Вариант с вращением туда-сюда ( предложенный тут) не подходит, от этого продолжительность рыбалки не зависит. Ты эту проблему как решил? Ссылки на сторонние ресурсы КАТЕГОРИЧЕСКИ запрещены!
|
|
|
|
|
|
| MAN-biker |
8.4.2011, 17:31
|

 
Neophyte
Сообщений: 37
Регистрация: 19.10.2010 Группа: Пользователи Наличность: 0 Из: Россия, МО, г.Мытищи
Пользователь №: 13.113
Возраст: 37

|
1. Все мои чары залетели на неделю в в предупредительный бан (даже не знаю какой смайлик поставить, смеяться или плакать). Но никак не за пилота, а тупо за многооконку посредством intool, пилот как рыбачил, так и рыбачит до сих пор, хотя за многооконку в бан улетели все остальные персы буквально за пару часов. 2. Цитата(Шмель @ 7.4.2011, 21:32)  Есть мнение, что необходимо после каждых 60 закидываний удочки отходить на расстояние не менее 1000 Этот факт я проверил (логирование оказалось весьма кстати). Через 40-50 минут рыбалки, после 60-70 забросов клевать перестает. В качестве решения добавил кусок кода, в котором чар просто садиться на "попу", если не клюет определенное количество раз. Нужно перебегать ручками. Вариант с вращением туда-сюда ( предложенный тут) не подходит, от этого продолжительность рыбалки не зависит. Ты эту проблему как решил? Проблему я эту не решал, ибо это проблемой как таковой не является. Я с самого начала сделал счетчик забросов и времени и выставлял либо время когда прекращать ловить, либо числ забросов (да, именно около 60-70), хотя это тоже значение плавающее, бывает что с самого начала не хочет ловить, иногда ловит часа полтора, а иногда и через 5 минут перестает. Короче, у меня тоже просто после 60 забросов он брякается на задницу. Я просто перевожу персонажа с одного конца (не края) моста на другой и снова запускаю скрипт. Все известные способы автоматического перевода на другое место не катят (за исключением, если поставить еще 2-х персонажей с разных концов моста и бегать от одного к другому). Короче, за ботом нужно следить, а не бросать его на ночь, тогда нет проблем ни с банами, ни с процессом рыбалки.
|
|
|
|
|
|
| MAN-biker |
8.4.2011, 23:31
|

 
Neophyte
Сообщений: 37
Регистрация: 19.10.2010 Группа: Пользователи Наличность: 0 Из: Россия, МО, г.Мытищи
Пользователь №: 13.113
Возраст: 37

|
Цитата(DarkMaster @ 8.4.2011, 17:55)  А sandboxie на линейку больше не работает? Очень неплохой вариант многооконки без патчей.
Честно говоря ни разу не пробовал, сейчас тупо запускаю через быстрое переключение пользователей на отдельных рабочих столах. Сейчас почитаю про sandboxie, возможно приму на вооружение, спасибо (хотя еще не известно что по этому поводу скажет свежий Фрост, будь этот поганый троян неладен со своими создателями). ... Попробовал sandboxie, с ним не получилось войти в игру по причине того, что автоматически не передается логин\пароль в поля ввода. Может нужно какую-то опцию включить или отключить?
|
|
|
|
|
|
| Шмель |
14.4.2011, 8:54
|

Registred
Сообщений: 9
Регистрация: 31.3.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.568

|
Цитата(DarkMaster @ 8.4.2011, 18:55)  MAN-biker А sandboxie на линейку больше не работает? Очень неплохой вариант многооконки без патчей.
У меня никак не работает. Линейка даже не запускается. Норм проходит запускатр, грузит фрост и после этого линейка падает. Грит, что не плохо было бы перезагрузить компьютер, а если ошибка повторится, то "иди ты в саппорт". С настройками песочницы правда не особо игрался (не запустилось, ну и ладно). Цитата(MAN-biker @ 9.4.2011, 0:31)  ... сейчас тупо запускаю через быстрое переключение пользователей на отдельных рабочих столах.
При таком способе окно линейки должно быть свернуто. Пилот на это риагирует так, будто в окне линейки ничего не меняется. Оно и ясно, при переключении на другого пользователя видео вообще отключается. Линейка, если остается развернутой, с крашем падает (мол нет видео). Я такой методой только торговать умею. Как запускать скрипты, которые мышкой тыкают и цвета определяют? нипонятно о_О Цитата(MAN-biker @ 8.4.2011, 18:31)  Короче, у меня тоже просто после 60 забросов он брякается на задницу. Я просто перевожу персонажа с одного конца (не края) моста на другой и снова запускаю скрипт. Все известные способы автоматического перевода на другое место не катят (за исключением, если поставить еще 2-х персонажей с разных концов моста и бегать от одного к другому).
Короче, за ботом нужно следить, а не бросать его на ночь, тогда нет проблем ни с банами, ни с процессом рыбалки.
Решение проблемы с 60 забросами и окончанием клева нашлось весьма простое. Исключаем возможность чара крутиться. Достаточно, чтобы он лут не подбирал - мобов бить можно. Ставим лицом строго на восток (по игровой карте). Проверяем, что в этом направлении можно закинуть удочку. Запускаем скрипт. И после 60 забросов - релогин (у меня для клика только kleft работает). вот и все. рыбалка 24/7.
|
|
|
|
|
|
|
  |
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0
|
|