Ну тут как повезет, если бот в данный момент делает длительное действие - лочит астер например - то да время реакции увеличивается. (надо прикручивать отдельный скрипт для съёма индикаторов отдельно от основного бота и его цикла, хотя пока есть несколько непонятных для меня вещей. Например как выключить основной скрипт, чтоб сделать "аварийную команду" - а потом продолжить с то же места - мда эт уже пока рано. Надо написать логику нормально.)yaodnako сказал(а):10 секунд это просто катастрофически огромное время для принятия решения.скорее всего это где-то на слипах или циклах затык.Тут не в операторах дело это точно.
Если бот чтото должен делать долго или ждать наступления какого либо события, то не надо делать это через слип, сделай свою функцию ожидания или таймера, в которой параллельно будут проверки на чтолибо.если бот в данный момент делает длительное действие - лочит астер например - то да время реакции увеличивается.
wait(3)
Func wait($t)
$i = 0
Do
check(); функция которая проверяет и реагирует на тригеры
Sleep(500); слип, который необходимо добрать, чтоб получилось примерно секунда
$i += 1
Until $i = $t
EndFunc ;==>wait
Func _Action($Do,$Do2="No",$Do3="No",$Do4="No")
Select
Case $Do="Timer"
;таймер.использование _Action("Timer","время в милисек","что проверям","значение для проверки").
;как только переменная равна значению для проверки либо истечет таймер - цикл прекращается.
$TimerChk=TimerInit()
;$Status="таймер!"
;Sleep(500)
While 1
_Check("ConvoCheck");сюда можем вставить любые проверки важные.
If TimerDiff($TimerChk)>$Do2 Then
;$Status="сработал таймер!"
;Sleep(300)
ExitLoop
EndIf
Select
Case $Do3="Strip"
If $StripChk=$Do4 Then
;$Status="сработала проверка!"
Sleep(200)
ExitLoop
EndIf
Case $Do3="Lock"
If $Lock[1]=$Do4 Then
;$Status="сработала проверка!"
Sleep(200)
ExitLoop
EndIf
EndSelect
WEnd
EndSelect
EndFunc
Проверял 15-20 сек. цикл для 1й цели - нет.20-25 оптимал.И это не программа проверяла(которая может не учесть что-то),а статистика за много ночей.У Бельфа оптимал такойже на боте в 1 цель.Попробуй более 15 сек, менее 20. У меня эт оптимильно.
…
AdlibEnable("MyAdlibFunc", 1 * 60 * 1000)
…
; AdlibDisable()
Exit(0)
Func MyAdlibFunc()
…
EndFunc
мда. пойдука я застрахую свой халк.Belfigor сказал(а):А меня ночью суициднули
ShellExecute ("c:\1\1.mp3")
#include <Sound.au3>
$s = _SoundOpen ( 'c:\1\1.mp3' )
$sound = _SoundPlay ( $s, 1 )
_SoundClose($sound)
MsgBox ( 64, '', $s )
MsgBox ( 64, '', $sound )
FileOpen("C:\Autoit\лог.TXT",1);открыли на запись
FileWriteLine("C:\Autoit\лог.TXT",TimerDiff($timer)/60/1000);записываем время цикла в минутах
FileClose("C:\Autoit\лог.TXT")
asa12 сказал(а):Как у тебя запуск звукового файла проходит?
Этот вариант тоже не играет. Выдает значение MsgBox=0
Код:#include <Sound.au3> $s = _SoundOpen ( 'c:\1\1.mp3' ) $sound = _SoundPlay ( $s, 1 ) _SoundClose($sound) MsgBox ( 64, '', $s ) MsgBox ( 64, '', $sound )
SoundPlay ( "filename" [,wait])
SoundPlay("C:\Windows\media\tada.wav")
#include <Sound.au3>
_SoundPlay ( $sSnd_id [, $fWait ] )
Beep ( [ Frequency [, Duration ]] )
ShellExecute("c:\1.mp3")
ShellExecute("c:\1\1\1.mp3")
ShellExecute("1.mp3")
SoundPlay ( "filename" [, wait] )
filename | Name of the file to be played (typically a WAV or MP3) |
wait | [optional] This flag determines if the script should wait for the sound to finish before continuing: 1 = wait until sound has finished 0 = continue script while sound is playing (default) |
SoundPlay(@WindowsDir & "\media\tada.wav",1)