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

 
Ответить в эту темуОткрыть новую тему
> Бот л2, Проблема с некст таргетом моба
sllash
сообщение 30.9.2018, 21:35
Сообщение #1


*

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



Добрый день. посдкажите пожалуйста как можно настроить бота так чтоб после убийства моба сразу выбирать следующего а не ждать пока моб пропадет?
Сам скрипт:
log commands
if #starttimer < 1 //если таймер ещё ни разу не запускался, запускаем
set #starttimer 1 //отмечаем, что таймер пошёл
set #timeNextScript timer + 1500000 //устанавливаем 50минут (это 3000сек)
end_if
// Кнопка с макросом /targetnext
set %mob [1] F1
// Кнопки с макросами на таргет мобов.
// При необходимости можно добавлять неограниченное количество.
// Пустые кнопки не оставлять! Если не нужно большое количество
// таргетов - лишние убрать!
set %mob [2] F2


// Кнопки со скилами атаки.
// При необходимости можно добавлять неограниченное количество.
// Пустые кнопки не оставлять! Если не нужно большое количество
// скилов - лишние убрать!
set %attack [1] F3
set %attack [2] F4





// Цвет крайней левой точки полоски хп моба.
set #mobColorHP 1251183
// Координата крайней левой точки полоски хп моба.
set #xMobHP 863
set #yMobHP 28

set #mobsize size (%mob)
set #attacksize size (%attack)
set #nMob 1
set #nAttack 1
//msg #mobsize #attacksize

:start

if #timeNextScript < timer //если таймер вышел
send f6
wait 1000
send f6
wait 10000
send f5
wait 1000
send f1
wait 5000
send f6
wait 10000
start_script 11 // запускаем скрипт 2
end_script //выключаем текущий скрипт.
end_if

while_not #xMobHP, #yMobHP #mobColorHP // Пока не увидим хп, ищем моба
send %mob [#nMob]
if #nMob < #mobsize
set #nMob #nMob + 1
else
set #nMob 1
end_if
// wait 500
// wait random (100)
// get color #c #xMobHP, #yMobHP
// msg ищем #mobColorHP нашли #c
end_while

set #nMob 1

while #xMobHP, #yMobHP #mobColorHP // Пока видим хп - лупим
send %attack [#nAttack]
if #nAttack < #Attacksize
set #nAttack #nAttack + 1
else
set #nAttack 1
end_if
// wait 500
// wait random (10)
end_while




goto start
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 1.10.2018, 15:58
Сообщение #2


***********

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



Цитата
Добрый день. посдкажите пожалуйста как можно настроить бота так чтоб после убийства моба сразу выбирать следующего а не ждать пока моб пропадет?

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


--------------------
Скрипты под заказ.
Консультации по UOpilot через ICQ, Skype, Ventrilo, TeamSpeak, TeamViewer 700р/час.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sllash
сообщение 1.10.2018, 18:31
Сообщение #3


*

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



Цитата(DarkMaster @ 1.10.2018, 15:58) *

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

Точка задана верна, перепроверил. Вот Лог.


Эскизы прикрепленных изображений
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.10.2018, 9:54
Сообщение #4


***********

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



А мобы существуют которые должны взяться в таргет через F1 и F2? Если вы нажмете эти клавиши на клавиатуре, то корректный моб будет взят в таргет?


--------------------
Скрипты под заказ.
Консультации по UOpilot через ICQ, Skype, Ventrilo, TeamSpeak, TeamViewer 700р/час.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sllash
сообщение 2.10.2018, 20:20
Сообщение #5


*

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



Цитата(DarkMaster @ 2.10.2018, 9:54) *

А мобы существуют которые должны взяться в таргет через F1 и F2? Если вы нажмете эти клавиши на клавиатуре, то корректный моб будет взят в таргет?

Да, ф1 некстаргет работает корректно и выбирает ближайших мобов, ф2 таргет моба по названию то же работает корректно, проблема в том что да же когда сбиваешь окно статуса моба при нажатие ф2 все равно выбирает павшего моба. Если ли способ выбора моба по id? или же как то сбрасывать полностью таргет с моба? Хроники ХФ
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.10.2018, 20:23
Сообщение #6


***********

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



Цитата
да же когда сбиваешь окно статуса моба при нажатие ф2 все равно выбирает павшего моба.

Потому что нажимается некст таргет (F1). Судя по предоставленным вами логам так же нажимается и F2, что должно приводить к выбору цели заданной в макросе. Ваш макрос содержит просто таргет или там что-то еще?
Раскоментируйте вот этот блок:
// wait 500
// wait random (100)
// get color #c #xMobHP, #yMobHP
// msg ищем #mobColorHP нашли #c

По id нельзя.


--------------------
Скрипты под заказ.
Консультации по UOpilot через ICQ, Skype, Ventrilo, TeamSpeak, TeamViewer 700р/час.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sllash
сообщение 2.10.2018, 23:24
Сообщение #7


*

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



Цитата(DarkMaster @ 2.10.2018, 20:23) *

Потому что нажимается некст таргет (F1). Судя по предоставленным вами логам так же нажимается и F2, что должно приводить к выбору цели заданной в макросе. Ваш макрос содержит просто таргет или там что-то еще?
Раскоментируйте вот этот блок:
// wait 500
// wait random (100)
// get color #c #xMobHP, #yMobHP
// msg ищем #mobColorHP нашли #c

По id нельзя.

все верно, с начало он нажимает на ф1(ищет ближайшего моба), если не находит то ф2 поиск моба по таргету, у меня мобы стоят далеко друг от друга. Блок тестовый не обращайте внимания. просто не удалил его.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.10.2018, 8:51
Сообщение #8


***********

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



Цитата
Блок тестовый не обращайте внимания. просто не удалил его.

Этот блок может помочь понять, что происходит, в частости wait может изменить поведение л2.
Сейчас основная задача понять как ведет себя л2 при нажатии кнопок таргетов. Из вышеописанного я не вижу проблем со стороны скрипта. Его действия полностью корректны со стороны ожидания реакции клиента и постороения логики. Проблема лежит в несколько иной плоскости. Это либо таргетом не дотягивается, либо таргет по /target name берет ближнего моба (должен дальнего), либо множественные нажатия таргетов приводят к залипанию цели (файтеры поймут), либо в макросах что-то наворочено лишнее, что приводит к проблемам.


--------------------
Скрипты под заказ.
Консультации по UOpilot через ICQ, Skype, Ventrilo, TeamSpeak, TeamViewer 700р/час.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sllash
сообщение 5.10.2018, 17:03
Сообщение #9


*

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



Цитата(DarkMaster @ 3.10.2018, 8:51) *

Этот блок может помочь понять, что происходит, в частости wait может изменить поведение л2.
Сейчас основная задача понять как ведет себя л2 при нажатии кнопок таргетов. Из вышеописанного я не вижу проблем со стороны скрипта. Его действия полностью корректны со стороны ожидания реакции клиента и постороения логики. Проблема лежит в несколько иной плоскости. Это либо таргетом не дотягивается, либо таргет по /target name берет ближнего моба (должен дальнего), либо множественные нажатия таргетов приводят к залипанию цели (файтеры поймут), либо в макросах что-то наворочено лишнее, что приводит к проблемам.

/target name выбирает ближайшего моба)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 5.10.2018, 18:41
Сообщение #10


***********

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



Опыт однако =)


--------------------
Скрипты под заказ.
Консультации по UOpilot через ICQ, Skype, Ventrilo, TeamSpeak, TeamViewer 700р/час.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sllash
сообщение 5.10.2018, 21:43
Сообщение #11


*

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



Цитата(DarkMaster @ 5.10.2018, 18:41) *

Опыт однако =)

А так есть еще алгоритмы поиска либо снятие таргета? Алгоритм через радар не подходит т.к. в локации мини карта не работает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.10.2018, 9:56
Сообщение #12


***********

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



Я слабо себе представляю, что с этим можно сделать. Разве что искать имена мобов на экране и кликать на них. Так же можно попробовать использовать сх/спойлера/кого-то из танков(не помню кто, скорее все шк, но там кд большое) скил которой вытягивает жизнь из трупа и труп исчезает, аналогично со спойлом.


--------------------
Скрипты под заказ.
Консультации по UOpilot через ICQ, Skype, Ventrilo, TeamSpeak, TeamViewer 700р/час.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sllash
сообщение 6.10.2018, 16:54
Сообщение #13


*

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



Цитата(DarkMaster @ 6.10.2018, 9:56) *

Я слабо себе представляю, что с этим можно сделать. Разве что искать имена мобов на экране и кликать на них. Так же можно попробовать использовать сх/спойлера/кого-то из танков(не помню кто, скорее все шк, но там кд большое) скил которой вытягивает жизнь из трупа и труп исчезает, аналогично со спойлом.

Понял, большое спасибо.
Можешь еще кое что подсказать?.
Скрипт сброса таргета,
Время от времени выкидывает ошибку (скриншот)
Ругается как то рандомно. Не могу понять в чем дело.
Сам скрипт:
set %b1 1837, 1038 //открыть меню
set %b2 1714, 749 //кнопка комьюнити
set %b3 657, 285 //кнопка сервис
set %b4 627, 416 //кнопка бафер
set %b5 1168, 448 //кнопка схемы бафа
set %b6 637, 381 //переход в кладку тп
set %b7 1118, 577
set %b8 1137, 499
set %b9 912, 458


// Цвет крайней левой точки полоски хп моба.
set #mobColorHP 1316719
// Координата крайней левой точки полоски хп моба.
set #xMobHP 865
set #yMobHP 28




set #detected 0

:start
if #xMobHP, #yMobHP #mobColorHP// Есть ли полное хп моба.
if #detected = 1 // Велось ли наблюдение за данным мобом уже(таргет не сбрасывался)
if #targetTime < timer // Время на первый удар по мобу вышло?
set #detected 0

move %b2 [1 1]
wait 2000
move %b2 [1 1]
wait 2000
kleft %b2 [1 1]
wait 1000
move %b3 [1 1]
wait 1000
kleft %b3 [1 1]
wait 1000
move %b6 [1 1]
wait 1000
kleft %b6 [1 1] //баффнулись
wait 1000
move %b7 [1 1]
wait 1000
kleft %b7 [1 1]
wait 1000
move %b8 [1 1]
wait 1000
kleft %b8 [1 1]
wait 1000
end_if
else
set #targetTime timer + 30000 // Сколько времени без дамага по мобу скажет о застревании.
set #detected 1
end_if
else // Хп моба не видно
set #detected 0 // Таргет был сброшен либо моба начали бить.
end_if
goto start


Эскизы прикрепленных изображений
Прикрепленное изображение Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.10.2018, 21:51
Сообщение #14


***********

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



Код
set %b1 1837, 1038 //открыть меню
set %b2 1714, 749 //кнопка комьюнити
set %b3 657, 285 //кнопка сервис
set %b4 627, 416 //кнопка бафер
set %b5 1168, 448 //кнопка схемы бафа
set %b6 637, 381 //переход в кладку тп
set %b7 1118, 577
set %b8 1137, 499
set %b9 912, 458

Это что за бред?
Оно записывается, как строка, причем с кучей нарушений синтаксиса, чудеса, что это вообще работает. Зачем тут вообще массив?
Есть сомнения, что эту ошибку выбивает данный скрипт. Чтобы ее выбило должно быть:
goto 0
либо
goto переменная_в_которой_содержится_0
при этом метка:
:0
не должна существовать.


--------------------
Скрипты под заказ.
Консультации по UOpilot через ICQ, Skype, Ventrilo, TeamSpeak, TeamViewer 700р/час.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sllash
сообщение 7.10.2018, 0:58
Сообщение #15


*

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



Цитата(DarkMaster @ 6.10.2018, 21:51) *

Код
set %b1 1837, 1038 //открыть меню
set %b2 1714, 749 //кнопка комьюнити
set %b3 657, 285 //кнопка сервис
set %b4 627, 416 //кнопка бафер
set %b5 1168, 448 //кнопка схемы бафа
set %b6 637, 381 //переход в кладку тп
set %b7 1118, 577
set %b8 1137, 499
set %b9 912, 458

Это что за бред?
Оно записывается, как строка, причем с кучей нарушений синтаксиса, чудеса, что это вообще работает. Зачем тут вообще массив?
Есть сомнения, что эту ошибку выбивает данный скрипт. Чтобы ее выбило должно быть:
goto 0
либо
goto переменная_в_которой_содержится_0
при этом метка:
:0
не должна существовать.


Фишка в том что работает)) но реально временами выдает такую ошибку причем в рандомное время может через час а может через 6 часов я хз....
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.10.2018, 2:18
Сообщение #16


**********

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



Цитата
Фишка в том что работает

Если в стиральную машину положить кирпич, то она тоже будет работать. Вопрос лишь в том сколько времени.
Выбирайте какой вариант больше нравится (делают одно и тоже):
Код
set %b [1 1] 1837
set %b [1 2] 1038
set %b [2 1] 1714
set %b [2 2] 749

log %b [1 1]  %b [1 2]
log %b [2 1]  %b [2 2]
end_script

Код
init_arr %b (1) 1837 1038
init_arr %b (2) 1714 749

log %b [1 1]  %b [1 2]
log %b [2 1]  %b [2 2]
end_script

Код
set %b [1] 1837 | 1038
set %b [2] 1714 | 749

log %b [1 1]  %b [1 2]  
log %b [2 1]  %b [2 2]
log %b [1]   // так тоже можно, но после или перед | обязательно должен быть пробел
end_script
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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