Что нового

пауза скрипта

andreitrane

Новичок
Сообщения
141
Репутация
3
сделал паузу скрипта на хоткей вот так
Код:
HotKeySet("{F9}", "_Pause")
Global $Paused
Func _Pause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
		WEnd
EndFunc

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

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
andreitrane
непонятно, о чем ты. каким образом ты хочешь выключить скрипт? если через иконку в трее, то скрипт выключается оттуда. если через другой хоткей, то объяви его, будет выключаться и через него.
Код:
HotKeySet('^p', '_Pause')
HotKeySet('^q', '_Quit')

Global $Paused = 0
$i = 1
While 1
	ConsoleWrite($i & @CRLF)
	Sleep(200)
	$i += 1
WEND
Func _Pause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
	WEnd
EndFunc

Func _Quit()
	Exit
EndFunc
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
нет, мне надо чтобы функция скрипта выключилась, а программа не выключилась, ну например: включил функцию, которая занимает много времени, но вдруг тебе надо выключить выполнение первой функции и включить другую, а с моим примером нельзя включить другую функцию, при нажатии на хоткей ставится на паузу первая функция (другие функции не включаются), а при повторном нажатии функция возобновляется
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
andreitrane
ты теряешься в терминологии, а заодно путаешь всех остальных. что значит выключение функции? поставить на паузу?
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
да, признаю что я путаюсь ;D
вот небольшой пример
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Form2", 125, 117, 531, 363)
$Button1 = GUICtrlCreateButton("Button1", 8, 16, 97, 33)
$Button2 = GUICtrlCreateButton("Button2", 8, 56, 97, 33)
GUISetState(@SW_SHOW)
HotKeySet("{F9}", "_Pause")
Global $Paused
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
case $button1
sleep(100000000)
case $button2
sleep(10000)

	EndSwitch
WEnd
Func _Pause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
		WEnd
EndFunc

при нажатии на button1 идет очень длиииительный сон, если нажать на F9, сон поставится на паузу, но при этом почему то нельзя будет нажать на button2, то есть нельзя включить другую функцию

вот я и спрашиваю как поставить на хоткей не паузу, а выключение функции на button (exit не подойдет, потому что тогда form вообще выключается), чтобы можно было включить другую функцию
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
andreitrane [?]
вот небольшой пример
крайне неудачный. такое большое кол-во слипов. приведи реальный свой скрипт. а то, че зря воду в ступе толочь
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
скрипт длинный, ну ладно... очень часто надо выключить функцию _startfakebattle(в самом низу) и включить другую, но при нажатии на F9 эта функция просто ставится на паузу, а не выключается, и поэтому (из за отсутствия многопоточности) нельзя нажать на другую кнопку и включить другую функцию.... даже нельзя тупо выключить программу, пока _startfakebattle() стоит на паузе...
Код:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=d:\Рабочий стол\БОТ!!!\формы ботов\рейд v1.5.kxf
$sINI = @ScriptDir & '\reid-config.ini'
$sInput1 = IniRead($sINI, "Config", "ID", "")
$sInput2 = IniRead($sINI, "Config", "Auth", "")
$reidi = GUICreate("Рейды v1.6", 463, 503, 164, 159)
GUISetBkColor(0xE3E3E3)
$Group1 = GUICtrlCreateGroup("Авторизация", 8, 0, 121, 105)
$Label1 = GUICtrlCreateLabel("Введите свой ID", 16, 16, 87, 17)
$IDinput = GUICtrlCreateInput($sInput1, 16, 32, 105, 21)
$Label2 = GUICtrlCreateLabel("Введите свой Auth", 16, 56, 98, 17)
$Authinput = GUICtrlCreateInput($sInput2, 16, 72, 105, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Боссы", 8, 144, 449, 313)
$Label3 = GUICtrlCreateLabel("Выберите босса", 16, 160, 87, 17)
$Combo1 = GUICtrlCreateCombo("Кирпич", 112, 160, 129, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Сизый|Махно|Лютый|Шайба")
$Group3 = GUICtrlCreateGroup("Одиночный бой", 16, 304, 225, 81)
$onefightbtn = GUICtrlCreateButton("Начать бой", 24, 336, 73, 25)
$Label4 = GUICtrlCreateLabel("Чем ударить", 120, 312, 69, 17)
$Combo2 = GUICtrlCreateCombo("Пырнуть финкой", 104, 328, 129, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Шмальнуть из самопала|Подкинуть яда")
$gunusebtn = GUICtrlCreateButton("Ударить", 104, 352, 129, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group4 = GUICtrlCreateGroup("Массовая атака", 16, 384, 225, 65)
$Label5 = GUICtrlCreateLabel("Задержка", 24, 400, 55, 17)
$zaderreid = GUICtrlCreateInput("мин.", 24, 416, 65, 21)
$Label6 = GUICtrlCreateLabel("Число атак", 96, 400, 62, 17)
$kolvoi = GUICtrlCreateInput("2", 96, 416, 73, 21)
$massfightbtn = GUICtrlCreateButton("Начать", 168, 416, 65, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group6 = GUICtrlCreateGroup("Автоматический бой", 16, 184, 225, 121)
$Label7 = GUICtrlCreateLabel("Введите время", 24, 200, 81, 17)
$voprmsg = GUICtrlCreateButton("?", 104, 200, 17, 17)
$Label8 = GUICtrlCreateLabel("Кирпич", 24, 216, 40, 17)
$kirpich = GUICtrlCreateInput("", 72, 216, 49, 21)
$Label14 = GUICtrlCreateLabel("Сизый", 24, 240, 37, 17)
$sizii = GUICtrlCreateInput("", 72, 240, 49, 21)
$Label15 = GUICtrlCreateLabel("Махно", 128, 216, 36, 17)
$mahno = GUICtrlCreateInput("", 176, 216, 49, 21)
$Label16 = GUICtrlCreateLabel("Лютый", 128, 240, 39, 17)
$lutii = GUICtrlCreateInput("", 176, 240, 49, 21)
$Label17 = GUICtrlCreateLabel("Атака", 24, 272, 34, 17)
$bossid = GUICtrlCreateInput("", 64, 272, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
$startlogicbtn = GUICtrlCreateButton("Начать", 128, 272, 65, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group7 = GUICtrlCreateGroup("Атака с фейков", 248, 160, 201, 289)
$fakelist = GUICtrlCreateEdit("", 256, 176, 185, 201)
$fakefile = GUICtrlCreateButton("Из файла", 288, 384, 113, 25)
$startfakebattlebtn = GUICtrlCreateButton("Начать", 288, 416, 113, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label9 = GUICtrlCreateLabel("by andreitrane (maniakk)", 120, 464, 222, 32)
GUICtrlSetFont(-1, 16, 400, 0, "Matura MT Script Capitals")
GUICtrlSetColor(-1, 0x000000)
$savebtn = GUICtrlCreateButton("save", 24, 112, 81, 17)
$Group5 = GUICtrlCreateGroup("Информация", 136, 0, 321, 145)
$Label10 = GUICtrlCreateLabel("Жизнь:", 144, 16, 42, 17)
$hpboss = GUICtrlCreateLabel("", 192, 16, 38, 17)
$Label11 = GUICtrlCreateLabel("Финок:", 144, 32, 42, 17)
$gunfin = GUICtrlCreateLabel("", 192, 32, 33, 17)
$Label12 = GUICtrlCreateLabel("Самопалов:", 144, 48, 64, 17)
$gunsam = GUICtrlCreateLabel("", 216, 48, 41, 17)
$Label13 = GUICtrlCreateLabel("Ядов:", 144, 64, 33, 17)
$gunjad = GUICtrlCreateLabel("", 176, 64, 36, 17)
$newinfbtn = GUICtrlCreateButton("Обновить", 144, 80, 89, 17)
$logboss = GUICtrlCreateEdit("", 280, 8, 169, 129, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
HotKeySet("{F9}", "_Pause")
Global $Paused
#EndRegion ### END Koda GUI section ###


	$oIEErrorHandler = ObjEvent("AutoIt.Error","ComErrFunc")


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
			Case $savebtn  ;сохраняем данные
			$sINI = @ScriptDir & '\reid-config.ini'
			$IDsave = IniWrite($sINI, "Config", "ID", GUICtrlRead(StringStripWS($IDinput, 3)))
            $Authsave = IniWrite($sINI, "Config", "Auth", GUICtrlRead(StringStripWS($Authinput, 3)))
			GUICtrlSetData($logboss, "данные сохранены"& @CRLF, @CRLF)
		Case $onefightbtn ; одиночный бой
			_onefight()
		Case $gunusebtn ;использование оружия
			_gunuse()
		Case $massfightbtn ; массовая атака
			_massfight()
		Case $newinfbtn ; обновление инфы
			_newinf()
		Case $voprmsg
			MsgBox(0, "Автоматический бой", "Автоматический бой - это прохождение по всем боссам, пока не кончатся ключи. Чтобы начать, надо обязательно ввести время, за которое вы бьете каждого босса. Время вводить в минутах.")
		Case $startlogicbtn ; автоматический бой
			_kirpich()
		case $fakefile ;фейки из файла
			_fakefile()
		case $startfakebattlebtn ;атака с фейков
			$fakesedit = guictrlread($fakelist)
			if $fakesedit = "" then $fakesedit = _fakefile()
		_startfakebattle()


	EndSwitch
WEnd

Func _Pause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
		WEnd
EndFunc
Func _newinf()
	$ID = GUICtrlRead($IDinput)
			$Auth = GUICtrlRead($Authinput)
			$URL = "http://109.234.155.198/prison/universal.php?getBoss"
            $PostData = "sig=c10d5872fc1d0c8f7d6441e5ac9e1b8b&key="& $Auth &"&user="& $ID &"&method=getBoss"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
        $oHTTP.WaitForResponse
        $Response = $oHTTP.ResponseText
		$infifresponseerr = $oIEErrorHandler
		$slife = StringRegExpReplace($Response, '(?s).*?<h_now>(\d+)</h_now>?.*', '\1')
		$sfin = StringRegExpReplace($Response, '(?s).*?<id>4</id>.*?(?s).*?<num>(\d+)</num>?.*', '\1')
		$ssam = StringRegExpReplace($Response, '(?s).*?<id>5</id>.*?(?s).*?<num>(\d+)</num>?.*', '\1')
		$sjad = StringRegExpReplace($Response, '(?s).*?<id>6</id>.*?(?s).*?<num>(\d+)</num>?.*', '\1')
		GUICtrlSetData($hpboss, $slife)
		GUICtrlSetData($gunfin, $sfin)
		GUICtrlSetData($gunsam, $ssam)
		GUICtrlSetData($gunjad, $sjad)
EndFunc
Func _onefight() ; одиночный бой
	$boss = GUICtrlRead($Combo1)
			$ID = GUICtrlRead($IDinput)
			$Auth = GUICtrlRead($Authinput)
			if $boss = "Кирпич" Then $boss = 1
			if $boss = "Сизый" Then $boss = 2
			if $boss = "Махно" Then $boss = 3
			if $boss = "Лютый" Then $boss = 4
			if $boss = "Шайба" Then $boss = 5
            ; к списку боссов (окно боя)
			$URL = "http://109.234.155.198/prison/universal.php?getBoss"
            $PostData = "sig=c10d5872fc1d0c8f7d6441e5ac9e1b8b&user="& $ID &"&key="& $Auth &"&method=getBoss"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			Sleep(1000)
			;начало боя
			$URL = "http://188.93.20.139/prison/universal.php?startBattle"
            $PostData = "boss%5Fid="& $boss &"&sig=92947deba2fe5e118c41f3436bf23906&key="& $Auth &"&user="& $ID &"&method=startBattle"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000,100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			Sleep(1000)
			GUICtrlSetData($logboss, "вы напали на босса ^_^"& @CRLF, @CRLF) ; запись в лог
			; удар босса
			$URL = "http://109.234.155.198/prison/universal.php?hitBoss"
            $PostData = "boss%5Fid="& $boss &"&spell%5Fid=3&sig=646d316a32bd2943ff57c0e88fdf2243&key="& $Auth &"&user="& $ID &"&method=hitBoss"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			Sleep(1000)
			_newinf()
	EndFunc
Func _gunuse()
	;использование оружия
	$ID = GUICtrlRead($IDinput)
		$Auth = GUICtrlRead($Authinput)
		$gun = GUICtrlRead($Combo2)
		$boss = GUICtrlRead($Combo1)
		if $gun = "Пырнуть финкой" Then $gun = 4
		if $gun = "Шмальнуть из самопала" Then $gun = 5
		if $gun = "Подкинуть яда" Then $gun = 6
		if $boss = "Кирпич" Then $boss = 1
		if $boss = "Сизый" Then $boss = 2
		if $boss = "Махно" Then $boss = 3
		if $boss = "Лютый" Then $boss = 4
		if $boss = "Шайба" Then $boss = 5

		$URL = "http://109.234.155.198/prison/universal.php?hitBoss"
            $PostData = "boss%5Fid="& $boss &"&spell%5Fid="& $gun &"&sig=646d316a32bd2943ff57c0e88fdf2243&key="& $Auth &"&user="& $ID &"&method=hitBoss"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			Sleep(1000)
			_newinf()
			GUICtrlSetData($logboss, "вы ударили босса"& @CRLF, @CRLF) ;запись в лог
		EndFunc
		Func _massfight()  ;массова атака
			$boss = GUICtrlRead($Combo1)
			$ID = GUICtrlRead($IDinput)
			$Auth = GUICtrlRead($Authinput)
			$kolvo = GUICtrlRead($kolvoi)
		    if $boss = "Кирпич" Then $boss = 1
		    if $boss = "Сизый" Then $boss = 2
		    if $boss = "Махно" Then $boss = 3
		    if $boss = "Лютый" Then $boss = 4
		    if $boss = "Шайба" Then $boss = 5
			For $i = 1 to $kolvo Step 1
             ; к списку боссов (окно атаки)
			$URL = "http://109.234.155.198/prison/universal.php?getBoss"
            $PostData = "sig=c10d5872fc1d0c8f7d6441e5ac9e1b8b&user="& $ID &"&key="& $Auth &"&method=getBoss"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			Sleep(400)
			; начало боя
			$URL = "http://188.93.20.139/prison/universal.php?startBattle"
            $PostData = "boss%5Fid="& $boss &"&sig=92947deba2fe5e118c41f3436bf23906&key="& $Auth &"&user="& $ID &"&method=startBattle"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			GUICtrlSetData($logboss, "бой номер "& $i &" из "& $kolvo &""& @CRLF, @CRLF) ; запись в лог
			Sleep(400)
			; ударяем босса
			$URL = "http://109.234.155.198/prison/universal.php?hitBoss"
            $PostData = "boss%5Fid="& $boss &"&spell%5Fid=3&sig=646d316a32bd2943ff57c0e88fdf2243&key="& $Auth &"&user="& $ID &"&method=hitBoss"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			$iSleepTime = GUICtrlRead($zaderreid)
			_newinf()
			Sleep($iSleepTime*60000)
		Next
		GUICtrlSetData($logboss, "рейд завершен"& @CRLF, @CRLF) ; запись в лог
		MsgBox(0, "Рейды v1.2", "Рейд завершен")
	EndFunc
	Func _kirpich()
			_bossinfo()
			$kirpstartbattle = _kirpstart()
			if $kirpstartbattle = 0 then GUICtrlSetData($bossid, "Кирпич")
			if $kirpstartbattle = 6 then GUICtrlSetData($bossid, " ")
			$kirpattack = GUICtrlRead($bossid)
			if $kirpattack = "Кирпич" Then $kirpattack = _kirpattack()
			if $kirpattack = " " Then $kirpattack = _sizii()
			EndFunc
Func _sizii()
	_bossinfo()
	$sizstartbattle = _sizstart()
	if $sizstartbattle = 0 Then GUICtrlSetData($bossid, "Сизый")
	if $sizstartbattle = 2 Then GUICtrlSetData($bossid, " ")
	$sizattack = GUICtrlRead($bossid)
	if $sizattack = "Сизый" Then $sizattack = _sizattack()
	if $sizattack = " " Then $sizattack = _mahno()
EndFunc
Func _mahno()
	_bossinfo()
	$mahstartbattle = _mahstart()
	if $mahstartbattle = 0 Then GUICtrlSetData($bossid, "Махно")
	if $mahstartbattle = 2 then GUICtrlSetData($bossid, " ")
	$mahattack = GUICtrlRead($bossid)
	if $mahattack = "Махно" then $mahattack = _mahattack()
	if $mahattack = " " then $mahattack = _lutii()
EndFunc
Func _lutii()
	_bossinfo()
	$lutstartbattle = _lutstart()
	if $lutstartbattle = 0 Then GUICtrlSetData($bossid, "Лютый")
	if $lutstartbattle = 2 then GUICtrlSetData($bossid, " ")
	$lutattack = GUICtrlRead($bossid)
	if $lutattack = "Лютый" then _lutattack()
	if $lutattack = " " then GUICtrlSetData($logboss, "Все ключи кончились"& @CRLF, @CRLF &" Рейд завершен"& @CRLF, @CRLF)
EndFunc
func _bossinfo()
	$ID = GUICtrlRead($IDinput)
	$Auth = GUICtrlRead($Authinput)
	$URL = "http://109.234.155.198/prison/universal.php?getBoss"
	$PostData = "sig=c10d5872fc1d0c8f7d6441e5ac9e1b8b&user="& $ID &"&key="& $Auth &"&method=getBoss"
	$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
	$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Execute('$oHTTP.Send($PostData)')
	$oHTTP.WaitForResponse
	Execute('$Response = $oHTTP.ResponseText')
	Sleep(300)
EndFunc
Func _kirpstart()
	$ID = GUICtrlRead($IDinput)
	$Auth = GUICtrlRead($Authinput)
	$URL = "http://188.93.20.139/prison/universal.php?startBattle"
	$PostData = "boss%5Fid=1&sig=92947deba2fe5e118c41f3436bf23906&key="& $Auth &"&user="& $ID &"&method=startBattle"
	$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
	$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Execute('$oHTTP.Send($PostData)')
	$oHTTP.WaitForResponse
	$Response = $oHTTP.ResponseText
	$kirpifresperr = $oIEErrorHandler
	$sMessage = StringRegExpReplace($Response, '(?s).*?<code>(\d+)</code>?.*', '\1')
	If Not $sMessage Then Return -1
    Return $sMessage
	sleep(200)
EndFunc
Func _kirpattack()
	$ID = GUICtrlRead($IDinput)
	$Auth = GUICtrlRead($Authinput)
	$URL = "http://109.234.155.198/prison/universal.php?hitBoss"
	$PostData = "boss%5Fid=1&spell%5Fid=3&sig=646d316a32bd2943ff57c0e88fdf2243&key="& $Auth &"&user="& $ID &"&method=hitBoss"
	$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
	$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Execute('$oHTTP.Send($PostData)')
	$oHTTP.WaitForResponse
	Execute('$Response = $oHTTP.ResponseText')
	GUICtrlSetData($logboss, "Вы напали на Кирпича"& @CRLF, @CRLF)
	_newinf()
	$iSleepTime = GUICtrlRead($kirpich)
	Sleep($iSleepTime*60000)
	GUICtrlSetData($logboss, "Вы убили Кирпича"& @CRLF, @CRLF)
	_kirpich()
EndFunc
Func _sizstart()
	$ID = GUICtrlRead($IDinput)
	$Auth = GUICtrlRead($Authinput)
	$URL = "http://188.93.20.139/prison/universal.php?startBattle"
	$PostData = "boss%5Fid=2&sig=92947deba2fe5e118c41f3436bf23906&key="& $Auth &"&user="& $ID &"&method=startBattle"
	$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
	$oHTTP.setTimeouts(5000, 5000, 10000, 10000)
	$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Execute('$oHTTP.Send($PostData)')
	$oHTTP.WaitForResponse
	$Response = $oHTTP.ResponseText
	$sizifresperr = $oIEErrorHandler
	$sMessage = StringRegExpReplace($Response, '(?s).*?<code>(\d+)</code>?.*', '\1')
	If Not $sMessage Then Return -1
    Return $sMessage
	sleep(200)
EndFunc
Func _sizattack()
	$ID = GUICtrlRead($IDinput)
	$Auth = GUICtrlRead($Authinput)
	$URL = "http://109.234.155.198/prison/universal.php?hitBoss"
	$PostData = "boss%5Fid=2&spell%5Fid=3&sig=646d316a32bd2943ff57c0e88fdf2243&key="& $Auth &"&user="& $ID &"&method=hitBoss"
	$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
	$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Execute('$oHTTP.Send($PostData)')
	$oHTTP.WaitForResponse
	Execute('$Response = $oHTTP.ResponseText')
	GUICtrlSetData($logboss, "Вы напали на Сизого"& @CRLF, @CRLF)
	_newinf()
	$iSleepTime = GUICtrlRead($sizii)
	Sleep($iSleepTime*60000)
	GUICtrlSetData($logboss, "Вы убили Сизого"& @CRLF, @CRLF)
	_sizii()
EndFunc
Func _mahstart()
	$ID = GUICtrlRead($IDinput)
	$Auth = GUICtrlRead($Authinput)
	$URL = "http://188.93.20.139/prison/universal.php?startBattle"
	$PostData = "boss%5Fid=3&sig=92947deba2fe5e118c41f3436bf23906&key="& $Auth &"&user="& $ID &"&method=startBattle"
	$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
	$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Execute('$oHTTP.Send($PostData)')
	$oHTTP.WaitForResponse
	$Response = $oHTTP.ResponseText
	$mahifresperr = $oIEErrorHandler
	$sMessage = StringRegExpReplace($Response, '(?s).*?<code>(\d+)</code>?.*', '\1')
	If Not $sMessage Then Return -1
    Return $sMessage
	sleep(200)
EndFunc
Func _mahattack()
	$ID = GUICtrlRead($IDinput)
	$Auth = GUICtrlRead($Authinput)
	$URL = "http://109.234.155.198/prison/universal.php?hitBoss"
	$PostData = "boss%5Fid=3&spell%5Fid=3&sig=646d316a32bd2943ff57c0e88fdf2243&key="& $Auth &"&user="& $ID &"&method=hitBoss"
	$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
	$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Execute('$oHTTP.Send($PostData)')
	$oHTTP.WaitForResponse
	Execute('$Response = $oHTTP.ResponseText')
	GUICtrlSetData($logboss, "Вы напали на Махно"& @CRLF, @CRLF)
	_newinf()
	$iSleepTime = GUICtrlRead($mahno)
	Sleep($iSleepTime*60000)
	GUICtrlSetData($logboss, "Вы убили Махно"& @CRLF, @CRLF)
	_mahno()
EndFunc
Func _lutstart()
	$ID = GUICtrlRead($IDinput)
	$Auth = GUICtrlRead($Authinput)
	$URL = "http://188.93.20.139/prison/universal.php?startBattle"
	$PostData = "boss%5Fid=4&sig=92947deba2fe5e118c41f3436bf23906&key="& $Auth &"&user="& $ID &"&method=startBattle"
	$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
	$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Execute('$oHTTP.Send($PostData)')
	$oHTTP.WaitForResponse
	$Response = $oHTTP.ResponseText
	$lutifresperr = $oIEErrorHandler
	$sMessage = StringRegExpReplace($Response, '(?s).*?<code>(\d+)</code>?.*', '\1')
	If Not $sMessage Then Return -1
    Return $sMessage
	sleep(200)
EndFunc
func _lutattack()
	$ID = GUICtrlRead($IDinput)
	$Auth = GUICtrlRead($Authinput)
	$URL = "http://109.234.155.198/prison/universal.php?hitBoss"
	$PostData = "boss%5Fid=4&spell%5Fid=3&sig=646d316a32bd2943ff57c0e88fdf2243&key="& $Auth &"&user="& $ID &"&method=hitBoss"
	$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
	$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
	Execute('$oHTTP.Send($PostData)')
	$oHTTP.WaitForResponse
	Execute('$Response = $oHTTP.ResponseText')
	GUICtrlSetData($logboss, "Вы напали на Лютого"& @CRLF, @CRLF)
	_newinf()
	$iSleepTime = GUICtrlRead($lutii)
	Sleep($iSleepTime*60000)
	GUICtrlSetData($logboss, "Вы убили Лютого"& @CRLF, @CRLF)
EndFunc
Func _startfakebattle()
	$fakes = GUICtrlRead($fakelist)
	$fake = StringSplit(StringStripCR($fakes), @LF)
	$ii = 1
	$ID = GUICtrlRead($IDinput)
	;для оружия
	$fakegunsnum = "3,4,5,6"
    $fakegunnum = StringSplit($fakegunsnum, ",")
	$iGunattack = 1
	for $iGunattack = 1 to $fakegunnum[0]


		if $fakegunnum[$iGunattack] = 3 then $fakegunat = "в солнышко"
		if $fakegunnum[$iGunattack] = 4 then $fakegunat = "удар финкой"
		if $fakegunnum[$iGunattack] = 5 then $fakegunat = "из самопалома"
		if $fakegunnum[$iGunattack] = 6 then $fakegunat = "атака ядом"
	;;;;
	for $ii = 1 to $fake[0]-1
		$fakeID = StringSplit($fake[$ii], ":")
		$URL = "http://188.93.20.139/prison/universal.php?initGame"
			$PostData = "sig=fe14ded0a8083f8553baf0ab64d0f840&user="& $fakeID[1] &"&friendslist="& $ID &"&key="& $fakeID[2] &"&refs=127964220&method=initGame"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			sleep(300)
			$URL = "http://109.234.155.198/prison/universal.php?getBoss"
            $PostData = "sig=c10d5872fc1d0c8f7d6441e5ac9e1b8b&user="& $fakeID[1] &"&key="& $fakeID[2] &"&method=getBoss"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			sleep(300)
			$URL = "http://188.93.20.139/prison/universal.php?startBattle"
            $PostData = "boss%5Fid=1&sig=2d23b32c383eaf282693d30609186f9b&user="& $fakeID[1] &"&key="& $fakeID[2] &"&method=startBattle"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			sleep(300)
			$URL = "http://109.234.155.198/prison/universal.php?hitBoss"
            $PostData = "method=hitBoss&spell%5Fid="& $fakegunnum[$iGunattack] &"&key="& $fakeID[2] &"&sig=80d4e36f7204aab106c6b0051269d7e9&user="& $fakeID[1] &"&boss%5Fid=1"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
			$oHTTP.setTimeouts(5000, 5000, 10000, 10000, 50000, 50000, 100000, 100000)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            Execute('$oHTTP.Send($PostData)')
            $oHTTP.WaitForResponse
            Execute('$Response = $oHTTP.ResponseText')
			;;;;

		;;;;;
			GUICtrlSetData($logboss, ""&$fakegunat&" с id"& $fakeID[1] &""& @CRLF, @CRLF)
			_newinf()
			Sleep(300)
		Next
		next
		GUICtrlSetData($logboss, "атака завершена"& @CRLF, @CRLF)
		MsgBox(0, "атака с фейков", "все фейки атаковали)) ВНИМАНИЕ!!! повторно эти фейки можно использовать только через 6 часов, т.к. удар в солнышко восстанавливается через 6 часов, будьте внимательны!!")
	EndFunc
	Func _fakesvopr()
		MsgBox(0, "Атака с фейков", "Необходимо ввести список фейков вида id:auth, каждый фейк должен быть записан через пробел")
	EndFunc
	Func _fakefile()
		$text = FileOpenDialog("Указать файл", @WorkingDir & "", "Любой (*.txt)", 1 + 4 )
        $Read = FileRead($text)
        GUICtrlSetData($fakelist,$Read)
	EndFunc



         Func ComErrFunc()
         If IsObj($oIEErrorHandler) Then
         $HexNumber = Hex($oIEErrorHandler.number, 8)
         if $HexNumber=00000000 then Return 0
         SetError($HexNumber)
         Return 1
		 EndIf
		 Return 0
		EndFunc
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
andreitrane
если есть какие-то действия, выполнение которых надо контролировать, то все действия засунь под условие. типа
Код:
If $flag Then
    ; Some actions
EndIf

сам флаг объяви глобально и меняй его значение по хоткею.
Код:
HotKeySet('{F9}', 'FlagSeitch')
;.............................
Func FlagSwitch()
    $flag = Not $flag
EndFunc
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
мне ничего контролировать не надо, мне надо просто чтобы можно было хоткеем остановить выполнение скрипта, но без exit
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
andreitrane [?]
ну например: включил функцию, которая занимает много времени, но вдруг тебе надо выключить выполнение первой функции и включить другую

Вы или не можете правильно сформулировать свою задачу, или вы не видите, о чём вам здесь говорят!
Если программа (скрипт) работает, то её можно или выключить или приостановить.
Вам нужно контролировать выполнение своих функций (переключаться между ними, приостанавливать их)?
Вас уже направили в нужном направлении, осталось только вникнуть!
Код:
Global $iPause = 0
AdlibRegister("_Func_1", 2000)
AdlibRegister("_Func_2", 6000)
HotKeySet('{F9}', '_Pause')
HotKeySet('{F8}', '_Exit')

While 1
	Sleep(250)
WEnd

Func _Func_1()
	If Not $iPause Then
		MsgBox(48, "_Func_1" , "Это первая функция!", 1)
	EndIf
EndFunc

Func _Func_2()
	If $iPause Then		; Закомментировать для удаления триггера
		MsgBox(48, "_Func_2" , "Это вторая функция!", 1)
	EndIf				; Закомментировать для удаления триггера
EndFunc

Func _Pause()
    $iPause = Not $iPause
EndFunc

Func _Exit()
	AdlibUnRegister("_Func_1")
	AdlibUnRegister("_Func_2")
    Exit
EndFunc
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
опять же не то..
я же говорю, что мне надо чтобы при нажатии на хоткей работующая на данный момент функция остановилась и можно было выбрать любую другую функцию, а в вашем примере при нажатии на хоткей АВТОМАТОМ включается другая функция
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
andreitrane [?]
Пока вы ещё толком ничего не сказали!

чтобы при нажатии на хоткей работующая на данный момент функция остановилась
Это мы уже с горем пополам поняли!

и можно было выбрать любую другую функцию
Как? Через что? Каким методом вы это хотите сделать?
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
ну я же сверху привел пример моей программы, остановил работающую на данный момент функцию и нажал кнопку на gui для включения другой, нужной тебе функции

если это невозможно, то так сразу так и скажите
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
я имел ввиду пример не в первом посте, а здесь http://autoit-script.ru/index.php?topic=4831.msg35059#msg35059

там же я все понятно обьяснил что мне нужно

мне просто нужно вообще остановить выполнение цикла нажатием на хоткей, а не поставить на паузу и все
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
andreitrane
Посмотри вот ещё вариант, но опять же, если вызвана внешняя программа (архивирование), то конечно этот пример уже не приостановит запущенную внешнюю программу. Если разбираться дальше, то наверняка можно посылать какие то команды приостановки внешней программы, ведь при архивировании RAR есть кнопка "Пауза".
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
мне не нужно останавливать внешнюю программу, мне просто надо остановить в своем скрипте цикл, чтобы потом можно было выбрать другой цикл, если использовать exit, то скрипт вообще закрывается, если использовать
Код:
$paused = not $paused
то текущий цикл ставится на паузу и при этом нельзя выбрать другой цикл

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

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
andreitrane
такой команды нет. надо мастерить самому. всю нужную информацию тебе дали.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
andreitrane
Поставить на паузу и остановить цикл это две разные вещи. Вот сделал сразу двух зайцев.

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>

; HotKeySet("{ESC}", "_Exit")

Global $fPause, $Tr

$hGui = GUICreate("Form1", 400, 150)
$nLabel = GUICtrlCreateLabel('', 150, 10, 100, 16, $SS_CENTER)
GUICtrlSetBkColor(-1, 0xD2D2D2)
$nButtonGo = GUICtrlCreateButton('Вперед', 40, 50, 80, 25)
$nButtonPause = GUICtrlCreateButton('Пауза', 160, 50, 80, 25)
$nButtonEnd = GUICtrlCreateButton('Стоп', 160, 80, 80, 25)
$nButtonExit = GUICtrlCreateButton('Выход', 280, 50, 80, 25)
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
GUIRegisterMsg(0x0112, 'WM_SYSCOMMAND')

Dim $AccelKeys[3][2] = [["{ENTER}", $nButtonGo],["{ESC}",$nButtonExit],["!{F1}",$nButtonPause]] 
GUISetAccelerators($AccelKeys)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $nButtonGo
            $fPause = False
            For $i = 1 To 1000
                If $Tr Then ExitLoop
                While $fPause
					If $Tr Then ExitLoop 2
                    Sleep(20)
                WEnd
                GUICtrlSetData($nLabel, $i)
                Sleep(200)
            Next
            $Tr = False
    EndSwitch
WEnd

Func WM_SYSCOMMAND($hWnd, $Msg, $wParam, $lParam)
	Switch BitAND($wParam, 0xFFFF)
		Case 61536
			Exit
	EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc

Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
	Switch BitAND($wParam, 0xFFFF)
		Case $nButtonEnd
			$Tr=True
			GUICtrlSetData($nLabel, 0)
		Case $nButtonPause
			$fPause = Not $fPause
			If $fPause Then
				GUICtrlSetData($nButtonPause, 'Продолжить')
			Else
				GUICtrlSetData($nButtonPause, 'Пауза')
			EndIf
		Case $nButtonExit
			Exit
	EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc

Отключение ($GUI_DISABLE) кнопок убрал, чтоб не запутывать цикл, а вообще по правилам умной программы это необходимо сделать, те кнопки, которые нельзя нажать на текущем этапе должны быть "блеклыми".
 

JohnWind

Новичок
Сообщения
57
Репутация
0
нет, мне надо чтобы функция скрипта выключилась, а программа не выключилась, ну например: включил функцию, которая занимает много времени, но вдруг тебе надо выключить выполнение первой функции и включить другую, а с моим примером нельзя включить другую функцию, при нажатии на хоткей ставится на паузу первая функция (другие функции не включаются), а при повторном нажатии функция возобновляется
Как-то так...
при нажатии Инсерта - скрипт прекратит работу
при нажатии Хоум - выкинет поп-ап с кнопкой... закрыв который (нажав Ок, Х или ESC) - скрипт продолжит работу с того места где остановился

Код:
HotKeySet ('{INSERT}', 'HK_INSERT_EXIT') ; EXIT
HotKeySet ('{HOME}', 'HK_HOME_STOP') ; STOP

;~ !!!!!!!!!!! HOT KEYS SECTION!!!!!!!!
Func HK_INSERT_EXIT()
;~    MsgBox(0, 'STATUS', 'EXIT', 1)
   Exit
EndFunc
;~ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Func HK_HOME_STOP()
    MsgBox(0, 'STATUS', 'STOP')
EndFunc
;~ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


прим: возможно есть и более изящные решения... типа обращения в процессу по PID с его остановкой/паузой и запуском позже...
 
Верх