Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (2): [1] 2 »   

> Без описания
ionich123
Отправлено: 18 Июля, 2013 - 21:05:24
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2013  
Репутация: 0




Пишу самый простой скрипт для линейки- мейн кидает пати бд, тот танцует, ливает из пати и привязывается к мейну.
Столкнулся с неожиданной проблемой - прога не видит разницы между двумя окнами, название у них одинаковые, - прога обращается по очереди то к одному то к другому.
При попытке поменяться название окна, они возвращаются назад при первом обращении на "Lineage II".
Нет ли способа определять окно по HWND как в кликермане?
 
 Top
Kibor
Отправлено: 18 Июля, 2013 - 21:26:17
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8099
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




win и есть HWND. По каким параметрам определяется win?
Как вариант могу предложить сделать окна в разных размерах, получить эти размеры с помощью CTRL+SHIFT+S и определять win для каждого окна не по одинаковому для них названия и классу а по размерам. К примеру так:
win w1=window ("имя окна игры", "класс окна игры", -1, -1, 800, 600, -1);
win w2=window ("имя окна игры", "класс окна игры", -1, -1, 900, 700, -1);

 ionich123 пишет:
При попытке поменяться название окна, они возвращаются назад при первом обращении на "Lineage II".

Это такая защита в игре?

Если имя можно все же сменить хоть и до обращения к игре то можно сделать так:
win w1=window ("имя окна игры", "класс окна игры", -1);
w1.name ="новое имя окна игры";
movewindow(w1);
sleep(1000);
win w2=window ("имя окна игры", "класс окна игры", -1);

И работать с w1 и w2. Они должны указывать на разные окна.
 
 Top
ionich123
Отправлено: 18 Июля, 2013 - 22:17:29
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2013  
Репутация: 0




 Kibor пишет:
win и есть HWND. По каким параметрам определяется win?
Как вариант могу предложить сделать окна в разных размерах, получить эти размеры с помощью CTRL+SHIFT+S и определять win для каждого окна не по одинаковому для них названия и классу а по размерам. К примеру так:
win w1=window ("имя окна игры", "класс окна игры", -1, -1, 800, 600, -1);
win w2=window ("имя окна игры", "класс окна игры", -1, -1, 900, 700, -1);

Спасибо за помощь, теперь различаю окна по слегка разным местоположениям и скрипт всегда узнает нужное-)
насчет второго способа- я делал то же самое с помощью sendtext, при его испоьзовании окно меняет название когда к нему обращаешься, при способе w1.name ="новое имя окна игры"; тут же возвращается назад на ""Lineage II".
 
 Top
Kibor
Отправлено: 18 Июля, 2013 - 22:46:51
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8099
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 ionich123 пишет:
я делал то же самое с помощью sendtext, при его испоьзовании окно меняет название когда к нему обращаешься

Так и пусть меняет. Главное чтоб мы успели получить win(hwnd) обеих окон до того как оно поменяет назад.
Проверьте все же такой скрипт:
win w1=window ("имя окна игры", "класс окна игры", -1);
sendtext("новое имя окна игры", w1);
sleep(1000);
//На этот момент обращений к w1 нет и окно должно иметь новое название
win w2=window ("имя окна игры", "класс окна игры", -1);//Пока названия окон разные получаем указатель на второе

Возможно сработает.
 
 Top
ionich123
Отправлено: 18 Июля, 2013 - 23:11:03
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2013  
Репутация: 0




CODE:

win w1=window ("Lineage II", "l2UnrealWWindowsViewportWindow", -1);
sendtext("1", w1);
sleep(1000);
win w2=window ("Lineage II", "l2UnrealWWindowsViewportWindow", -1);
key("waerty",1,1,w1);
key(RETURN,1,1,w1);
key("wa1212erty",1,1,w2);
key(RETURN,1,1,w2);

Работает, только приходится эксперементировать с чатом, чтобы понять кто w1 а кто w2.
Почему-то не работает у меня команда messagebox, просто с переменными работает, а при смешении текста и переменных("text"+var) ничего не происходит.
 
 Top
Kibor
Отправлено: 18 Июля, 2013 - 23:18:04
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8099
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 ionich123 пишет:
приходится эксперементировать с чатом

Походу первым w будет окно которое первым запустилось.
 ionich123 пишет:
не работает у меня команда messagebox, просто с переменными работает, а при смешении текста и переменных("text"+var)

var имеет какой тип?
Подробнее об операциях с переменными: Математические и строковые операции
string можно соединять только с string или char
 
 Top
ionich123
Отправлено: 18 Июля, 2013 - 23:28:11
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2013  
Репутация: 0




Я немного писал на С#, там есть метод MessageBox.Show(), где можно мешать текст и переменные в любом виде - я думал здесь так же. Насчет var- хотел чтобы выходили сообщения вида ("X= " +X[k-1] "Y= " +Y[k-1])
 
 Top
Kibor
Отправлено: 18 Июля, 2013 - 23:32:44
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8099
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Надо сделать форматирование чисел в string, но не дошли руки. Пока такой возможности в Кибор нет.
 
 Top
ionich123
Отправлено: 18 Июля, 2013 - 23:55:28
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2013  
Репутация: 0




Вообще хочу бота написать под х1 серв ла2...на нем не работает "next target"Подмигивание
Использовать поиск по картинке, даже по динамической, кажется мне слишком сложным- практически невозможно 100% обезопаситься от того, что не схватишь агров пока бежишь к мобу, или же не схватишь 2-х разом. гораздо проще находить места с ограниченным кол-вом мобов и с помощью команд /target monster_name выпиливать сначала агров, потом остальных...не боясь, что таргет уведет тебя в глухомань куда-нить-)
 
 Top
Kibor
Отправлено: 19 Июля, 2013 - 00:22:17
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8099
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Хе хе...
Я вообще то в линейку не играл. Набросал скрипт исходя из того что нащупал из управления когда зашел в игру. Про эту команду не знал даже.
Эта игра просто создана для написания ботов...
Будут вопросы - обращайтесь.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by