Что нового

Переход по страницам в браузерной игре

Шайтанчег

Новичок
Сообщения
15
Репутация
0
Здравствуйте. Хочу написать код для ботвы чтобы при нажатии "напасть" одевались определенные вещи. Вот набросал немного, получается сделать один переход, подскажите как после перехода снова собрать колекцию ссылок чтоб не открывать новое окно ?

Код:
#include <IE.au3>
$oIE = _IECreate("http://g2.botva.ru")
$oLinks = _IELinkGetCollection ($oIE)
$iNumLinks = @extended
MsgBox(0, "Link Info", $iNumLinks & " найдено сцылок")
For $oLink In $oLinks
    MsgBox(0, "Link Info", $oLink.innertext  &  $oLink.href)
	    If  $oLink.href ='http://g2.botva.ru/village.php' Then
			_IEAction($oLink, "click")
			ExitLoop
		EndIf	  
Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Шайтанчег
Ссылки, по которой вы хотите перейти, не существует.
 
Автор
Ш

Шайтанчег

Новичок
Сообщения
15
Репутация
0
виноват, подредактировал, там был указан не тот сервер. Счас не принципиально по какой ссылке переход, не получается промониторить ссылки на странице после перехода
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Шайтанчег [?]
Счас не принципиально по какой ссылке переход, не получается промониторить ссылки на странице после перехода
Читайте мою подпись! ;)

Вы заходите в игру под куками?!
У меня же, нет возможности зайти на ваш account! Поэтому при заходе на главную страницу сайта ссылки httр://g2.botva.ru/village.php нет!!!

А, по сути, после перехода по ссылке, объект $oIE будет содержать все ссылки вновь загруженного документа!
Предполагаю, что ваша ссылка загружается во фрейм, поищите на форуме, аналогичные примеры уже разбирались!
Иначе, опишите полностью вашу задачу, и заведите тестовый account, для отработки кода.
 
Автор
Ш

Шайтанчег

Новичок
Сообщения
15
Репутация
0
http://g2.botva.ru
[email protected]
пароль 7777777

Цель - сделать переходы:
деревня (http://g2.botva.ru/village.php)
жилище (http://g2.botva.ru/house.php)
клетка (http://g2.botva.ru/house.php?info=cage)
назад (http://g2.botva.ru/house.php)
заранее спасиб
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
#include <IE.au3>
Dim $sLogin = 'ваша_почта', $sPass = 'ваш_пароль', $aServer[3] = ['Адын','Дыдва','Тытра'], $iCheck = 0

;~~~~~~~~~~~~~~~~~~~~ Login ~~~~~~~~~~~~~~~~
$oIE = _IECreate("http://g2.botva.ru")
$oForm = _IEGetObjById($oIE,'loginForm')
$oSelect = _IEGetObjById($oForm,'server')
$oLogin = _IEGetObjById($oForm,'email')
$oPass = _IEGetObjById($oForm,'passWord')
$oSelect = _IEGetObjById($oForm,'server')
_IEFormElementOptionSelect ($oSelect, $aServer[1], 1, 'byText')				; выбор сервера (0 - Адын, 1 - Дыдва, 2 - Тытра)
_IEFormElementSetValue($oLogin, $sLogin)									; логин
_IEFormElementSetValue($oPass, $sPass)										; пароль
_IEFormElementCheckBoxSelect($oForm, '1', 'remember', $iCheck, 'byValue')	; 0 - не запоминать данные (по умолчанию) 1 - запоминать данные
_IEFormSubmit($oForm)
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_IELinkClickByText ($oIE, 'Деревня')
_IELinkClickByText ($oIE, 'Жилище')
_IELinkClickByText ($oIE, 'Клетка')
_IEImgClick ($oIE, 'Назад', 'alt')
 
Автор
Ш

Шайтанчег

Новичок
Сообщения
15
Репутация
0
Хех, все оказалось намного проще чем я задумал ) Спасибо.
Но все же если не сложно, подскажите как можно вывести список ссылок страницы при каждом переходе?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Шайтанчег [?]
Но все же если не сложно, подскажите как можно вывести список ссылок страницы при каждом переходе?
Смотря куда вывести?! :smile:
Можно так:
Код:
#include <IE.au3>
#include <Array.au3>
Dim $sLogin = 'ваша_почта', $sPass = 'ваш_пароль', $aServer[3] = ['Адын','Дыдва','Тытра'], $iCheck = 0

;~~~~~~~~~~~~~~~~~~~~ Login ~~~~~~~~~~~~~~~~
$oIE = _IECreate("http://g2.botva.ru")
$oForm = _IEGetObjById($oIE,'loginForm')
$oSelect = _IEGetObjById($oForm,'server')
$oLogin = _IEGetObjById($oForm,'email')
$oPass = _IEGetObjById($oForm,'passWord')
$oSelect = _IEGetObjById($oForm,'server')
_IEFormElementOptionSelect ($oSelect, $aServer[1], 1, 'byText')				; выбор сервера (0 - Адын, 1 - Дыдва, 2 - Тытра)
_IEFormElementSetValue($oLogin, $sLogin)									; логин
_IEFormElementSetValue($oPass, $sPass)										; пароль
_IEFormElementCheckBoxSelect($oForm, '1', 'remember', $iCheck, 'byValue')	; 0 - не запоминать данные (по умолчанию) 1 - запоминать данные
_IEFormSubmit($oForm)
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_LinksDisplay()
_IELinkClickByText ($oIE, 'Деревня')
_LinksDisplay()
_IELinkClickByText ($oIE, 'Жилище')
_LinksDisplay()
_IELinkClickByText ($oIE, 'Клетка')
_LinksDisplay()
_IEImgClick ($oIE, 'Назад', 'alt')

Func _LinksDisplay()
	Local $i = 0
	$oLinks = _IELinkGetCollection ($oIE)
	Dim $aLinks[@extended]
		For $oLink In $oLinks
			$aLinks[$i] = $oLink.href
			$i += 1
		Next
	_ArrayDisplay($aLinks)
EndFunc
 

Davyd

Новичок
Сообщения
7
Репутация
1
В Бодалке $value - Напасть,Искать противника и т.п.

Код:
Func _Clik($value)
	ToolTip("ищу "&$value)
$oInputs = _IETagNameGetCollection($oIE, 'input')
For $oInput In $oInputs
      If $oInput.value = $value Then
         _IEAction($oInput, 'click')
		 _IELoadWait($oIE)
		 ExitLoop
		EndIf
	Next
EndFunc
 

w1zf7r44

Новичок
Сообщения
12
Репутация
0
а как в бодалке нажать кнопку "ИСКАТЬ ПРОТИВНИКА" именно в поиске с параметрами? т.е. чтобы противники попались из нужного диапазона.
 

axlwor

Скриптер
Сообщения
657
Репутация
147
надеюсь это удалят раньше :laugh:
Код:
$oForm = _IEFormGetCollection ($oIE, 1)
$oMin = _IEFormElementGetObjByName ($oForm, "min")
$oMax = _IEFormElementGetObjByName ($oForm, "max")
_IEFormElementSetValue ($oMin, 71)
_IEFormElementSetValue ($oMax, 70)
$oInputs = _IETagNameGetCollection ($oForm, "input")
For $oInput In $oInputs
	$sT = _IEPropertyGet ($oInput, "outerHTML")
	If StringInStr ($sT, "ИСКАТЬ ПРОТИВНИКА") > 0 Then
		_IEAction ($oInput, "click")
		_IELoadWait ($oInput)
		_IELoadWait ($oIE)
	EndIf
Next
 

w1zf7r44

Новичок
Сообщения
12
Репутация
0
я правильно понял что в строчке
Код:
_IEFormGetCollection ($oIE, 1)
единица это индекс формы, т.е. ее номер по порядку? в данном случае это вторая форма?
 

w1zf7r44

Новичок
Сообщения
12
Репутация
0
подскажите команды, функции чтобы выпарсить победителя (АвтоитБот), ну или в каком направлении искать решение?:
Код:
<td colspan="3" align="center" valign="middle" class="font_large">Победитель <span class='font_large bold'>АвтоитБот</span></td>
 

axlwor

Скриптер
Сообщения
657
Репутация
147
команд много. я бы почитал полностью хелп для ie.au3 (там много примеров, показывающих очень много вариантов) и какую нибудь простую книжку по html+java (я листал самоучитель javascript дунаева).
если не нужны объекты ие, а только текст, то как то так
Код:
$sHTML = _IEBodyReadHTML ($oIE)
$sPattern = '(?sim)Победитель.*?>(.*?)<'
$aA = StringRegExp($sHTML, $sPattern, 3)
if @error = 0 then
_arraydisplay($aA)
endif
 

w1zf7r44

Новичок
Сообщения
12
Репутация
0
что значит (?sim) в
Код:
$sPattern = '(?sim)Победитель.*?>(.*?)<'
и откуда это? хтмл, ява или т.п.?
 

axlwor

Скриптер
Сообщения
657
Репутация
147
а это другой раздел хелпа. регэксп - регулярные выражения. Redline написал уроки
 
Верх