Что нового

[Neverwinter online]Бот для веб-интерфейса игры.

Mist

Новичок
Сообщения
2
Репутация
0
Играюсь я в игру из сабжа и ес-но хочется некоторые вещи автоматизировать, а именно, у игры есть веб-портал с помощью которого можно отдавать персонажу задания крафтить ништяки, а заходить постоянно и кликать на задания лень, а ништяков охота. Решил написать простенького бота который бы заходил и за меня все делал.
Пока писал бота у меня возникли несколько проблем.
1. Самая первая проблема как нажимать кнопки. Я открываю сайт через ie. Я пробовал использовать метод Ieclickbytext и он не работает. Я подозреваю потому, что в html коде нет такого текста, а все сделано как я понимаю через js, и как с этим работать непонятно. Что бы вам можно было посмотреть, что из себя представляет я создал тестовый акк с логином [email protected] и паролем 123456. Ну и сам портал - https://gateway.nw.ru.perfectworld.eu
2. Ну так, как с нажатием кнопок не взлетело, я сваял бота который использовал клики по изображению. Хотя писать его было не очень удобно,ибо приходилось делать скрины кнопок который надо нажимать, но в итоге, он делал все, что нужно. Но радость моя была недолгой, бот работает только когда я рядом:(
Я поставил в виртулку vmplayer и поставил nncron, что бы он по расписанию стартовал бота, но в реальности, скрипт не работает. А точнее, если я в кроне запускаю задачу, то все работает, если я поставлю в кроне расписание через 10 минут сделать задание, то можно свернуть виртулку, и потом радоваться результату. А в реальной ситуации, когда бот должен быть сработать, я вижу, что бот только открыл браузер и перешел страницу логина, но не залогинился и почему он этого не сделал мне непонятно.
Сам код фунции которая должна была стартануть бразуер и зайти в учетку.
Код:
Func StartSession($Array)
$oIE = _IECreate($Array[0],0,1,1,1)
WinWait("Neverwinter","Панель")
winSetState("Neverwinter ", "Панель", @SW_MAXIMIZE )
Sleep(1000)
  $x1 = 0
   $y1 = 0
   $result = _WaitForImageSearch("enter.png",35,1,$x1,$y1,0)
if $result=1 Then

Send($Array[1])
Send("{TAB}")
sleep(100)
Send($Array[2])
sleep(100)
Send("{ENTER}")
Return $oIE;

EndIf
EndFunc

В $array передается сайт, логин и пароль.
3. А собственно говоря, думаю не только мою голову посетила мысль написать бота, который бы автоматически крафил ништяки, какие меры надо предпринять, чтобы не спалиться с ботом.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
У меня при входе, такой комбинации слов как Neverwinter и Панель нету.
+ Может быть ты таки не в том месте картинку ищешь?
 
Автор
M

Mist

Новичок
Сообщения
2
Репутация
0
Есть, newerwinter это название страницы, а панель видно,если windows info на панель навигации навести.
4eb6309bba93.png

Фишка в том, если я ручками запускаю этот скрипт или там, поставлю через 5 минут сработать через крон, то он заходит делает все, что нужно. Костыльно, с использованием imagesearch, но работает . Именно не работает когда он должен по таймеру, к примеру в 14 часов сработать.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Я вот хоть убей не понимаю в чем разница? Таймер ты с помощью TimerInit, макросов @HOUR @MINUTE, делаешь или с помощью nncron? Попробуй с помощью макросов
 

[email protected]

Новичок
Сообщения
1
Репутация
0
Понаблюдав за за ботом, понял, что это могли быть случайные косяки сайта, типа медленно грузился, а скрипт посчитал, что сайт загружен или что-то в том роде, ибо код не менял, а сейчас он начал нормально отрабатывать относительно. Хотя в общем, вопрос у меня остался, как интеллектуально можно понять, что на страницах происходит, а то бывают проблемы при загрузке сайта, а бот этого понять не состоянии, ибо туп и может только на определенные кнопки жать.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
IELoadWait команда, но она не всегда спасает, по этому следить за рядом ключевых точек интерфейса, решать проблему слипами
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
Re: [Neverwinter online]Бот для веб-интерфейса игры

Обычно когда страница ещё загружается, в меню закладок крутится значёк загрузки. Я обычно его проверяю на пиксели
 
Верх