Что нового

рандомная отправка сообщений в игре (W.o.T)

Статус
Закрыто для дальнейших ответов.

nu3dell

Осваивающий
Сообщения
139
Репутация
24
vovka1021
Код:
Opt("PixelCoordMode", 2) ; Определяем пиксили от верхнего левого угла окна
Opt("MouseCoordMode",2) ; Определяем положение курсора от левого верхнего угла окна
Global $Paused
HotKeySet("{F8}", "TogglePause")
HotKeySet("{F9}", '_Quit')
Func TogglePause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
        ToolTip('Бот приостановлен"',0,0,"World of Tanks",5)
    WEnd
    ToolTip("") 
EndFunc   

Func _Quit()
    Exit
EndFunc
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$WoT = GUICreate("Бот для World of Tanks v.0.6.7", 395, 265, 192, 124)
$Client = GUICtrlCreateGroup("", 8, 20, 185, 129)
$AutoRelog = GUICtrlCreateCheckbox("Авто вход в игру", 16, 34, 169, 17)
$ChangTank = GUICtrlCreateCheckbox("Поиск свободного танка", 16, 50, 169, 25)
$SortLabel = GUICtrlCreateLabel("В каком порядке выбирать танк", 16, 74, 169, 17)
$SortTank = GUICtrlCreateInput("", 16, 115, 169, 21)
$Label2 = GUICtrlCreateLabel("( 1,2,3,4 )", 75, 90, 100, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label8 = GUICtrlCreateLabel("= = Управление чатом = =", 220, 8, 153, 17)
GUICtrlSetColor(-1, 0xFF0000)
$Group2 = GUICtrlCreateGroup("", 200, 20, 185, 129)
$Checkbox3 = GUICtrlCreateCheckbox("Вкл/Выкл", 208, 34, 145, 17)
;$Label3 = GUICtrlCreateLabel("= = Сообщение = =", 240, 54, 100, 17)
$1txt=GUICtrlCreateInput("Сори парни, отойду на секунду.", 208, 60, 166, 20)
$2txt=GUICtrlCreateInput("Пацаны у вас инет лагает?", 208, 90, 166, 20)
$3txt=GUICtrlCreateInput("Ребят я отойду на секунду.", 208, 120, 166, 20)
GUICtrlCreateGroup("", -99, -99, 1, 1)
;$SaveSet = GUICtrlCreateButton("Сохранить настройки", 208, 144, 129, 25, $WS_GROUP)
$StartBot = GUICtrlCreateButton("Запуск", 130, 164, 129, 25, $WS_GROUP)
$Label4 = GUICtrlCreateLabel(" Для работы бота вам необходимо запустить игру в оконом режиме", 15, 200, 353, 17)
$Label5 = GUICtrlCreateLabel("и выставить разрешение 1024х768", 105, 220, 182, 17)
$Label6 = GUICtrlCreateLabel("В противном случае бот не запустится!", 95, 240, 212, 17)
GUICtrlSetColor(-1, 0xFF0000)
$Label7 = GUICtrlCreateLabel("= = Управление клиентом = =", 25, 8, 153, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        ; попытка сохранять параметры в Ini
        ;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)
;запуск бота
    Case $StartBot
		If PixelGetColor(1000,20) = 0x000000 then
		IF GUICtrlRead($Checkbox3)=$GUI_CHECKED Then
			  Sleep(3000)
                    MouseClick("",512,540,2)
                    Sleep(3000)
				EndIf
				EndIf
;активируем окно игры
            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)
                    Sleep(3000)
;Проверяем что мы в ангаре
                Case PixelGetColor(516,94) = 0x100000
;Начинаем выбор танка
                Case Not WinActive("[TITLE:W.o.T. Client]","") = 0
;Проверяем 1 слот
;активно в бой
                If (PixelGetColor(461,40) == 0xB02022) Then
                    Sleep(3000)
                    MouseClick("",315,640,5) ;выбор 1-го танка
                    Sleep(3000)
                    MouseClick("",511,46,5)  ;в бой
;1 в бою белая + в бою красная - переключаемся на 2
                ElseIf (PixelGetColor(355,644) == 0xCEC7A7) and (PixelGetColor(551,464) == 0x980202) Then
                    Sleep(3000)
                    MouseClick("",480,640,5) ;выбор 2-го танка
                    Sleep(3000)
                    MouseClick("",511,46,5)  ;в бой
;2 в бою + в бою красная - переключаемся на 3
                ElseIf (PixelGetColor(525,644) == 0xCEC7A7) and (PixelGetColor(551,464) == 0x980202) Then
                    Sleep(3000)
                    MouseClick("",655,640,5) ;выбор 3-го танка
                    Sleep(3000)
                    MouseClick("",511,46,5)  ;в бой
;3 в бою + в бою красная - переключаемся на 4
                ElseIf (PixelGetColor(695,644) == 0xCEC7A7) and (PixelGetColor(551,464) == 0x980202) Then
                    MouseClick("",820, 640,5) ;выбор 4-го танка
                    Sleep(3000)
                    MouseClick("",511,46,5)  ;в бой
;4 в бою + в бою красная - переключаемся на 1
                ElseIf (PixelGetColor(865, 644) == 0xCDC7A7) and (PixelGetColor(551,464) == 0x980202) Then
                    MouseClick("",315,640,5) ;выбор 1-го танка
;двигатель
                ElseIf PixelGetColor(29,590) = 0xF00000 Then
                    Sleep(1000)
                    Send('{esc}')
                    Sleep(3000)
                    MouseClick("",573,361,2) ; выход в ангар
                    Sleep(2000)
                    MouseClick("",573,361,2)
                    Sleep(3000)
                    MouseClick("",556,428,2) ;да
                    Sleep(2000)
                    MouseClick("",556,428,2)
;окно статистики
                ElseIf PixelGetColor(144,143) = 0xCDC8AB Then
                    MouseClick("",960,151,2) ;нажать крестик
                    Sleep(2000)
                    MouseClick("",960,151,2)    
;Параметры боя
                ElseIf PixelGetColor(85,546) = 0x007500 Then
                    sleep(5000)
                    Send('')
                    Send('')
                    Send('')
                    Send('')
                    sleep(5000)
                EndIf
;отправка сообщений если стоит галка и нашли нужный цвет
                 IF PixelGetColor(564, 45) == 0x007500 then

          IF GUICtrlRead($Checkbox3)=$GUI_CHECKED Then
          $rnd=Random(1,3,1)
          Else
         $rnd=GUICtrlRead($Checkbox3)
         EndIf
            IF $rnd=1 Then
                Send('{Enter}')
                Sleep(200)
               Send(GUICtrlRead($1txt))
               Sleep(200)
               Send('{Enter}')
           ElseIf $rnd=2 Then
               Send('{Enter}')
               Sleep(200)
               Send(GUICtrlRead($2txt))
               Sleep(200)
               Send('{Enter}')
           ElseIf $rnd=3 Then
               Send('{Enter}')
               Sleep(200)
               Send(GUICtrlRead($3txt))
               Sleep(200)
               Send('{Enter}')
           EndIf
           EndIf
            EndSelect          
            WEnd
    EndSwitch
WEnd
 
Автор
V
Сообщения
47
Репутация
-1
все равно заходит не зависимо от чекбокса
 

nu3dell

Осваивающий
Сообщения
139
Репутация
24
конечно заходит, я лох :rofl:стояло $checkbox3, а не $AutoRelog
Код:
Opt("PixelCoordMode", 2) ; Определяем пиксили от верхнего левого угла окна
Opt("MouseCoordMode",2) ; Определяем положение курсора от левого верхнего угла окна
Global $Paused
HotKeySet("{F8}", "TogglePause")
HotKeySet("{F9}", '_Quit')
Func TogglePause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
        ToolTip('Бот приостановлен"',0,0,"World of Tanks",5)
    WEnd
    ToolTip("") 
EndFunc   

Func _Quit()
    Exit
EndFunc
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$WoT = GUICreate("Бот для World of Tanks v.0.6.7", 395, 265, 192, 124)
$Client = GUICtrlCreateGroup("", 8, 20, 185, 129)
$AutoRelog = GUICtrlCreateCheckbox("Авто вход в игру", 16, 34, 169, 17)
$ChangTank = GUICtrlCreateCheckbox("Поиск свободного танка", 16, 50, 169, 25)
$SortLabel = GUICtrlCreateLabel("В каком порядке выбирать танк", 16, 74, 169, 17)
$SortTank = GUICtrlCreateInput("", 16, 115, 169, 21)
$Label2 = GUICtrlCreateLabel("( 1,2,3,4 )", 75, 90, 100, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label8 = GUICtrlCreateLabel("= = Управление чатом = =", 220, 8, 153, 17)
GUICtrlSetColor(-1, 0xFF0000)
$Group2 = GUICtrlCreateGroup("", 200, 20, 185, 129)
$Checkbox3 = GUICtrlCreateCheckbox("Вкл/Выкл", 208, 34, 145, 17)
;$Label3 = GUICtrlCreateLabel("= = Сообщение = =", 240, 54, 100, 17)
$1txt=GUICtrlCreateInput("Сори парни, отойду на секунду.", 208, 60, 166, 20)
$2txt=GUICtrlCreateInput("Пацаны у вас инет лагает?", 208, 90, 166, 20)
$3txt=GUICtrlCreateInput("Ребят я отойду на секунду.", 208, 120, 166, 20)
GUICtrlCreateGroup("", -99, -99, 1, 1)
;$SaveSet = GUICtrlCreateButton("Сохранить настройки", 208, 144, 129, 25, $WS_GROUP)
$StartBot = GUICtrlCreateButton("Запуск", 130, 164, 129, 25, $WS_GROUP)
$Label4 = GUICtrlCreateLabel(" Для работы бота вам необходимо запустить игру в оконом режиме", 15, 200, 353, 17)
$Label5 = GUICtrlCreateLabel("и выставить разрешение 1024х768", 105, 220, 182, 17)
$Label6 = GUICtrlCreateLabel("В противном случае бот не запустится!", 95, 240, 212, 17)
GUICtrlSetColor(-1, 0xFF0000)
$Label7 = GUICtrlCreateLabel("= = Управление клиентом = =", 25, 8, 153, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        ; попытка сохранять параметры в Ini
        ;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)
;запуск бота
    Case $StartBot
        If PixelGetColor(1000,20) = 0x000000 then
        IF GUICtrlRead($AutoRelog)=$GUI_CHECKED Then
              Sleep(3000)
                    MouseClick("",512,540,2)
                    Sleep(3000)
                EndIf
                EndIf
;активируем окно игры
            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)
                    Sleep(3000)
;Проверяем что мы в ангаре
                Case PixelGetColor(516,94) = 0x100000
;Начинаем выбор танка
                Case Not WinActive("[TITLE:W.o.T. Client]","") = 0
;Проверяем 1 слот
;активно в бой
                If (PixelGetColor(461,40) == 0xB02022) Then
                    Sleep(3000)
                    MouseClick("",315,640,5) ;выбор 1-го танка
                    Sleep(3000)
                    MouseClick("",511,46,5)  ;в бой
;1 в бою белая + в бою красная - переключаемся на 2
                ElseIf (PixelGetColor(355,644) == 0xCEC7A7) and (PixelGetColor(551,464) == 0x980202) Then
                    Sleep(3000)
                    MouseClick("",480,640,5) ;выбор 2-го танка
                    Sleep(3000)
                    MouseClick("",511,46,5)  ;в бой
;2 в бою + в бою красная - переключаемся на 3
                ElseIf (PixelGetColor(525,644) == 0xCEC7A7) and (PixelGetColor(551,464) == 0x980202) Then
                    Sleep(3000)
                    MouseClick("",655,640,5) ;выбор 3-го танка
                    Sleep(3000)
                    MouseClick("",511,46,5)  ;в бой
;3 в бою + в бою красная - переключаемся на 4
                ElseIf (PixelGetColor(695,644) == 0xCEC7A7) and (PixelGetColor(551,464) == 0x980202) Then
                    MouseClick("",820, 640,5) ;выбор 4-го танка
                    Sleep(3000)
                    MouseClick("",511,46,5)  ;в бой
;4 в бою + в бою красная - переключаемся на 1
                ElseIf (PixelGetColor(865, 644) == 0xCDC7A7) and (PixelGetColor(551,464) == 0x980202) Then
                    MouseClick("",315,640,5) ;выбор 1-го танка
;двигатель
                ElseIf PixelGetColor(29,590) = 0xF00000 Then
                    Sleep(1000)
                    Send('{esc}')
                    Sleep(3000)
                    MouseClick("",573,361,2) ; выход в ангар
                    Sleep(2000)
                    MouseClick("",573,361,2)
                    Sleep(3000)
                    MouseClick("",556,428,2) ;да
                    Sleep(2000)
                    MouseClick("",556,428,2)
;окно статистики
                ElseIf PixelGetColor(144,143) = 0xCDC8AB Then
                    MouseClick("",960,151,2) ;нажать крестик
                    Sleep(2000)
                    MouseClick("",960,151,2)    
;Параметры боя
                ElseIf PixelGetColor(85,546) = 0x007500 Then
                    sleep(5000)
                    Send('')
                    Send('')
                    Send('')
                    Send('')
                    sleep(5000)
                EndIf
;отправка сообщений если стоит галка и нашли нужный цвет
                 IF PixelGetColor(564, 45) == 0x007500 then

          IF GUICtrlRead($Checkbox3)=$GUI_CHECKED Then
          $rnd=Random(1,3,1)
          Else
         $rnd=GUICtrlRead($Checkbox3)
         EndIf
            IF $rnd=1 Then
                Send('{Enter}')
                Sleep(200)
               Send(GUICtrlRead($1txt))
               Sleep(200)
               Send('{Enter}')
           ElseIf $rnd=2 Then
               Send('{Enter}')
               Sleep(200)
               Send(GUICtrlRead($2txt))
               Sleep(200)
               Send('{Enter}')
           ElseIf $rnd=3 Then
               Send('{Enter}')
               Sleep(200)
               Send(GUICtrlRead($3txt))
               Sleep(200)
               Send('{Enter}')
           EndIf
           EndIf
            EndSelect          
            WEnd
    EndSwitch
WEnd
 
Автор
V
Сообщения
47
Репутация
-1
и еще надо удалить 4 строчки ниже. а то они дублируют


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

вот рабочий вариант
Код:
;Если окно активно,проверяем залогинен ли клиент					
		Case PixelGetColor(1000,20) = 0x000000
;проверяем стоит ли галка					
                If GUICtrlRead($AutoRelog)=$GUI_CHECKED Then
                    Sleep(3000)
                    MouseClick("",512,540,2)
                    Sleep(3000)
                EndIf



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

осталось прикрутить стрельбу с наведением. вот только знаний у меня на это не хватит. весь форум пролазил, рабочий вариант не нашел.
может кто нибуть поможет????
 
Автор
V
Сообщения
47
Репутация
-1
вот итоговый вариант. отправляет рандомно раз в 60 секунд пока уровень жизни зеленый
Код:
;отправка сообщений рандомно в 60 секунд
			    Case PixelGetColor(207,530) = 0x007400
				If GUICtrlRead($Checkbox3)==$GUI_CHECKED Then
                	$rnd=Random(1,3,1)
	            Else
					$rnd=GUICtrlRead($Checkbox3)
                EndIf
                If $rnd=1 Then
					Send('{Enter}')
                    Send(GUICtrlRead($1txt))
                    sleep(1000)
                    Send('{Enter}')
					Sleep(60000)
                ElseIf $rnd=2 Then
                    Send('{Enter}')
                    Send(GUICtrlRead($2txt))
                    sleep(1000)
                    Send('{Enter}')
					Sleep(60000)
                ElseIf $rnd=3 Then
					Send('{Enter}')
                    Send(GUICtrlRead($3txt))
                    sleep(1000)
                    Send('{Enter}')
                    Sleep(60000)
			    EndIf
 
Автор
V
Сообщения
47
Репутация
-1
подскажите, где ошибка в этом коде: ==>>
Код:
Case PixelGetColor(13,530) = 0x006E00
If GUICtrlRead($AutoDrivingTank)=$GUI_CHECKED Then
	$var=Random(Random(1,3,1)
Else
	$var=GUICtrlRead($AutoDrivingTank)
EndIf
If $var=1 Then; елсли 1 то
    Send ("{left Down}")        ;Нажать клавишу left
Sleep(Random(1500, 3500))       ;Держать ~10сек.
    Send ("{left Up}")              ;Освободить клавишу left
ElseIf $var=2 Then; елсли 2 то
    Send ("{right Down}")          ;Нажать клавишу right
Sleep(Random(1500, 3500))       ;Держать ~10сек.
    Send ("{right Up}")              ;Освободить клавишу right
ElseIf $var=3 Then; елсли 3 то
    Send ("{up Down}")          ;Нажать клавишу up
    Sleep (500)                     ;Держать ~10сек.
    Send ("{up Up}")              ;Освободить клавишу up
EndIf
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Как правильно называть темы
http://autoit-script.ru/index.php/topic,6125.0.html
"рандомная отправка сообщений в игре (W.o.T)" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, Модератор раздела.
 
Автор
V
Сообщения
47
Репутация
-1
уважаемый модератор! а как по вашему нужно назвать тему? рандомная отправка сообщений в игре (W.o.T) помоему самое подходящее.
Лучше бы помогли, вместо того чтобы привязываться к названию темы!
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Не имеет значение как оно по вашему. Если бы все было так как кажется лучше для пользователей, половина тем бы называлась тут примерно так: "ывомфрпавфрмцвфорав". Вот для незрячих: http://autoit-script.ru/index.php/topic,6125.0.html
Есть шаблон, все темы не в соответствии с шаблоном закрываются.



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

А все, вспомнил, я уже закрывал твои темы т.к. там были "нормальные названия на твой взгляд". Тема закрыта.
 
Статус
Закрыто для дальнейших ответов.
Верх