|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как организовать клик по скриптовой ссылке в онлайн игре? |
|
|
Как организовать клик по скриптовой ссылке в онлайн игре?
|
Новый участник Сообщения: 7 |
Профиль | Отправить PM | Цитировать
Здравствуйте, я только начал осваивать Autoit, вот пытаюсь сделать что то вроде бота для онлайн игры и столкнулся с проблемкой. Нужно выбрать определенный ресурс (игровой) из предлагаемых (они генерируются в случайном порядке). Для этого нужно как то сэмулировать клик мыши по нужному названию. Причем диалог вроде ява скрипт. Адреса для кликов всегда одинаковы (http://haddan.ru/room/func/qa.php?id=21 или http://haddan.ru/room/func/qa.php?id=22 и т.д.) только значения ресурсов тусуются. Игра идет с клиента и с ИЕ.
Вот ИЕ Анализером стянул скрипт т.к. в ХТМЛе игры ниче полезного не нашел. Все участки страницы (фрэймы) имеют один титл. В общем если подскажете как организовать клик буду очень рад а если удасться выбрать желаемый ресурс – то эт была б бомба.
|
|
Отправлено: 00:56, 22-03-2010 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Цитата Kobrados:
|
|
Отправлено: 04:42, 22-03-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Зеленая массивка; Мандрагора; Капустница; Подсолнух; Мухожор - в этом списке Масивка более желаемый ресурс а дальше по уменьшению стоимости т.е. Мухожор самый не желаемый. Предлагаться могут минимум 2 - максимум все ресурсы.
|
Отправлено: 11:11, 22-03-2010 | #3 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Kobrados,
В этой теме Получить адрес для перехода посмотрите. |
Отправлено: 11:40, 22-03-2010 | #4 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать madmasles,
Спасибо за ссылку, код четко работает на главной странице игры а если зайти в игру и присоединить ИЕ то ни одной ссылки не находит. Т.е я понимаю надо както подключиться к нужному ява скрипту? Вот основная часть кода страницы, дальше идут данные по персонажу.
|
|
Последний раз редактировалось Kobrados, 23-03-2010 в 13:39. Отправлено: 12:28, 23-03-2010 | #5 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать А как будет выглядеть код для присоединения к уже открытой странице, может я не так присоединял или как проверить с этой страницей работает код или нет?
|
Отправлено: 17:42, 23-03-2010 | #6 |
Пользователь Сообщения: 143
|
Профиль | Отправить PM | Цитировать Kobrados, тут можно играть не в одном окне, а загрузив различные части игры в отдельные окна......неудобно, но зато работает ).
К примеру проверьте, откройте игру и зайдите куда нибуть, где есть с кем поговорить, нажмите на персонажа чтобы с ним поговорить, загрузится окно в котором вам нужно кликнуть на ссылку. Теперь откройте окно http://haddan.ru/room/func/qa.php , если открыв окно по этой ссылке увидите надпись ошибка обновите .. А дальше пользуясь скриптом который вам предложил madmasles, жмите на то что вам нужно и все. |
Отправлено: 20:49, 23-03-2010 | #7 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать HORRIBLE, спасиб, да, работает, но както не стабильно, через раз.
А иначе никак нельзя прописать уже открытое окно? |
Отправлено: 01:09, 24-03-2010 | #8 |
Пользователь Сообщения: 143
|
Профиль | Отправить PM | Цитировать Kobrados, у меня не получилось в самой игре нажать на ссылки в диалоге.
Я вам предлагал не что такое попробовать: #include <IE.au3> $oIE = _IECreate("http://haddan.ru/main.php") MsgBox(0,"","вдруг вы вышли из игры") ; вдруг вы вышли из игры, чтоб заново авторизоваться. $oIE_dialog = _IECreate("http://haddan.ru/room/func/qa.php") while 1 sleep(100) $sText = _IEBodyReadText ($oIE_dialog) ToolTip($sText ,10,10) $text = StringReplace($sText, "Пожалуйста, попытайтесь начать диалог ещё раз.", "-") $num_replace = @extended if $num_replace >= 1 then _IEAction($oIE_dialog, 'refresh') _IELoadWait($oIE_dialog) EndIf if $sText = '0' then _IEAction($oIE_dialog, 'refresh') _IELoadWait($oIE_dialog) ; необходимо чтобы увидеть результат разговора в основном окне. _IEAction($oIE , 'refresh') _IELoadWait($oIE ) ToolTip('Диалог окончен', 100,100) Else if $num_replace = 0 then $oLinks = _IELinkGetCollection($oIE_dialog) local $link_text = '' local $i = 1 For $oLink In $oLinks $link_text &= @CRLF& 'Номер: '& $i &'. Текст: '& _IEPropertyGet($oLink, "innerText") & @CRLF $i +=1 Next $answer = InputBox("Номер ссылки на которую жмем", $link_text, '1' , "",-1, -1, 10, 200) ;MsgBox(0,'',$iNumLinks) $i = 1 For $oLink In $oLinks ; MsgBox(0,'',$i) if number($answer) = $i then ;$sLinkText = _IEPropertyGet($oLink, "innerText") ;If StringInStr($sLinkText, 'Расскажи мне о магии.') Then ;if $oLink.innertext == 'Расскажи мне о магии.' Then _IEAction($oLink,'click') _IELoadWait($oIE_dialog) ;EndIf EndIf $i += 1 Next EndIf EndIf wend |
Последний раз редактировалось HORRIBLE, 24-03-2010 в 13:43. Отправлено: 12:29, 24-03-2010 | #9 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать HORRIBLE, спасиб большое, интересное решение.
Может кто то еще подскажет возможно ли сравнить текст из буфера (после нажатия Ctrl+C) с текстом в условии скрипта? |
Отправлено: 22:06, 25-03-2010 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Организовать спортивную трансляцию онлайн (см. подробности) | CaminoDeFlores | Сетевые технологии | 0 | 21-01-2010 07:18 | |
Выбор сервера в онлайн игре и еще один вопрос | Bars66 | AutoIt | 2 | 25-10-2009 23:06 | |
[решено] как перехватить клик мышки? | proxy | AutoIt | 7 | 21-03-2009 11:13 | |
Клик по ссылке на zip файл в IE | pro100_tak | Хочу все знать | 4 | 09-12-2004 10:21 | |
Клик по ссылке - изображение на E-mail | Andrey V2003 | Вебмастеру | 6 | 17-08-2004 18:08 |
|