Что нового

[World of Tanks] Бот для игры by LTR

LTR

Знающий
Сообщения
55
Репутация
13
Добрый день всем участникам конференции, наткнулся тут на игру Мир танков. Прокачка на низких уровнях проста, но чем выше уровень тем больше времени нужно проводить в игре. Нашел бота, в принципе неплохой но хочется чего то большего, решил написать сам.

Сразу появилось куча вопросов...

1 стоит ли делать гуи для бота
2 как определить координаты в окне игры
3 как можно передать параметры движение, те заставить бота нажимать кнопки


Мэйн файл:
Код:
#comments-start
Бот для игры Мир танков
Обязательное условие, игру необходимо запустить в
оконном режиме с разрешением 1024х768, иначе бот
будет работать не корректно!
Так же для данного бота необходим мод xvm-lite!
Бот предназначен под стандартные бои!
#comments-end

Opt("PixelCoordMode", 2) ; Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ; Отсчет координат мыши от левого верхнего угла клиентской части окна

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

; Пользовательские функции
#include <C:\AutoIT\DropBox\LangFunc.au3>       ; Языковой файл
#include <C:\AutoIT\DropBox\HangarFunc.au3>     ; Логин, элементы ангара
#include <C:\AutoIT\DropBox\BonusFunc.au3>      ; Функции допю функционала
;#include <C:\AutoIT\DropBox\BattelFunc.au3>    ; Стрельба и наведение
;#include <C:\AutoIT\DropBox\SocialFunc.au3>    ; Чат
;#include <C:\AutoIT\DropBox\MoveFunc.au3>      ; Передвижение по карте
;#include <C:\AutoIT\DropBox\HostFunc.au3>      ; Соединение с сервером бота
;#include <C:\AutoIT\DropBox\StrategyFunc.au3>  ; Стратигия боя
;#include <C:\AutoIT\DropBox\StatsFunc.au3>     ; Статистика бота
;#include <C:\AutoIT\DropBox\GUI.au3>           ; GUI

; Задаем горячую клавишу остановки скрипта
HotKeySet ("{`}","_exit")

; Данные переменные будут управляться черещ .ini файл, как результат работы GUI
$MainTanks=1    ; Диапазон значений от 0 до 2
$TankNation=1   ; Диапазон значений от 0 до 6
$TankType=1     ; Диапазон значений от 0 до 5
$TankSelect=1   ; Диапазон значений от 1 до 7
$GoToBattele=1  ; Диапозон значений от 1 до 2

; Активируем окно игры
ToolTip($WinActivate_ln,0,0)
Sleep(2000)
WinActivate("[TITLE:WoT Client]","")
 
; Начинаем основной цикл, пока в нем не вернется лож
While 1
   Select
      ; Если окно не игры не активно
      Case WinActive("[TITLE:WoT Client]","") = 0
         MsgBox(0,$ProgTitle_ln,$MsgWinNotActive_ln,5)
         ExitLoop
      ; Если окно игры активно
      Case Not WinActivate("[TITLE:WoT Client]","") = 0
         ToolTip($WinActive_ln,0,0)
         Sleep(2000)
         _Login()
         sleep(2000)
      ; Проверяем нужно ли выбрать основные танки или нет
      Case Not WinActivate ("[TITLE:WoT Client]","") = 0
         _MainTanks($MainTanks)
      ; Проверяем нужно ли выбрать танки конкретной нации или нет
      Case Not WinActivate ("[TITLE:WoT Client]","") = 0
         _TankNation($TankNation)
      ; Проверяем нужно ли выбирать класс техники
      Case Not WinActivate ("[TITLE:WoT Client]","") = 0
         _TankType($TankType)
      ; Выбираем танк на котором пойдем в бой
      Case Not WinActivate ("[TITLE:WoT Client]","") = 0
         _TankSelect($TankSelect)
      ; Уходим в бой
      Case Not WinActivate ("[TITLE:WoT Client]","") = 0
         _GoToBattele($GoToBattele)
EndSelect
WEnd


На заметку, по разработке массива карты.
Проходимость карты:
0 - не проходимые места
1 - вода
2 - места где возможно понижение скорости(в основном вязкий грунт, болотища, не глубокая вода)
3 - подъемы/спуски
4 - свободно проходимые места(улицы, дороги, поля)
5 - возможно использовать как укрытие(высокие, камни, капитальные строения)
6 - разрушаемое строение(сараи, бараки, заборы)
7 - место с хорошей маскировкой(в основном кусты)

Масштабирование карты:
Размер карты 1000х1000 у.е.
Размер квадрата 100х100 у.е.
Массив геодаты для площади одного квадрата 100х100=10000 у.е., для все карты 1000х1000=1000000у.е.

Формат таблицы массива для геодаты карты
id_maps - пока что нет точного определения
x - значения от 0 до максимальной ширины карты
y - значения от 0 до максимальной высоты карты
cross - проходимость карты от 0 до 7
box - сервисная графа, указывает какой это квадрат
box_snails - сервисная графа, указывает какой это квадрат по улитке(возможно не нужное поле массива)
respawn - точки респауна 0-неможет, 1-обычный бой, 2-встречный бой, 3-штурм(если закономерности в точках появления нет, то поле скорей всего не нужно)

Пример заполнения массива для карты Тундра, обозначение дома на квадрате D2, с указанием координат по улитке D21.

Код:
id_maps=1(например пусть будет карта - Тундра)
x=115
y=305
cross=5(там стоит не разрушаемый дом на этой карте, который можно использовать как укрытие)
box=D2
box_snails=1
respawn=0

Для удобного заполнения карты необходим редактор, в который можно было бы подложкой загрузить фон и разукрасить квадраты, после чего сохранить информацию в массив. В редакторе константами можно обозначить буквы по Х и цифры по Y для генерации поля box, по аналогии сделать и для поля box_snails.

Полученный массив планируется выгружать в формате таблицы SQL, скорее всего для MySQL.
 

Viktor217

Осваивающий
Сообщения
233
Репутация
31
Re: [Автоматизация] Бот для игры Мир танков(WoT)

1 стоит ли делать гуи для бота
2 как определить координаты в окне игры
3 как можно передать параметры движение, те заставить бота нажимать кнопки
1. Стоит
2. Координаты окна или объекта в окне?
3. Например так(Отсылка энтера):
Код:
Send("{ENTER}")
Подробнее в справке...
 
Автор
L

LTR

Знающий
Сообщения
55
Репутация
13
Re: [Автоматизация] Бот для игры Мир танков(WoT)

2 Объекта в окне
UPD:
Разобрался, оказалось все просто, надо было в AutoIt Info зайти в Options->Coord Mode и вы брать Window
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Автоматизация] Бот для игры Мир танков(WoT)

ГУИ делать стоит по простой причине:
1) либо ты вводишь инфу по координатам и тд и тп в гуи и хранишь в ini файле, либо ты вручную перебиваешь все координаты. Полезно в стадии разработки, смотреть Maid-chan в разделе евы.
2) Уже ответили.
3) Уже ответили.
 
Автор
L

LTR

Знающий
Сообщения
55
Репутация
13
Re: [Автоматизация] Бот для игры Мир танков(WoT)

Буду очень признателен если на пальцах объясните как из гуй интерфейса созданного в кодо прирезать действия к кнопкам, буду благодарен.
UPD:
Вообщем решил начать с простого, при помощи кодо создал вот такую простенькое меню управления ботом:
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("BoT", 369, 238, 192, 124)
$Group1 = GUICtrlCreateGroup("Управление клиентом", 8, 8, 185, 129)
$Checkbox1 = GUICtrlCreateCheckbox("Авто вход в игру", 16, 24, 169, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Поиск свободного танка", 16, 40, 169, 25)
$Label1 = GUICtrlCreateLabel("В каком порядке выбирать танк", 16, 64, 169, 17)
GUICtrlCreateInput("", 16, 104, 169, 21)
$Label2 = GUICtrlCreateLabel("(Указать через запятую)", 32, 80, 130, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Управление чатом", 200, 8, 161, 129)
$Checkbox3 = GUICtrlCreateCheckbox("Вкл/Выкл", 208, 24, 145, 17)
$Label3 = GUICtrlCreateLabel("Сообщение", 208, 40, 62, 17)
GUICtrlCreateInput("", 208, 64, 145, 60)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Сохранить настройки", 208, 144, 129, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Запуск", 32, 144, 129, 25, $WS_GROUP)
$Label4 = GUICtrlCreateLabel(" Для работы бота вам необходимо запустить игру в оконом режиме", 8, 176, 353, 17)
$Label5 = GUICtrlCreateLabel("и выставить разрешение 1024х768", 88, 192, 182, 17)
$Label6 = GUICtrlCreateLabel("В противном случае бот не запустится!", 72, 216, 212, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd

Теперь возник вопрос, как сохранить параметры в ini файл?
 
Автор
L

LTR

Знающий
Сообщения
55
Репутация
13
Re: [Автоматизация] Бот для игры Мир танков(WoT)

Опять проблема, подскажите как правильно выбирать окно, просто замерив координаты и цвет авто инфо, скрипт берет эти координаты относительно рабочего стола, как сделать чтоб все действия происходили относительно выбранного окна?

В частности пытаюсь использовать функцию PixelGetColor.

ЗЫ модератор перенеси тему пожалуйста в раздел Боты для игр
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Автоматизация] Бот для игры Мир танков(WoT)

Замени свой While...Wend цикл на этот:
Код:
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            MsgBox(0,0,"Нажата кнопка 'Сохранить настройки')
        Case $Button2
            MsgBox(0,0,"Нажата кнопка 'Запуск')
    EndSwitch
WEnd

Запусти скрипт и нажми первую или ворую кнопку.
 

darkmor

Знающий
Сообщения
4
Репутация
5
Re: [Автоматизация] Бот для игры Мир танков(WoT)

LTR сказал(а):
Опять проблема, подскажите как правильно выбирать окно, просто замерив координаты и цвет авто инфо, скрипт берет эти координаты относительно рабочего стола, как сделать чтоб все действия происходили относительно выбранного окна?

AutoitWindowInfo Option->Coord mode->window

Вначале кода вставь строчку
Код:
Opt("PixelCoordMode", 2)


Таким образом у тебя будет привязка не к координатам экрана, а к координатам активного окна

Кстати а какой функционал ты хочешь реализовать в своем боте и какой уже имеется в том, что ты нашел?
 
Автор
L

LTR

Знающий
Сообщения
55
Репутация
13
Re: [Автоматизация] Бот для игры Мир танков(WoT)

В том который нашел:
- Авто вход в игру при разрыве связи
- Авто выбор танка свободного (из первых 4х слотов)
- Авто вход/выход из боя
- Возможность задать движение танку (очень кривая реализация проще его не задавать вовсе)

Хочу реализовать:
- Движение по координатным вейпонтам (в идеале рандомно, те чтоб движение в каждом бою было уникально)
- Прицельная стрельба (в игре есть функция авто прицела, что значительно упрощает задачу)
- Авто прокачка древа исследований
- Смена танка при прокачке, те если выучили новый, то продаем старый покупаем новый
- Фиксация по уровню, те при докачки до танка определенного уровня эту ветку больше не качать

Ну вообщем задумка такая, но что выйдет не знаю. Так как с АвтоИТом раньше не работал, то сейчас задача сделать функции:
- Авто вход при разрыве связи
- Авто вход/выход из боя
- Смена танка на свободный
 

darkmor

Знающий
Сообщения
4
Репутация
5
Re: [Автоматизация] Бот для игры Мир танков(WoT)

То что ты сейчас хочешь сделать не должно вызвать особых проблем, а вот движение танка... Для того что бы реализовать это тебе придется лезть в память проццесса и узнавать точные координаты, а так же для каждой игровой карты ты должен будешь составить карту всех зон где нельзя проехать. Реализовать это просто титаническая работа, даже на том же поле на карте "Прохоровка" валяется куча камней.
На счет авто прицела, найти красную иконку на экране не такая уж проблема, но к сожалению что бы включить автоприцел нужно ткнуть не по ней а по самому танку. Соответственно на разных дистанциях это расстояние под иконкой будет разным... я уже не говорю о том, что ты должен ткнуть в видимую часть танка, а они обычно прячут свои тушки
Оно того стоит? =)
 
Автор
L

LTR

Знающий
Сообщения
55
Репутация
13
Re: [Автоматизация] Бот для игры Мир танков(WoT)

darkmor сказал(а):
Оно того стоит? =)
Думаю стоит, делая его я просто хочу изучить AutoIT.

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

Авто прицеливание и стрельба это в последнею очередь, простую стрельбу в некуда не вижу смысла делать.
 

darkmor

Знающий
Сообщения
4
Репутация
5
Re: [Автоматизация] Бот для игры Мир танков(WoT)

Карта слишком мелкая, по ней будет почти невозможно определить местоположение танка с той точностью которая необходима для движения. Так же по ней не возможно определить направление движения танка. Можно конечно с самого начала боя зажать пкм что бы башня не поворачивалась и по конусу обзора определять направление движения, но тогда о стрельбе не может быть и речи.
Если хочешь что то написать, думаю будет лучше писать бота для арт сау. Находим на миникарте красный кружок, тыкаем по нему Ctrl+пкм, далее уже на экране начинаем искать иконку танка и по ней стреляем...

Мне кажется ты все же выбрал не ту игру что бы учиться писать ботов. Дело в том, что если бот не будет стрелять то эффективность у него будет нулевой. Если просто стоять на респе то при поражении ты заработаешь 100экспы, при победе 200. На бой у тебя будет уходить как минимум 5 мин, а значит за 10 часов в самом лучшем случае ты заработаешь всего 24000 экспы. Так же хочу заметить, что на танках начиная с 6го лвла ты будешь уходить в минус по кредитам если не будешь стрелять, при чем чем выше лвл тем сильнее минус.
Может лучше попробовать начать с браузерных игр? Ну или на EVE-Online, на данном форуме можно будет найти кучу готовых примеров что бы разобраться в языке.
 
Автор
L

LTR

Знающий
Сообщения
55
Репутация
13
Re: [Автоматизация] Бот для игры Мир танков(WoT)

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

По поводу танков высокого уровня, сейчас я перед собой ставлю задачи использовать только танки до 5 уровня, использовать их чисто для прокачке ветки и получения кредитов. Об авто игре на хай левелах речи не идет, да и на хай левелах интереснее самому уже играть ;)

Насчет САУ спасибо,я как раз думал что с ними все безнадежно, а оказывается нет :smile:
 
Автор
L

LTR

Знающий
Сообщения
55
Репутация
13
Re: [Автоматизация] Бот для игры Мир танков(WoT)

Разобрался с кнопкой, вот выкладываю то что получилось, прошу подсказать где что тут не верно или как можно лучше сделать.
Код:
; -30 ширина верхушки в окне эту велечину нужно отнимать по вертикали
Opt("PixelCoordMode", 2) ; Определяем пиксили от верхнего левого угла окна
Opt("MouseCoordMode",2) ; Определяем положение курсора от левого верхнего угла окна

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("BoT", 369, 238, 192, 124)
$Group1 = GUICtrlCreateGroup("Управление клиентом", 8, 8, 185, 129)
$Checkbox1 = GUICtrlCreateCheckbox("Авто вход в игру", 16, 24, 169, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Поиск свободного танка", 16, 40, 169, 25)
$Label1 = GUICtrlCreateLabel("В каком порядке выбирать танк", 16, 64, 169, 17)
GUICtrlCreateInput("", 16, 104, 169, 21)
$Label2 = GUICtrlCreateLabel("(Указать через запятую)", 32, 80, 130, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Управление чатом", 200, 8, 161, 129)
$Checkbox3 = GUICtrlCreateCheckbox("Вкл/Выкл", 208, 24, 145, 17)
$Label3 = GUICtrlCreateLabel("Сообщение", 208, 40, 62, 17)
GUICtrlCreateInput("", 208, 64, 145, 60)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Сохранить настройки", 208, 144, 129, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Запуск", 32, 144, 129, 25, $WS_GROUP)
$Label4 = GUICtrlCreateLabel(" Для работы бота вам необходимо запустить игру в оконом режиме", 8, 176, 353, 17)
$Label5 = GUICtrlCreateLabel("и выставить разрешение 1024х768", 88, 192, 182, 17)
$Label6 = GUICtrlCreateLabel("В противном случае бот не запустится!", 72, 216, 212, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            MsgBox(0,"Сообщение","Опция недоступна")
        Case $Button2
			WinActivate("[TITLE:W.o.T. Client]","")
			While 1
			; Проверяем активно ли окно игры
			If WinActive("[TITLE:W.o.T. Client]","") Then
				; Если окно активно,проверяем залогинен ли клиент
				$var = PixelGetColor( 1000 , 20 )
				If "000000" = Hex($var, 6) Then
					; Если логин не совершен, совершаем его
					Sleep(3000)
					MouseClick("",512,540,2)
				Else
					; Если залогинен продолжаем наше черное дело
				EndIf
			Else
				MsgBox(0,"Сообщение","Окно игры не активно, бот остановлен")
				ExitLoop
			EndIf
			WEnd
    EndSwitch
WEnd
 

darkmor

Знающий
Сообщения
4
Репутация
5
Re: [Автоматизация] Бот для игры Мир танков(WoT)

Ну раз оно у тебя работает, значит наверно верно? =)

По скольку ты используешь бесконечный цикл, как я понимаю у тебя будут постоянно идти проверки начиная с проверки на активное окно и кончая проверками на состояние в бою или не в бою.
Если записывать все это через конструкцию If... Then у тебя получиться куча вложений в которых будет в дальнейшем проблематично разобраться и что то исправить.
Мне кажется что будет лучше использовать конструкцию Select, для примера
Код:
While 1
sleep(100)
Select
    Case WinActive("[TITLE:W.o.T. Client]","") = 0	; активно ли окно
		MsgBox(0,"Сообщение","Окно игры не активно, бот остановлен")
    Case PixelGetColor( 1000 , 20 ) = 0x000000 ; выполнен ли логин
		Sleep(3000)
		MouseClick("",512,540,2)
    Case ; в ангаре
       ; выбираем технику и идем в бой
    Case ; в бою жив
       ; а что обычно делают в бою?
    Case ; в бою мертв
       ; выходим из боя
EndSelect
Wend
 
Автор
L

LTR

Знающий
Сообщения
55
Репутация
13
Re: [Автоматизация] Бот для игры Мир танков(WoT)

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

Еще такой вопрос, чем можно инициализировать положение клиента кроме функции PixelGetColor ?
 
Автор
L

LTR

Знающий
Сообщения
55
Репутация
13
Re: [Автоматизация] Бот для игры Мир танков(WoT)

Еще вот вопрос, ни как не могу разобраться. Условие не выполняется чего то, дальше первого...
Код:
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            MsgBox(0,"Сообщение","Опция недоступна")
        Case $Button2
			WinActivate("[TITLE:W.o.T. Client]","")
			While 1
			Select				
				; Проверяем активно ли окно игры
				Case WinActive("[TITLE:W.o.T. Client]","") = 0
					;MsgBox(0,"Сообщение","Окно игры не активно, бот остановлен")
					ExitLoop
				; Если окно активно,проверяем залогинен ли клиент
				Case PixelGetColor(1000,20) = 0x000000
					; Если логин не совершен, совершаем его
					Sleep(3000)
					MouseClick("",512,540,2)
				; Проверяем что мы в ангаре
				Case PixelGetColor(516,94) = 0x080000
				; Начинаем выбор танка
				; Проверяем 1 слот
				If PixelGetColor(461,40) = 0xB02022 Then
					Sleep(3000)
					MouseClick("",180,657,5)
					Sleep(3000)
					MouseClick("",511,46,5)
				; Проверяем 2 слот
				ElseIf PixelGetColor(461,40) = 0xB02022 Then
					Sleep(3000)
					MouseClick("",348,657,5)
					Sleep(3000)
					MouseClick("",511,46,5)
				; Проверяем 3 слот
				ElseIf PixelGetColor(461,40) = 0xB02022 Then
					Sleep(3000)
					MouseClick("",511,657,5)
					Sleep(3000)
					MouseClick("",511,46,5)
				EndIf
				; Бой, проверяем живой ли танк
				Case PixelGetColor(7,569) = 0x003500
					Sleep(3000)
					Send("{R 2}")
				Case PixelGetColor(7,569) = 110503
					Sleep(3000)
					Send("{ESC}")
					Sleep(3000)
					MouseClick("",510,372,5)
			EndSelect			
			WEnd
    EndSwitch
WEnd


А так же замечания какие будут
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Автоматизация] Бот для игры Мир танков(WoT)

Дальше первого Case?
P.S. IniWrite или IniWriteSection записывает данные в ини файл.


Добавлено:
Сообщение автоматически объединено:

Код:
Local $Agent = IniRead("Log.ini", "Missions", "Agent", 0)
IniWrite("Log.ini", "Missions", "Agent", $Agent+1)



Добавлено:
Сообщение автоматически объединено:

Вопрос про положение клиента не понял вообще.


Добавлено:
Сообщение автоматически объединено:

И рекомендую пгк заменить на pixelsearch.
 
Автор
L

LTR

Знающий
Сообщения
55
Репутация
13
Re: [Автоматизация] Бот для игры Мир танков(WoT)

Нет, не дальше первого Case, а начиная с выбора танка, но полагаю проблема в том что PGC не верно определяет там цвет, так что решил прислушаться и использовать PS.

С записью в ini стало понятно, правильно ли я определяю checkbox или есть варианты проще/рациональнее?
Код:
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("BoT", 200, 220, 192, 124)
$Group1 = GUICtrlCreateGroup("Управление клиентом", 8, 8, 185, 129)
$AutoRelog = GUICtrlCreateCheckbox("Авто вход в игру", 16, 24, 169, 17)
$ChangTank = GUICtrlCreateCheckbox("Поиск свободного танка", 16, 40, 169, 25)
$Label1 = GUICtrlCreateLabel("В каком порядке выбирать танк", 16, 64, 169, 17)
$SortTank = GUICtrlCreateInput("1,2,3", 16, 104, 169, 21)
$Label2 = GUICtrlCreateLabel("(Указать через запятую)", 32, 80, 130, 17)
$StartBot = GUICtrlCreateButton("Запуск", 32, 154, 129, 25, $WS_GROUP)
$SaveSet = GUICtrlCreateButton("Сохранить настройки", 32, 180, 129, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $SaveSet
			$ARState = GUICtrlRead($AutoRelog)
			$CTState = GUICtrlRead($ChangTank)
			$STState = GUICtrlRead($SortTank)
			If $ARState = 1  Then
				IniWrite("Bot.ini", "ClConfig", "AutoRelogin", 1)
			Else
				IniWrite("Bot.ini", "ClConfig", "AutoRelogin", 0)
			EndIf
			If $CTState = 1  Then
				IniWrite("Bot.ini", "ClConfig", "ChangeTank", 1)
			Else
				IniWrite("Bot.ini", "ClConfig", "ChangeTank", 0)
			EndIf
			IniWrite("Bot.ini", "ClConfig", "SortTank", $STState)
EndSwitch
WEnd


Все время выдает значение 1, не зависимо стоит галочка или нет

Belfigor сказал(а):


Добавлено:
Сообщение автоматически объединено:

Вопрос про положение клиента не понял вообще.




Я как раз имел ввиду, чем можно еще привязаться к участку в клиенте кроме функции пгк, вы мне помогли указав на пс, спасибо!
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Автоматизация] Бот для игры Мир танков(WoT)

Код:
#include <GUIConstantsEx.au3>

Opt('MustDeclareVars', 1)

Example()

Func Example()
    Local $checkCN, $msg
    GUICreate("My GUI Checkbox")  ; will create a dialog box that when displayed is centered

    $checkCN = GUICtrlCreateCheckbox("CHECKBOX 1", 10, 10, 120, 20)

    GUISetState()       ; will display an  dialog box with 1 checkbox

    ; Run the GUI until the dialog is closed
    While 1
        ToolTip(GUICtrlRead($checkCN))
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
EndFunc   ;==>Example

когда галочки нету пишет 1, когда есть пишет 4 в тултипе возле курсора.
 
Верх