UoKit.com Форумы > Кликер > UO Pilot > UO Pilot в онлайн играх > UO Pilot в Lineage II
Страницы: 1, 2, 3, 4
VALHALLA
Здравствуйте,я только вчера узнал за программу и начал разбираться в ней,за основу я взял скрипт для кача
https://forum.uokit.com/index.php?showtopic=21166 и собственно всё работает,но есть пару проблем которые я не могу решить(наброски есть):
1) Скрипт не работает,если игру перекрывает другая программа(любой браузер и т.д.) как это можно решить?
2) Бывает такое что берёт в таргет дальнего моба,хотя есть мобы и ближе ко мне. Можно ли перед тем как атаковать,проверять расстояние до цели по всем макросам и атаковать кто ко мне ближе?желательно пример привести
3) Можно ли исключить из таргета определённого моба по нику,берётся в таргет через /targetnext(опыта с него нет,а затраты на его убийство большие).
Интересует больше всего 1 и 2 вопрос
Код

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

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

// Кнопка с подбором лута.
set $pickup F8

// Сколько выпавших итемов будет подбирать.
// Если упадет меньше, то все равно будет стоять и тыкать.
set #pickup 4

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

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

:start
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 (1000)
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 (1000)
end_while

repeat #pickup // Собираем дроп.
    send $pickup
    wait 200
    wait random (500)
end_repeat

goto start

Вверх
cirus
1. Можно. Запустить код, чтобы узнать смещение координат:
код
Код
// Сделать привязку к окну Ctrl + A
// Указать цвет крайней левой точки полоски хп моба.
set #mobColorHP 1121401
// Указать координаты крайней левой точки полоски хп моба.
set #xMobHP 536
set #yMobHP 49

set #marker 0
for #i 0 20
   for #j 0 40
       set #x #xMobHP + #i
       set #y #yMobHP + #j
       get color #color2 #x #y workwindow
       if #color2 = #mobColorHP
          log Смещение по X = #i   по Y = #j
          set #marker 1
       end_if
   end_for
end_for
if #marker = 0
    log Смещение не найдено
end_if
end_script

В скрипте исправить:
Код
set #xMobHP 536 + 8  // + смещение по X, может быть другим
set #yMobHP 49 + 31 // + смещение по Y, может быть другим

Код
while_not #xMobHP, #yMobHP #mobColorHP workwindow  // дописать workwindow
while #xMobHP, #yMobHP #mobColorHP workwindow  // дописать workwindow

2. Проверить расстояние можно по точке на радаре, а вот как вернуться к тому же мобу это хз.
3. Сделать картинку с именем ненужного моба. После нажатия NextTarget через Findimage искать эту картинку, если найдена, значит выделен ненужный моб, снова жмём NextTarget.
Пример картинки: Нажмите для просмотра прикрепленного файла
Левый верхний пиксель и весь фон нужно закрасить в любой цвет.
Вверх
VALHALLA
хм,вставил твой код как отдельный скрипт,действие прерывается на выделенной части и перескакивает вниз и так заново
// Сделать привязку к окну Ctrl + A
// Указать цвет крайней левой точки полоски хп моба.
set #mobColorHP 1121401
// Указать координаты крайней левой точки полоски хп моба.
set #xMobHP 536
set #yMobHP 49

set #marker 0
for #i 0 20
for #j 0 40
set #x #xMobHP + #i
set #y #yMobHP + #j
get color #color2 #x #y workwindow
if #color2 = #mobColorHP
log Смещение по X = #i по Y = #j
set #marker 1
end_if
end_for
end_for
if #marker = 0
log Смещение не найдено
end_if
end_script
Вверх
VALHALLA
Цитата(cirus @ 23.12.2017, 23:09)

1. Можно. Запустить код, чтобы узнать смещение координат:
код
Код
// Сделать привязку к окну Ctrl + A
// Указать цвет крайней левой точки полоски хп моба.
set #mobColorHP 1121401
// Указать координаты крайней левой точки полоски хп моба.
set #xMobHP 536
set #yMobHP 49

set #marker 0
for #i 0 20
   for #j 0 40
       set #x #xMobHP + #i
       set #y #yMobHP + #j
       get color #color2 #x #y workwindow
       if #color2 = #mobColorHP
          log Смещение по X = #i   по Y = #j
          set #marker 1
       end_if
   end_for
end_for
if #marker = 0
    log Смещение не найдено
end_if
end_script

В скрипте исправить:
Код
set #xMobHP 536 + 8  // + смещение по X, может быть другим
set #yMobHP 49 + 31 // + смещение по Y, может быть другим

Код
while_not #xMobHP, #yMobHP #mobColorHP workwindow  // дописать workwindow
while #xMobHP, #yMobHP #mobColorHP workwindow  // дописать workwindow

2. Проверить расстояние можно по точке на радаре, а вот как вернуться к тому же мобу это хз.
3. Сделать картинку с именем ненужного моба. После нажатия NextTarget через Findimage искать эту картинку, если найдена, значит выделен ненужный моб, снова жмём NextTarget.
Пример картинки: Нажмите для просмотра прикрепленного файла
Левый верхний пиксель и весь фон нужно закрасить в любой цвет.

убрал workwindows и заработало,в логи пришло вот такое
Код
22:05:12 2 (autosaved_2.txt, 14): Смещение по X = 0   по Y = 0
22:05:36 2 (autosaved_2.txt, 14): Смещение по X = 1   по Y = 0

Вверх
cirus
Цитата
хм,вставил твой код как отдельный скрипт,действие прерывается на выделенной части и перескакивает вниз и так заново

Так и должно быть. Отключить слежение за ходом скрипта, задержку между строк 0. Дождаться когда скрипт становится.
Вверх
VALHALLA
Цитата(cirus @ 24.12.2017, 0:29)

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

в общем если оставить как ты написал,ничего не происходит,как только я убираю workwindow сразу же начинается процесс
Код
22:30:54 1 (autosaved_2.txt, 14): Смещение по X = 0   по Y = 0
22:30:56 1 (autosaved_2.txt, 14): Смещение по X = 1   по Y = 0
22:30:57 1 (autosaved_2.txt, 14): Смещение по X = 2   по Y = 0
22:30:58 1 (autosaved_2.txt, 14): Смещение по X = 3   по Y = 0
22:31:00 1 (autosaved_2.txt, 14): Смещение по X = 4   по Y = 0
22:31:01 1 (autosaved_2.txt, 14): Смещение по X = 5   по Y = 0
22:31:03 1 (autosaved_2.txt, 14): Смещение по X = 6   по Y = 0
22:31:04 1 (autosaved_2.txt, 14): Смещение по X = 7   по Y = 0
22:31:06 1 (autosaved_2.txt, 14): Смещение по X = 8   по Y = 0
22:31:07 1 (autosaved_2.txt, 14): Смещение по X = 9   по Y = 0
22:31:09 1 (autosaved_2.txt, 14): Смещение по X = 10   по Y = 0
22:31:10 1 (autosaved_2.txt, 14): Смещение по X = 11   по Y = 0
22:31:12 1 (autosaved_2.txt, 14): Смещение по X = 12   по Y = 0
22:31:13 1 (autosaved_2.txt, 14): Смещение по X = 13   по Y = 0
22:31:14 1 (autosaved_2.txt, 14): Смещение по X = 14   по Y = 0
22:31:16 1 (autosaved_2.txt, 14): Смещение по X = 15   по Y = 0
22:31:17 1 (autosaved_2.txt, 14): Смещение по X = 16   по Y = 0
22:31:19 1 (autosaved_2.txt, 14): Смещение по X = 17   по Y = 0
22:31:20 1 (autosaved_2.txt, 14): Смещение по X = 18   по Y = 0
22:31:22 1 (autosaved_2.txt, 14): Смещение по X = 19   по Y = 0
22:31:23 1 (autosaved_2.txt, 14): Смещение по X = 20   по Y = 0

делать я так понял нужно по последним значениям,в моём случае вышло вот так
set #xMobHP 536 + 20
set #yMobHP 49 + 0
но ничего не поменялось,если поставить workwindow то вообще не работает,указываю окно с помощью ctrl+a
Вверх
cirus
Цитата
ничего не происходит

Так трудно дождаться окончания работы скрипта?
Либо напишет смещение, либо что смещение не найдено.
Не надо трогать workwindow. Убирая его вы делаете бессмысленным скрипт.
Вверх
VALHALLA
Цитата(cirus @ 24.12.2017, 0:51)

Так трудно дождаться окончания работы скрипта?
Либо напишет смещение, либо что смещение не найдено.
Не надо трогать workwindow. Убирая его вы делаете бессмысленным скрипт.

вот что вышло в итоге
22:54:56 1 (autosaved_2.txt, 14): Смещение по X = 20 по Y = 30
переделав уже основной скрипт
Код
set %mob [1] F1
// Кнопки с макросами на таргет мобов.
// При необходимости можно добавлять неограниченное количество.
// Пустые кнопки не оставлять! Если не нужно большое количество
// таргетов - лишние убрать!
set %mob [2] F2
set %mob [3] F3
set %mob [4] F4
set %mob [5] F5

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

// Кнопка с подбором лута.
set $pickup F8

// Сколько выпавших итемов будет подбирать.
// Если упадет меньше, то все равно будет стоять и тыкать.
set #pickup 4

// Цвет крайней левой точки полоски хп моба.
set #mobColorHP 1121401
// Координата крайней левой точки полоски хп моба.
set #xMobHP 536 + 20
set #yMobHP 49 + 30

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

:start
while_not #xMobHP, #yMobHP #mobColorHP workwindow // Пока не увидим хп, ищем моба
    send %mob [#nMob]
    if #nMob < #mobsize
        set #nMob #nMob + 1
    else
        set #nMob 1
    end_if
    wait 500
    wait random (1000)
end_while

set #nMob 1

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

repeat #pickup // Собираем дроп.
    send $pickup
    wait 200
    wait random (500)
end_repeat

goto start

запустив его доходит до перебора макросов и на этом всё заканчивается,что в открытом и также если сверху будет браузер
Вверх
cirus
Цитата
Смещение по X = 20 по Y = 30

Это всё что было в логе? Или это последнее значение? Нужно какое-то из первых. Также смещение можно проверить на какой-то другой точке. На хп, мп персонажа или ещё чём-то.
Если было X = 8, Y = 31, то пробуйте его в основном скрипте.
Вверх
VALHALLA
Цитата(cirus @ 24.12.2017, 1:11)

Это всё что было в логе? Или это последнее значение? Нужно какое-то из первых. Также смещение можно проверить на какой-то другой точке. На хп, мп персонажа или ещё чём-то.
Если было X = 8, Y = 31, то пробуйте его в основном скрипте.

Код
22:54:09 1 (autosaved_2.txt, 14): Смещение по X = 0   по Y = 30
22:54:10 1 (autosaved_2.txt, 14): Смещение по X = 1   по Y = 30
22:54:12 1 (autosaved_2.txt, 14): Смещение по X = 2   по Y = 30
22:54:13 1 (autosaved_2.txt, 14): Смещение по X = 3   по Y = 30
22:54:14 1 (autosaved_2.txt, 14): Смещение по X = 4   по Y = 30
22:54:16 1 (autosaved_2.txt, 14): Смещение по X = 5   по Y = 30
22:54:17 1 (autosaved_2.txt, 14): Смещение по X = 6   по Y = 30
22:54:27 1 (autosaved_2.txt, 14): Смещение по X = 7   по Y = 30
22:54:39 1 (autosaved_2.txt, 14): Смещение по X = 8   по Y = 30
22:54:40 1 (autosaved_2.txt, 14): Смещение по X = 9   по Y = 30
22:54:42 1 (autosaved_2.txt, 14): Смещение по X = 10   по Y = 30
22:54:43 1 (autosaved_2.txt, 14): Смещение по X = 11   по Y = 30
22:54:44 1 (autosaved_2.txt, 14): Смещение по X = 12   по Y = 30
22:54:46 1 (autosaved_2.txt, 14): Смещение по X = 13   по Y = 30
22:54:47 1 (autosaved_2.txt, 14): Смещение по X = 14   по Y = 30
22:54:49 1 (autosaved_2.txt, 14): Смещение по X = 15   по Y = 30
22:54:50 1 (autosaved_2.txt, 14): Смещение по X = 16   по Y = 30
22:54:52 1 (autosaved_2.txt, 14): Смещение по X = 17   по Y = 30
22:54:53 1 (autosaved_2.txt, 14): Смещение по X = 18   по Y = 30
22:54:55 1 (autosaved_2.txt, 14): Смещение по X = 19   по Y = 30
22:54:56 1 (autosaved_2.txt, 14): Смещение по X = 20   по Y = 30

вот все логи,какие брать?остальное попробую завтра



Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.