|
Проблемы с кликером на фарм |
|
|
VALHALLA |
23.12.2017, 13:31
|
Neophyte
Сообщений: 18
Регистрация: 22.12.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.754
Возраст: 18
|
Здравствуйте,я только вчера узнал за программу и начал разбираться в ней,за основу я взял скрипт для кача 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 |
23.12.2017, 22:09
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26702
Пользователь №: 16.971
Возраст: 29
|
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. Пример картинки:
1.bmp ( 2,34 килобайт )
Кол-во скачиваний: 432Левый верхний пиксель и весь фон нужно закрасить в любой цвет.
|
|
|
|
VALHALLA |
23.12.2017, 23:09
|
Neophyte
Сообщений: 18
Регистрация: 22.12.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.754
Возраст: 18
|
Цитата(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. Пример картинки:
1.bmp ( 2,34 килобайт )
Кол-во скачиваний: 432Левый верхний пиксель и весь фон нужно закрасить в любой цвет. убрал 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
|
|
|
|
VALHALLA |
23.12.2017, 23:40
|
Neophyte
Сообщений: 18
Регистрация: 22.12.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.754
Возраст: 18
|
Цитата(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
|
|
|
|
VALHALLA |
24.12.2017, 0:03
|
Neophyte
Сообщений: 18
Регистрация: 22.12.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.754
Возраст: 18
|
Цитата(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 запустив его доходит до перебора макросов и на этом всё заканчивается,что в открытом и также если сверху будет браузер
|
|
|
|
VALHALLA |
24.12.2017, 0:13
|
Neophyte
Сообщений: 18
Регистрация: 22.12.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.754
Возраст: 18
|
Цитата(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 вот все логи,какие брать?остальное попробую завтра
|
|
|
|
VALHALLA |
24.12.2017, 11:04
|
Neophyte
Сообщений: 18
Регистрация: 22.12.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.754
Возраст: 18
|
Цитата(cirus @ 24.12.2017, 1:19) Ну с Y понятно 30. Попробуйте ещё не на полоске хп, на чём-то другом, чтобы с X определиться.
вот первый тест,проверял на полоске мп в своём таргете Код 9:57:36 1 (autosaved_2.txt, 14): Смещение по X = 6 по Y = 31 9:57:57 1 (autosaved_2.txt, 14): Смещение по X = 17 по Y = 31 9:57:58 1 (autosaved_2.txt, 14): Смещение по X = 18 по Y = 31 9:57:59 1 (autosaved_2.txt, 14): Смещение по X = 19 по Y = 31 9:58:00 1 (autosaved_2.txt, 14): Смещение по X = 20 по Y = 31 а вот второй тест,где я проверял мп уже в окошке в левом углу Код 9:59:15 1 (autosaved_2.txt, 14): Смещение по X = 0 по Y = 30 9:59:17 1 (autosaved_2.txt, 14): Смещение по X = 1 по Y = 30 9:59:18 1 (autosaved_2.txt, 14): Смещение по X = 2 по Y = 30 9:59:20 1 (autosaved_2.txt, 14): Смещение по X = 3 по Y = 30 9:59:21 1 (autosaved_2.txt, 14): Смещение по X = 4 по Y = 30 9:59:43 1 (autosaved_2.txt, 14): Смещение по X = 5 по Y = 30 9:59:45 1 (autosaved_2.txt, 14): Смещение по X = 6 по Y = 30 10:00:11 1 (autosaved_2.txt, 14): Смещение по X = 7 по Y = 30 10:00:13 1 (autosaved_2.txt, 14): Смещение по X = 8 по Y = 30 10:00:14 1 (autosaved_2.txt, 14): Смещение по X = 9 по Y = 30 10:00:15 1 (autosaved_2.txt, 14): Смещение по X = 10 по Y = 30 10:00:17 1 (autosaved_2.txt, 14): Смещение по X = 11 по Y = 30 10:00:18 1 (autosaved_2.txt, 14): Смещение по X = 12 по Y = 30 10:00:20 1 (autosaved_2.txt, 14): Смещение по X = 13 по Y = 30 10:00:32 1 (autosaved_2.txt, 14): Смещение по X = 14 по Y = 30 10:00:34 1 (autosaved_2.txt, 14): Смещение по X = 15 по Y = 30 10:00:35 1 (autosaved_2.txt, 14): Смещение по X = 16 по Y = 30 10:00:37 1 (autosaved_2.txt, 14): Смещение по X = 17 по Y = 30 10:00:39 1 (autosaved_2.txt, 14): Смещение по X = 18 по Y = 30 10:00:41 1 (autosaved_2.txt, 14): Смещение по X = 19 по Y = 30 10:00:43 1 (autosaved_2.txt, 14): Смещение по X = 20 по Y = 30 какие надо?
|
|
|
|
VALHALLA |
25.12.2017, 12:17
|
Neophyte
Сообщений: 18
Регистрация: 22.12.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.754
Возраст: 18
|
Цитата(cirus @ 24.12.2017, 12:39) Проверяйте не на полосках. На вещах в инвентаре или скилах. Посмотрите какое чаще всего встречается. Скорее всего что-то близко к этому: Смещение по X = 6 по Y = 31.
проверял множество положений 6.31\6.30\0....10.30-31 все равно если браузер будет сверху игры,ничего не происходит. Еще заметил что при добавлении workwindow в проверку хп и атаку скрипт перестаёт работать даже без смещений (IMG: style_emoticons/default/sad.gif)
|
|
|
|
VALHALLA |
25.12.2017, 13:14
|
Neophyte
Сообщений: 18
Регистрация: 22.12.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.754
Возраст: 18
|
Цитата(cirus @ 25.12.2017, 13:46) А так: код
Код // Кнопка с макросом /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
set #endX #xMobHP + 10 set #endY #yMobHP + 35
:start set #hp 0 while #hp = 0 // Пока не увидим хп, ищем моба send %mob [#nMob] if #nMob < #mobsize set #nMob #nMob + 1 else set #nMob 1 end_if wait 500 + random (1000) set #hp findcolor(#xMobHP #yMobHP #endX #endY #mobColorHP %arrHP workwindow 1) end_while
set #nMob 1
while #hp > 0 // Пока видим хп - лупим send %attack [#nAttack] if #nAttack < #Attacksize set #nAttack #nAttack + 1 else set #nAttack 1 end_if wait 500 + random (1000) set #hp findcolor(#xMobHP #yMobHP #endX #endY #mobColorHP %arrHP workwindow 1) end_while
repeat #pickup // Собираем дроп. send $pickup wait 200 wait random (500) end_repeat
goto start хм,так заработало,спасибо. Осталось что-то с радаром пошаманить и попробовать убрать из списка ненужного моба
|
|
|
|
VALHALLA |
25.12.2017, 13:48
|
Neophyte
Сообщений: 18
Регистрация: 22.12.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.754
Возраст: 18
|
примерно так будет выглядеть поиск по картинке? Код set #a findimage (#startX #startY #endX #endY (D:\папка\картинка.bmp) %arr 2)//узнавать координаты открыв картинку и задав через ctrl+a? if #a > 0 send escape end_if и засунуть это перед тем как отправить бить,я правильно понял?
|
|
|
|
cirus |
25.12.2017, 14:15
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26702
Пользователь №: 16.971
Возраст: 29
|
Цитата //узнавать координаты открыв картинку и задав через ctrl+a? Да. Цитата set #a findimage (#startX #startY #endX #endY (D:\папка\картинка.bmp) %arr 2) Для перекрытого окна: Код set #a findimage (#startX #startY #endX #endY (D:\папка\картинка.bmp) %arr workwindow 80 1 5) Т. е. вместо 2 указать workwindow. 80 - это точность поиска. 1- количество картинок для поиска. 5 - % погрешности в цвете, возможно надо ставить больше, т. к. окно с именем моба прозрачное цвет букв может меняться на разном фоне. Прежде чем в основной код добавлять потестите отдельно поиск. Чтобы точно находилась картинка. Код set #a findimage (#startX #startY #endX #endY (D:\папка\картинка.bmp) %arr workwindow 80 1 5) // указать координаты log #a // результат поиска, показывает точность, с которой найдена картинка, или 0, если не найдена if #a > 0 send escape end_if wait 300
Цитата и засунуть это перед тем как отправить бить,я правильно понял? Код send %mob [#nMob] wait 500 // пауза чтоб моб успел выделиться set #a findimage...
|
|
|
|
VALHALLA |
26.12.2017, 15:25
|
Neophyte
Сообщений: 18
Регистрация: 22.12.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.754
Возраст: 18
|
Цитата(cirus @ 25.12.2017, 15:15) Да. Для перекрытого окна: Код set #a findimage (#startX #startY #endX #endY (D:\папка\картинка.bmp) %arr workwindow 80 1 5) Т. е. вместо 2 указать workwindow. 80 - это точность поиска. 1- количество картинок для поиска. 5 - % погрешности в цвете, возможно надо ставить больше, т. к. окно с именем моба прозрачное цвет букв может меняться на разном фоне. Прежде чем в основной код добавлять потестите отдельно поиск. Чтобы точно находилась картинка. Код set #a findimage (#startX #startY #endX #endY (D:\папка\картинка.bmp) %arr workwindow 80 1 5) // указать координаты log #a // результат поиска, показывает точность, с которой найдена картинка, или 0, если не найдена if #a > 0 send escape end_if wait 300
Код send %mob [#nMob] wait 500 // пауза чтоб моб успел выделиться set #a findimage... собственно,первый блин комом (IMG: style_emoticons/default/sad.gif) в логи показывает 0 я взял моба в таргет,сделал скриншот,в фотошопе закрасил все ненужное(скорее всего скриншот прикреплю) и сохранил. Потом открыл картинку и снял координаты max XY и min XY, указал их в коде. Вроде бы всё правильно сделал. картинкаЕще интересует отмена цели если застрял,как это реализовать в твоей доработке?взял код с форума Код set #detected 0
start if (последняя точка хп моба)// что должно быть тут? if #detected = 1 // Велось ли наблюдение за данным мобом уже(таргет не сбрасывался) if #targetTime < timer // Время на первый удар по мобу вышло set #detected 0 send escape msg Застрял end_if else set #targetTime timer + 25000 set #detected 1 end_if else set #detected 0 end_if goto start
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|