Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Объявление переменной

Ответить
Настройки темы
[решено] Объявление переменной

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Решил научиться писать программы на AutoIT и столкнулся с небольшой проблемой объявления переменных. Уверен, исправляеться она просто, но сижу уже сутки и никак сделать немогу, помогите пожалуйста.
Вобщем когда программа была в одном файле и без функций интерфейса GUI все работало нормально, но после GUI попросила объявить некоторые переменные, вот с одной то я и столкнулся, никак объявить не могу, прога пишет
"Variable used without being declared.:" на файле warp.au3 на строке "if $belt=1 Then $y=0"



файл Main.au3
Код: Выделить весь код
#include <GuiConstantsEx.au3>
#include <start.au3>

Opt('MustDeclareVars', 1)
Opt("GUIOnEventMode", 1)

Global $ExitID
Global $number_belt

GUI()


Func GUI()
	Local $YesID

		; GUI
		GuiCreate("AI BOT 1.0", 400, 300)

		; TAB
		GuiCtrlCreateTab(10, 0, 380, 260)
		GuiCtrlCreateTabItem("main")
		GuiCtrlCreateLabel("Number of belts", 20, 40)

				
	$YesID = GUICtrlCreateButton("Start", 10, 260, 100, 30)
	GUICtrlSetOnEvent($YesID, "Start")

	$ExitID = GUICtrlCreateButton("Exit", 290, 260, 100, 30)
	GUICtrlSetOnEvent($ExitID, "OnExit")

	GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")

	GUISetState()  ; display the GUI

	While 1
		Sleep(1000)
	WEnd
EndFunc

Func Start()
	main2()
EndFunc

Func OnExit()
	Exit
EndFunc

файл start.au3
Код: Выделить весь код
WinMove("EVE","",0,0)

#include "attack.AU3"
#include "warp.AU3"

Func main2()
	Local $x
	$x=1
	MsgBox(0,1,"инициализация",2)
	
	Do
		warp($x)
		sleep(30000)
		attack()
		$x=$x+1
	Until $x=GUICtrlRead($numberbelt)

	sleep(2000)
	MsgBox(0,1,"завершение работы программы",2)
EndFunc

файл warp.au3
Код: Выделить весь код
;WinMove("EVE","",0,0)

;инициализация точки 
$WinPos = WinGetPos("EVE")
$tochkaX = $WinPos[0] + 57
$tochkaY = $WinPos[1] + 73

;инициализация меню 
$WinPos = WinGetPos("EVE")
$menuX = $tochkaX + 70
$menuY = $tochkaY + 10

;инициализация меню астероидов
$WinPos = WinGetPos("EVE")
$asteroidX = $menuX + 200
$asteroidY = $menuY + 0

;инициализация первого белта
$WinPos = WinGetPos("EVE")
$beltX = $asteroidX + 190
$beltY = $asteroidY + 3

;функция варпа, передаваемое значение - номер белта
func warp($belt)
	if $belt=1 Then $y=0
	if $belt=2 Then $y=17
	if $belt=3 Then $y=34
	if $belt=4 Then $y=51
	if $belt=5 Then $y=68
	if $belt=6 Then $y=85
	if $belt=7 Then $y=102
	if $belt=8 Then $y=119
	if $belt=9 Then $y=136
	if $belt=10 Then $y=153
	if $belt=11 Then $y=170
			
		MouseClick("left", $tochkaX, $tochkaY, 1, 20)
		sleep (1000)
		MouseClick("left", $menuX, $menuY, 1, 20)
		sleep (1000)
		MouseClick("left", $asteroidX, $asteroidY, 1, 20)
		MouseClick("left", $asteroidX, $asteroidY+$y, 1, 20)
		sleep (1000)
		MouseClick("left", $beltX, $beltY+$y, 1, 20)
	MsgBox(0,1,"варпаем на "& $belt &" астероид",2)
EndFunc

Отправлено: 12:06, 28-06-2009

 

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вобщем сутки не мог решить, а как тему повесил, через час сам сделал. Спс большое за внимание .

Отправлено: 13:07, 28-06-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для SyDr

Старожил


Сообщения: 215
Благодарности: 62

Профиль | Отправить PM | Цитировать


Проверить нормально не могу. Нет файла attack.au3
Во-вторых, зачем всё в отдельных файлах? Ведь предназначение одно?
Может конструкцию if $belt=n Then $y=k заменить на
$y = ($belt-1) * 17

А с "ошибкой" всё просто:
Установлена опция: перeменные должны быть обявлены Opt('MustDeclareVars', 1)
А переменная $y не обявлена.
Перед тем, как использовать её:
В функции Local $y или Dim $y

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин


Отправлено: 13:08, 28-06-2009 | #3


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спс большое, а я все думал, что не объявлена belt и ничего не мог поделать, про игрик вообще не думал.

Отправлено: 13:58, 28-06-2009 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Объявление переменной

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Проверка по переменной ware Скриптовые языки администрирования Windows 18 06-11-2019 01:01
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. NiOl Скриптовые языки администрирования Windows 7 31-01-2019 19:58
Как правильно написать объявление в газету??? Antoniooo Флейм 7 04-10-2009 19:56
[решено] Считывание параметров переменной morgan1991 AutoIt 3 07-03-2009 14:38
объявление при открытии папки DenSha Microsoft Windows NT/2000/2003 2 28-05-2007 16:18




 
Переход