Что нового

[Автоматизация] Скрипт для онлайн игры

Inc0gnit0

Новичок
Сообщения
7
Репутация
0
Версия AutoIt: 3.

Описание:

Примечания:

Всем доброго дня, прошу помоши в написании скрипта, коечто сам нашел готовое и переделал под себя но дальше никак не могу доделать то чего мне нехватает, хоче обьединить несколько функции в один скрипт, а то приходиться запускать несколько одновременно Ж)
Вообшем для онлайн игры, сделал вот такой скрипт чтоб повторно с интервалом 1сек нажимался TAB нужно добавит к етому скрипту еше что нажимался повторно другая кнопка(например 0) с интервалом допустим 1 час и так же другая кнопка с интервалом 2 часа
вот примерно так мне нужно
Спасибо заранее

По возможности если можно сделать в графическом интерфейсе и чтоб был хоткей кнопка запуска и стоп :smile:

вот скрипт к которому надо добавить 1 час(кнопка 0) и 2(кнопка 9)
WinWaitActive("имя окна")
While 1 = 1
Send("{TAB}")
Sleep("1000")
WEnd
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 593
Репутация
938
Какая игра? Описание. Ссылку на оффсайт игры, на клиент игры. Скрины. Ну и конечно же нормально оформить первый пост, желательно сперва напечатать его в Word, чтобы люди не смеялись читая нечто типа:
сделал вот такой скрипт чтоб повторно с интервалом 1сек нажимался TAB нужно добавит к етому скрипту еше что нажимался повторно другая кнопка(например 0) с интервалом допустим 1 час и так же другая кнопка с интервалом 2 часа
 
Автор
I

Inc0gnit0

Новичок
Сообщения
7
Репутация
0
А можно без подробностей, просто к моему скрипту добавить то что мне нужно, то что есть написано выполняет нужную мне команду, но вдобавок хочется дополнительно чтоб нажимались еще две клавиши с интервалом 1 час и 2 часа. Какая разница что за игра, факт в том что цикл нажатия клавиши TAB работает.
 

Furrer

Новичок
Сообщения
18
Репутация
3
Видите ли сообщество заинтересованно в росте своей информационности. Темы должны быть интересны для чтения другим пользователям. Если вы предоставите достаточно информации вам охотно помогут :ok:

Сам то я 3 день за фвтоитом... Думаю надо рыть в сторону TimerInit и TimerDiff запускать таймер в начале скрипта а потом в цикле постоянно проверять сколько времени прошло и если пора то делать действие.

Скачайте себе русское руководство http://www.autoitscript.com/autoit3/docs.shtml оно хоть и устаревшее но мне очень помогает.
 
Автор
I

Inc0gnit0

Новичок
Сообщения
7
Репутация
0
Хорошо, есть онлайн игра Kitsu Saga http://kitsusaga.aeriagames.com/ линк на доунлоад http://kitsusaga.aeriagames.com/download
Суть скрипта для бота заключается в том чтобы через определённый интервал времени нажимать на клавишу 0 для того чтобы сменить оружие которое изнашивается после определенного периода времени непрерывного боя. Оставляя допустим на ночь скрипт запушенным, через 3 часа оружие сломано, скрипт посылает команду нажатие клавиши 0 для смены на другое оружие, и бой продолжается дальше. Заранее на хоткей 0 выставляется дополнительное оружие. В игре присутствуют online helper в котором можно задать комбинацию ударов, клавиша TAB переключение между врагами. Я выставлю combo и ложусь спать, но после определенного времени оружие сломано и игрок стоит на месте, теряю время ничего не получаю…
Поэтому хочу автоматизировать скрипт

Пользуюсь скриптом для переключения между целями :

WinWaitActive("Kitsu Saga")
While 1 = 1
Send("{TAB}")
Sleep("800")
WEnd

Нужно к скрипту добавить чтото подобное :

WinWaitActive("Kitsu Saga")
While 1 = 1
Send("{0}")
Sleep("10800000")
WEnd

По отдельности оба скрипта работают одновременно, но хочется объединить . Вот выложил всю суть того что мне надо. Желательно в графическом интерфейсе и хоткей HOME на старт и END на стоп
 
Автор
I

Inc0gnit0

Новичок
Сообщения
7
Репутация
0
ктото поможет?
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Код:
Opt('GuiOnEventMode', 1)

Global Const $GUI_EVENT_CLOSE = -3

$fRun = False

GUICreate('Bot')
$iButton = GUICtrlCreateButton('Start', 10, 10, 200, 40)
GUICtrlSetFont($iButton, 15)
GUICtrlSetBkColor($iButton, 0x00FF00)
GUISetState()

HotKeySet('{End}', '_Run')
GUICtrlSetOnEvent($iButton, '_Run')
GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit')

While 1
	Sleep(1)
WEnd

Func _PressTab()
	Send('{TAB}')
EndFunc

Func _PressNull()
	Send('0')
EndFunc

Func _Run()
	If $fRun Then
		AdlibUnRegister('_PressTab')
		AdlibUnRegister('_PressNull')
		GUICtrlSetData($iButton, 'Start')
		GUICtrlSetBkColor($iButton, 0x00FF00)
		$fRun = False
	Else
		AdlibRegister('_PressTab', 800)
		AdlibRegister('_PressNull', 10800000)
		GUICtrlSetData($iButton, 'Stop')
		GUICtrlSetBkColor($iButton, 0xFF0000)
		$fRun = True
	EndIf
EndFunc

Func _Exit()
	Exit
EndFunc
 
Автор
I

Inc0gnit0

Новичок
Сообщения
7
Репутация
0
Спасибо, но могли бы вы добавить WinWaitActive("Kitsu Saga") чтобы скрипт работал с окном клиента
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Код:
Opt('GuiOnEventMode', 1)

Global Const $GUI_EVENT_CLOSE = -3

$fRun = 0

GUICreate('Bot')
$iButton = GUICtrlCreateButton('Start', 10, 10, 200, 40)
GUICtrlSetFont($iButton, 15)
GUICtrlSetBkColor($iButton, 0x00FF00)
GUISetState()

HotKeySet('{End}', '_Run')
GUICtrlSetOnEvent($iButton, '_Run')
GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit')

While 1
    Sleep(1)
WEnd

Func _PressTab()
     Send('{TAB}')
EndFunc

Func _PressNull()
     Send('0')
EndFunc

Func _Run()
    If $fRun = 1 Then
		$fRun = -1
        AdlibUnRegister('_PressTab')
        AdlibUnRegister('_PressNull')
        GUICtrlSetData($iButton, 'Start')
        GUICtrlSetBkColor($iButton, 0x00FF00)
        $fRun = 0
    ElseIf $fRun = 0 Then
		$fRun = -1
		WinWaitActive("Kitsu Saga")
        AdlibRegister('_PressTab', 800)
        AdlibRegister('_PressNull', 10800000)
        GUICtrlSetData($iButton, 'Stop')
        GUICtrlSetBkColor($iButton, 0xFF0000)
        $fRun = 1
    EndIf
EndFunc

Func _Exit()
    Exit
EndFunc

А вообще ControlSend вам в помощь:
http://autoit-script.ru/index.php/topic,2144.msg15644.html#msg15644
 
Автор
I

Inc0gnit0

Новичок
Сообщения
7
Репутация
0
Спасибо всё работает, но можно попросить вас ещё усложнить немного скрипт. Хочу что кнопка {0} нажималась с интервалом 3 часа примерно раз 20 подряд, так как через 3 часа она нажимается один раз, но в этот момент противник может атаковать, и функция не срабатывает. и по возможности добавить нажатие клавиши {=} с интервалом 20 минут
Огромное вам спасибо
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Добавьте так же, как остальные кнопки.
AdlibRegister, AdlibUnRegister, и функцию с Send.
 
Автор
I

Inc0gnit0

Новичок
Сообщения
7
Репутация
0
PressNull это нажатие клавиши 0 , а клавишу 9 как назвать? и как сделать многоразовое нажатие? чтобы нажималось раз 10-20 подряд без интервала по времени? то есть физичекси в игре я нажимаю клавишу несколько раз подряд чтоб во время боя переключиться на другое оружие
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Inc0gnit0 [?]
PressNull это нажатие клавиши 0 , а клавишу 9 как назвать?
Хоть BillGates назовите, только денег не просите. (c)

чтобы нажималось раз 10-20 подряд без интервала по времени?
Банально: напишите 20 раз подряд Send('9').
Ну или почитайте справку про for-цикл
 

dredik

Новичок
Сообщения
1
Репутация
0
а если функций больше чем 2, как не дать им возможность пересекаться по времени?
 
Верх