Что нового

[Сеть, интернет] Помогите разобраться с IE функциями в боте для садовой империи

volshebstvo

Новичок
Сообщения
16
Репутация
0
Доброе время суток.
Пишу бота для садовой империи в принципе основная часть работы уже проделана. Но в ней есть одна загвоздка. Во время работы скрипта он вылетает с ошибкой:

Код:
$oIE.document.parentWindow.execScript("javascript:for(var i=1;i<=204;i++){cache_me(i,garten.garten_prod[i],garten.garten_kategorie[i]);}", "javascript")^ ERROR


причем бывает, что сразу выскакивает, как только доходит до той части скрипта к которой относится ошибка, а бывает пару раз прогонит по кругу и выдает ошибку.
Помогите исправить эту проблему или подскажите куда копать тут.
Пробовал заменить данную строчку на:
Код:
_IENavigate($oIE, "javascript:for(var i=1;i<=204;i++){cache_me(i,garten.garten_prod[i],garten.garten_kategorie[i]);}", "javascript")

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

выкладываю код программы. помогите кто чем может :smile:

Код:
#include <GUIConstants.au3>
#include <IE.au3>

$oIE = _IECreateEmbedded()
GUICreate(("MyBot"), 1275, 700, 1, 1)
GUISetState(@SW_SHOW)
$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 1275, 700)

While 1
	Login1()
	Sleep(100)
	bot()
	Sleep(100)
	Login2()
	Sleep(100)
	bot()
	Sleep(100)
WEnd

Func bot() ;"ernten" собрать, "giessen" полить, "anpflanzen" посадить.
	_IELoadWait($oIE)
	_IEAction(_IEGetObjById($oIE, "ernten"), "click")
	_IELoadWait($oIE)
	$oIE.document.parentWindow.execScript("javascript:for(var i=1;i<=204;i++){cache_me(i,garten.garten_prod[i],garten.garten_kategorie[i]);}", "javascript")
	Sleep(10000)
	_IEAction(_IEGetObjById($oIE, "anpflanzen"), "click")
	_IELoadWait($oIE)
	$oIE.document.parentWindow.execScript("javascript:for(var i=1;i<=204;i++){cache_me(i,garten.garten_prod[i],garten.garten_kategorie[i]);}", "javascript")
	Sleep(10000)
EndFunc   ;==>bot

Func Login1()
	_IENavigate($oIE, "http://sadowajaimperija.ru/")
	$oForm = _IEFormGetCollection($oIE, 1)
	_IEFormElementSetValue(_IEFormElementGetObjByName($oForm, "server"), "server1")
	_IEFormElementSetValue(_IEFormElementGetObjByName($oForm, "USR"), "test666")
	_IEFormElementSetValue(_IEFormElementGetObjByName($oForm, "dummy"), "123456")
	_IEAction(_IEFormElementGetObjByName($oForm, "submitlogin"), "click")
EndFunc   ;==>Login1
Func Login2()
	_IENavigate($oIE, "http://sadowajaimperija.ru/")
	$oForm = _IEFormGetCollection($oIE, 1)
	_IEFormElementSetValue(_IEFormElementGetObjByName($oForm, "server"), "server1")
	_IEFormElementSetValue(_IEFormElementGetObjByName($oForm, "USR"), "test777")
	_IEFormElementSetValue(_IEFormElementGetObjByName($oForm, "dummy"), "123456")
	_IEAction(_IEFormElementGetObjByName($oForm, "submitlogin"), "click")
EndFunc   ;==>Login2
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Слегка подправил название темы. Теперь есть шанс что к нам заглянут гуру IE функций :smile:
 
Автор
V

volshebstvo

Новичок
Сообщения
16
Репутация
0
надеюсь :smile: а то я скоро себе голову сломаю :smile:
 

Bloodrinker

<Блуждающий...>
Сообщения
228
Репутация
19
а зачем его писать? :smile:
Я на каком-то сайте видел бота для этой игрушки, правда сам не скачивал, мне он не нужен
 
Автор
V

volshebstvo

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

El Panda

Продвинутый
Сообщения
101
Репутация
59
правильнее так:

Код:
$oIE.document.parentWindow.execScript("for(var i=1;i<=204;i++){cache_me(i,garten.garten_prod[i],garten.garten_kategorie[i]);}", "javascript")
 
Автор
V

volshebstvo

Новичок
Сообщения
16
Репутация
0
El Panda, огромное спасибо все заработало, правда не с первого раза. пришлось переустановить аутоит.
 
Верх