Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Пишу для себя бота к игре, кто поможет Добавлено: 01.12.08 15:38  

Автор вопроса:  Maxwell | ICQ: 363622694 
Ребята, приветствую! Я новичок, в програмировании, когда-то учил делфи 5.0 но по скольку пошел работать в другую сферу забросил и многое забыл, сейчас столкнулся с ситуацией и мне нужна помощь:

Ситуация следующая:
Я пишу бота на автобой для личного использования к одной малоизвестной игре, проблема в следующем, сам бой написан на ява скрипте, тоесть для того что-бы выбрать удар и блок нужно запустить JavaScript, я пошарился по форумам испробовал очень многое, разные коды! Вот пара последних вариантов:
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        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

Второй:
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        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-сайт: kg7.ru
 Профиль | | #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-сайт: kg7.ru
 Профиль | | #4
Добавлено: 01.12.08 23:11
Вопрос №1. Ну в смысле можно посылать нажатие клавиш в форму(приложение), но если там управление только мышью - так не пройдет.

Ответить

Номер ответа: 5
Автор ответа:
 Kardinal



ICQ: 360041513 

Вопросов: 1
Ответов: 164
 Web-сайт: kg7.ru
 Профиль | | #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
а вот кнопочки которые клацать надо:
  1.   <tr>
  2.     <td><img id="1_1" src="images/buttons/1_1a.jpg" width="140" height="40" onmouseover="MoveOnButton('1_1');" onmouseout="MoveNotOnButton()" onclick="ClickOnButton('1_1');" /></td>
  3.     <td><img id="2_1" src="images/buttons/2_1a.jpg" width="140" height="40" onmouseover="MoveOnButton('2_1');" onmouseout="MoveNotOnButton()" onclick="ClickOnButton('2_1');" /></td>
  4.   </tr>
  5.   <tr>
  6.     <td><img id="1_2" src="images/buttons/1_2a.jpg" width="140" height="40" onmouseover="MoveOnButton('1_2');" onmouseout="MoveNotOnButton()" onclick="ClickOnButton('1_2');" /></td>
  7.     <td><img id="2_2" src="images/buttons/2_2a.jpg" width="140" height="40" onmouseover="MoveOnButton('2_2');" onmouseout="MoveNotOnButton()" onclick="ClickOnButton('2_2');" /></td>
  8.   </tr>
  9.   <tr>
  10.     <td><img id="1_3" src="images/buttons/1_3a.jpg" width="140" height="40" onmouseover="MoveOnButton('1_3');" onmouseout="MoveNotOnButton()" onclick="ClickOnButton('1_3');" /></td>
  11.     <td><img id="2_3" src="images/buttons/2_3a.jpg" width="140" height="40" onmouseover="MoveOnButton('2_3');" onmouseout="MoveNotOnButton()" onclick="ClickOnButton('2_3');" /></td>
  12.   </tr>
  13.   <tr>
  14.     <td><img id="1_4" src="images/buttons/1_4a.jpg" width="140" height="40" onmouseover="MoveOnButton('1_4');" onmouseout="MoveNotOnButton()" onclick="ClickOnButton('1_4');" /></td>
  15.     <td><img id="2_4" src="images/buttons/2_4a.jpg" width="140" height="40" onmouseover="MoveOnButton('2_4');" onmouseout="MoveNotOnButton()" onclick="ClickOnButton('2_4');" /></td>
  16.   </tr>

Ответить

Номер ответа: 8
Автор ответа:
 Kardinal



ICQ: 360041513 

Вопросов: 1
Ответов: 164
 Web-сайт: kg7.ru
 Профиль | | #8
Добавлено: 02.12.08 16:55
Если это устроит, то можно написать бота без графического отображения(это может быть некий клиент) Я сейчас перевожу код на vb.6, что получиться напишу...

Ответить

Номер ответа: 9
Автор ответа:
 Kardinal



ICQ: 360041513 

Вопросов: 1
Ответов: 164
 Web-сайт: kg7.ru
 Профиль | | #9
Добавлено: 02.12.08 18:29
Если коротко:
  1.  
  2. document.forms.form_boj.udar.value = udar;
  3. document.forms.form_boj.block.value = block;
  4. document.forms.form_boj.submit();


в этих строках идет обычная отправка методом POST на сервак.
Не хватает строк которые бы приняли эти данные...
В общем идея какая:
  1.  
  2. Winsock1.connect "www.gameserver.ru",80
  3. While Not Winsock1.State = 7 'Ждем, пока подключится.
  4. DoEvents
  5. Wend
  6.  
  7. Winsock1.SendData "POST /index.php HTTP/1.1" & vbCrLf  'тут надо прописать адресс к странице
  8. Winsock1.SendData "User-Agent: Mozilla/4.0" & vbCrLf   'это таким браузером будешь
  9. Winsock1.SendData "Cookie: country=UA; Parametr2=ParamValue2;" & vbCrLf   'тут важно взять твои куки(там может лежать имя пользователя и пароль)
  10.  
  11. Winsock1(A42).SendData "Content-Type: application/x-www-form-urlencoded" & vbCrLf   '
  12. Parametrs = "udar=1&block=0"     'тут упоминаеться вторая цифра удара\блока
  13. Winsock1(A42).SendData "Host: www.gameserver.ru" & vbCrLf    'еще раз сервак
  14. Winsock1(A42).SendData "Content-length: " & Trim$(Str$(Len(Parametrs))) & vbCrLf 'Длинна данных
  15. Winsock1(A42).SendData "Pragma: no-cache" & vbCrLf   'Не помню(что-то с кэшем связано)
  16. Winsock1(A42).SendData vbCrLf            'Обязательно пустая строка
  17. Winsock1(A42).SendData Parametrs & vbCrLf    'Параметры



PS. Код на VB 6, если надо на Делфи - нужны эквиваленты

Ответить

Номер ответа: 10
Автор ответа:
 Maxwell



ICQ: 363622694 

Вопросов: 2
Ответов: 12
 Профиль | | #10 Добавлено: 04.12.08 14:42
Мое видение проекта, я хочу сделать бота в виде браузера, тоесть через WebBrowser в вб нет, ну просто загружается игра вводишь логин пароль и ты в игре! Для начала хочу реализовать бой тоесть надо что-бы бот видел все страници фрейма, и следил когда подгружается бой, когда бой подгрузился автоматом выбирает удары и бьет! Автобой это основная фишка игры, ну а потом можо уже будет добавлять всякие приятные мелочи по теме игры)

Ответить

Номер ответа: 11
Автор ответа:
 Kardinal



ICQ: 360041513 

Вопросов: 1
Ответов: 164
 Web-сайт: kg7.ru
 Профиль | | #11
Добавлено: 04.12.08 18:32
Мне кажется браузер использовать несколько неудобно, как бы глюков не было. Хотя можно обмениваться с сервером по протоколу, а потом отдавать експлореру...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам