Что нового

[Сеть, интернет] Автовход в игру

Автор
B

B1ad3

Новичок
Сообщения
34
Репутация
0
Medic84 сказал(а):
P.S. Может и сказал бы как, но мне лень регистрироваться :(

Регистрироваться не надо! Пароль и логин верные! Так что глянь;)
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Попробуй
Код:
_LinksClick("main", "Обзор деревень")



P.S. После этого всего советую сменить пароль))
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
B1ad3

menu nowrap - это CSS класс таблицы!
[box]<table class="menu nowrap" ...[/box]
Имя вашего главного фрейма main!
[box]<frame name="main" ...[/box]
В функцию
Код:
_LinksClick("frame_name", "text_link")
нужно просто подставлять два аргумента, имя фрейма и текст ссылки, на которую нужно нажать.
 
Автор
B

B1ad3

Новичок
Сообщения
34
Репутация
0
А как быть если мне, например, надо нажать не на первую ссылку "Достроить до 5 уровня" (Ратушу), а на вторую ссылку "Достроить до 5 уровня" (Склад)???
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
То же самое, только кликнуть по другим ссылкам. В чем заключается проблема?
Код:
_LinksClick("main", "Склад")
_LinksClick("main", "Достроить до 5-го уровня")
 
Автор
B

B1ad3

Новичок
Сообщения
34
Репутация
0
Medic84 сказал(а):
То же самое, только кликнуть по другим ссылкам. В чем заключается проблема?
Код:
_LinksClick("main", "Склад")
_LinksClick("main", "Достроить до 5-го уровня")


проблема в том, что после нажатия на ссылку "Ратуша" нажимается ссылка "Достроить до 5 уровня", которая касается Ратуши, а мне надо, чтобы нажималась другая ссылка "Достроить до 5 уровня", которая касается Склада.

пример выше нажимает на сам склад и всё!
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
B1ad3 вы, как я понял, удалили свой аккаунт?
Ну, да ладно. Выкладываю без проверки, пробуйте, должно сработать:

Код:
; ...
_Login("http://voyna-plemyon.ru", "kiprida", "159357", "Мир 1")
_LinksClick("main", "Ратуша")
_LinksClick("main", "Железная шахта", "Достроить до 10-го уровня")
_LinksClick("main", "Склад", "Достроить до 5-го уровня")
; ...


Код:
; ...
Func _LinksClick($sFrame, $sText, $sAction = "")
	Local $i
	$oFrame = _IEFrameGetObjByName($oIE, $sFrame)
	$oLinks = _IELinkGetCollection($oFrame)
	
	For $oLink in $oLinks
		$sLinkText = _IEPropertyGet($oLink, "innerText")
		
		If $sAction <> "" Then
			If StringInStr($sLinkText, $sText) Then
				_IELinkClickByIndex ($oLink, $i + 1)
				ExitLoop
			EndIf
		Else 
			If StringInStr($sLinkText, $sText) Then
				_IEAction($oLink, "click")
				ExitLoop
			EndIf
		EndIf
		
		$i += 1
	Next
	
	_IELoadWait($oFrame)
EndFunc
; ...
 
Автор
B

B1ad3

Новичок
Сообщения
34
Репутация
0
Нет, я не удалял акк и пароль не менял! Ваш скрипт выше работает;) Еще раз спасибо!:smile:
 

Garrett

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

B1ad3

Новичок
Сообщения
34
Репутация
0
Значит, что-то делаете не так!
Попробуйте использовать _IEFormSubmit

Я уже перепробовал всё. Скрипт выше доходит до того места, где надо нажать "ОК". Он рабочий, попробуйте.
 
Автор
B

B1ad3

Новичок
Сообщения
34
Репутация
0
Код:
$oAttack = _IEGetObjByName($oFrame, "submit")
_IEAction($oAttack, "click")

- если вставить в последнюю функцию - не работает, а если после функции - тоже не работает! Как должен выглядеть скрипт?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
B1ad3 [?]
- если вставить в последнюю функцию - не работает, а если после функции - тоже не работает! Как должен выглядеть скрипт?
Код:
Func _InputXY($sFrame, $sX, $sY)
    $oFrame = _IEFrameGetObjByName($oIE, $sFrame)
    $oX = _IEGetObjById($oFrame, "inputx")
    _IEFormElementSetValue($oX, $sX)
    $oY = _IEGetObjById($oFrame, "inputy")
    _IEFormElementSetValue($oY, $sY)
    $oAttack = _IEGetObjByName($oFrame, "attack")
    _IEAction($oAttack, "click")
	_IELoadWait($oFrame)
	$oAttack  = _IEGetObjByName($oFrame, "submit")
	_IEAction($oAttack, "click")
EndFunc
 
Автор
B

B1ad3

Новичок
Сообщения
34
Репутация
0
:laugh: работает!) ошибка была в том, что я забыл про _IELoadWait($oFrame).

А можно как-то привязать запуск скрипта к времени? (Например, чтобы скрипт запускался в 8:00 утра)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
B1ad3 [?]
А можно как-то привязать запуск скрипта к времени? (Например, чтобы скрипт запускался в 8:00 утра)

Можно.

1. Вариант с планировщиком
2. Вариант с Autoit`ом (на форуме, по-моему, уже обсуждали этот вопрос)

P.S. Вообще-то, задача не сложная ;)
 
Автор
B

B1ad3

Новичок
Сообщения
34
Репутация
0
Тогда вопрос с временем пока отложу. Мне интересно как сделать так, чтобы выполнялась "фукция 1" потом "функция 2" 10 раз, потом "функция 3", а потом опять "функция 2" 10 раз.
если писать каждый раз, например: _LinksClick("main", "Ратуша") и копировать 10 раз - это не удобно :(
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
B1ad3 сказал(а):
Тогда вопрос с временем пока отложу. Мне интересно как сделать так, чтобы выполнялась "фукция 1" потом "функция 2" 10 раз, потом "функция 3", а потом опять "функция 2" 10 раз.
если писать каждый раз, например: _LinksClick("main", "Ратуша") и копировать 10 раз - это не удобно :(

Код:
For $i = 1 To 10
	_LinksClick("main", "Ратуша")
Next


P.S. Сдается мне, что вам нужно было в этот раздел писать пост :smile:
 
Верх