Страница: 1 |
Страница: 1 |
Вопрос: Пишу для себя бота к игре, кто поможет
Добавлено: 01.12.08 15:38
Автор вопроса: Maxwell | ICQ: 363622694
Ребята, приветствую! Я новичок, в програмировании, когда-то учил делфи 5.0 но по скольку пошел работать в другую сферу забросил и многое забыл, сейчас столкнулся с ситуацией и мне нужна помощь:
Ситуация следующая:
Я пишу бота на автобой для личного использования к одной малоизвестной игре, проблема в следующем, сам бой написан на ява скрипте, тоесть для того что-бы выбрать удар и блок нужно запустить JavaScript, я пошарился по форумам испробовал очень многое, разные коды! Вот пара последних вариантов:
Dim a As Object, b As Object, x As Object, с As Object
a = Me.WebBrowser1.Document
c=Me.WebBrowser1.Document
While 100000000
b = a.execScript("GetelementByID(udar);", "JavaScript").clickonelementid(1_1)
x = x.execScript("GetelementById(block);", "JavaScript").clickonelementid(2_1)
End While
Второй:
Dim a As Object, b As Object, x As Object
a = Me.WebBrowser1.Document
While 100000000
b = a.execScript("GetelementByName(udar);", "JavaScript").CklickOnName("1_1")
x = a.execScript("GetelementByName(block);", "JavaScript").ClickOnName("2_1")
End While
В бою есть 4 кнопки удара и 4 кнопки блока, просмотрев код страници я понял что ударные кнопки имеют свойсвто udar и именуются 1_1, 1_2, 1_3, 1_4, а блоковые имеют свойство block и соответственно 2_1,2_2,2_3,2_4
Ни один код не работает, подскажите кто сталкивался, ещё есть второй вариант, установка программой координат по которым нужно кликать и потом воспроизводство их (как обычный кликер, но здесь возникает другая проблема, как сделать в проекте мышь отдельно, тоесть что-бы внутри проекта бегала мышка своя, и кликала по кнопочкам, и не мешала основной мышке, тоесть что-бы не перехватывала мышь а запускался отдельный курсор внутри проекта, так же есть есть исходник кликера на vb .net у когонибудь, поделитесь пожалуйста.
Надеюсь на ваше понимание и поддержку!
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
Maxwell
ICQ: 363622694
Вопросов: 2
Ответов: 12
Профиль | | #1
Добавлено: 01.12.08 15:53
Ещё забыл добавить возможно информация будет кстати: в игре есть mainframe и бой происходит в boj.php. Могу выложить код страници во время боя если он необходим.
Номер ответа: 2
Автор ответа:
Kardinal
ICQ: 360041513
Вопросов: 1
Ответов: 164
Web-сайт:
Профиль | | #2
Добавлено: 01.12.08 19:42
А кнопками там управлять нельзя? И извлечь(скачать) нельзя - а то через браузер(как я увидел) не совсем удобно.
Номер ответа: 3
Автор ответа:
Maxwell
ICQ: 363622694
Вопросов: 2
Ответов: 12
Профиль | | #3
Добавлено: 01.12.08 22:20
хммм... не совсем понял твой вопрос!
Номер ответа: 4
Автор ответа:
Kardinal
ICQ: 360041513
Вопросов: 1
Ответов: 164
Web-сайт:
Профиль | | #4
Добавлено: 01.12.08 23:11
Вопрос №1. Ну в смысле можно посылать нажатие клавиш в форму(приложение), но если там управление только мышью - так не пройдет.
Номер ответа: 5
Автор ответа:
Kardinal
ICQ: 360041513
Вопросов: 1
Ответов: 164
Web-сайт:
Профиль | | #5
Добавлено: 01.12.08 23:17
Вопрос №2. Если это и вправду JavaScript, а не Java (которую исполняет Java-машина), то возможно увидеть исходный код которым намного легче манипулировать через НТТР-протокол а не через интрефейс. (Хотя чесно я подозреваю что это Java)
Номер ответа: 6
Автор ответа:
Maxwell
ICQ: 363622694
Вопросов: 2
Ответов: 12
Профиль | | #6
Добавлено: 02.12.08 10:06
ответ №1 да управление только мышью!
Ответ №2 точно javascript вот кусок кода:
meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<script language="JavaScript">
<!--
var pathtoimg = 'images/buttons/';
var roz = '.jpg';
var a = new Array();
var udar_actived = 0;
var udar = 0;
var block = 0;
for (var i=1; i<=2; i++)
for (var j=1; j<=4; j++)
{
id_button = i + '_' + j;
a[id_button] = 'a';
}
function UdarAct()
{
if (udar_actived == 0)
{
udar_actived = 1;
document.forms.form_boj.udar.value = udar;
document.forms.form_boj.block.value = block;
document.forms.form_boj.submit();
}
}
function IsSelected()
{
sel_button = 0;
for (var i=1; i<=2; i++)
for (var j=1; j<=4; j++)
{
id_button = i + '_' + j;
if (a[id_button] == 'c')
{
sel_button ++ ;
if (id_button.charAt(0) == '1') udar = parseFloat(id_button.charAt(2));
if (id_button.charAt(0) == '2') block = parseFloat(id_button.charAt(2));
}
}
if (udar != 0)
if (block != 0) UdarAct();
}
function DrawButton()
{
for (var i=1; i<=2; i++)
for (var j=1; j<=4; j++)
{
id_button = i + '_' + j;
document.getElementById(id_button).src = pathtoimg + id_button + a[id_button] + roz;
}
}
function ClickOnButton(id_button)
{
if (a[id_button] == 'b')
{
for (var j=1; j<=4; j++)
{
a[id_button.charAt(0) + '_' + j] = 'a';
}
a[id_button] = 'c';
DrawButton();
IsSelected()
}
}
function MoveOnButton(id_button)
{
if (a[id_button] == 'a') {a[id_button] = 'b';};
DrawButton()
}
function MoveNotOnButton()
{
for (var i=1; i<=2; i++)
for (var j=1; j<=4; j++)
{
id_button = i + '_' + j;
if (a[id_button] == 'b') {a[id_button] = 'a';};
}
}
function onsbm()
{
var kilkbt=0;
for (var i=0;i<form1.block.length;i++) {if (form1.block.checked===true) {kilkbt++;};};
for (var i=0;i<form1.udar.length;i++) {if (form1.udar.checked===true) {kilkbt++;};};
if (kilkbt==2) {form1.button.disabled=false;};
}
function winop()
{
windop = window.open("log.php?boj=588","mywin","scrollbars=Yes, width=900, height=400"
}
-->
</script>
Номер ответа: 7
Автор ответа:
Maxwell
ICQ: 363622694
Вопросов: 2
Ответов: 12
Профиль | | #7
Добавлено: 02.12.08 10:07
а вот кнопочки которые клацать надо:
Номер ответа: 8
Автор ответа:
Kardinal
ICQ: 360041513
Вопросов: 1
Ответов: 164
Web-сайт:
Профиль | | #8
Добавлено: 02.12.08 16:55
Если это устроит, то можно написать бота без графического отображения(это может быть некий клиент) Я сейчас перевожу код на vb.6, что получиться напишу...
Номер ответа: 9
Автор ответа:
Kardinal
ICQ: 360041513
Вопросов: 1
Ответов: 164
Web-сайт:
Профиль | | #9
Добавлено: 02.12.08 18:29
Если коротко:
в этих строках идет обычная отправка методом POST на сервак.
Не хватает строк которые бы приняли эти данные...
В общем идея какая:
PS. Код на VB 6, если надо на Делфи - нужны эквиваленты
Номер ответа: 10
Автор ответа:
Maxwell
ICQ: 363622694
Вопросов: 2
Ответов: 12
Профиль | | #10
Добавлено: 04.12.08 14:42
Мое видение проекта, я хочу сделать бота в виде браузера, тоесть через WebBrowser в вб нет, ну просто загружается игра вводишь логин пароль и ты в игре! Для начала хочу реализовать бой тоесть надо что-бы бот видел все страници фрейма, и следил когда подгружается бой, когда бой подгрузился автоматом выбирает удары и бьет! Автобой это основная фишка игры, ну а потом можо уже будет добавлять всякие приятные мелочи по теме игры)
Номер ответа: 11
Автор ответа:
Kardinal
ICQ: 360041513
Вопросов: 1
Ответов: 164
Web-сайт:
Профиль | | #11
Добавлено: 04.12.08 18:32
Мне кажется браузер использовать несколько неудобно, как бы глюков не было. Хотя можно обмениваться с сервером по протоколу, а потом отдавать експлореру...