Друзья, Не могу понять!
Должно быть так:
Кликер производит Хлеб или Сметана или Молоко, дальше я либо нажимаю на Ctrl, тогда повторяется с записью в текстовый файл, либо на ALT, тогда следующий вариант.
На практике после нажатия на ALT слова иногда повторяются.
#name "Случайные элементы без повторений"
// Author: Vint
// Version: 0.1 (19.01.2021)
// Скрипт для Clickermann v4.13.014
WAITMS(500)
THREAD(sec, 0)
WAIT(3)
BEEP(700,100)
WAIT(1000)
END_THREAD
WAITMS(20)
STRSEPARATE("1,2,3", ",", $data) // список значений для выбора
WHILE(ARRSIZE($data) > 0)
$ind = RND(0, ARRSIZE($data)-1)
$result = $data[$ind]
$data[$ind] = $data[ARRSIZE($data) - 1]
$temp = ARRPOP($data)
END_CYC
WAITMS(500)
skip:
WAITMS(20)
$ress = ARRPOP($result)
LOGWRITE ($ress)
IF($ress = 1)
FOR($a=0,$a<15)
WAITMS(200)
SOUND("Сметана.wav")
SETTHREAD (sec, 1)
$check = 0
WHILE($check = 0)
IF(ISKEYDOWN(#CTRL)=1)
WHILE(ISKEYDOWN(#CTRL)=1)
END_CYC
$check = 1
ELSE
IF(ISKEYDOWN(#ALT)=1)
WHILE(ISKEYDOWN(#ALT)=1)
END_CYC
$check = 2
ELSE
WAITMS(20)
END_IF
END_IF
END_CYC
IF($check = 1) // Продолжение скрипта (вариант 1)
WAITMS(20)
TFWRITE("input.txt", "Сметана")
WAITMS(20)
SETTHREAD (sec, 2)
END_IF
IF($check = 2) // Продолжение скрипта (вариант 2)
WAITMS(20)
SETTHREAD (sec, 2)
WAITMS(20)
GOTO(skip)
END_IF
END_CYC
END_IF
IF($ress = 2)
FOR($a=0,$a<15)
WAITMS(200)
SOUND("Хлеб.wav")
SETTHREAD (sec, 1)
$check = 0
WHILE($check = 0)
IF(ISKEYDOWN(#CTRL)=1)
WHILE(ISKEYDOWN(#CTRL)=1)
END_CYC
$check = 1
ELSE
IF(ISKEYDOWN(#ALT)=1)
WHILE(ISKEYDOWN(#ALT)=1)
END_CYC
$check = 2
ELSE
WAITMS(20)
END_IF
END_IF
END_CYC
IF($check = 1) // Продолжение скрипта (вариант 1)
WAITMS(20)
TFWRITE("input.txt", "Хлеб")
WAITMS(20)
SETTHREAD (sec, 2)
END_IF
IF($check = 2) // Продолжение скрипта (вариант 2)
WAITMS(20)
SETTHREAD (sec, 2)
WAITMS(20)
GOTO(skip)
END_IF
END_CYC
END_IF
IF($ress = 3)
$varr = RND(1,5)
FOR($a=0,$a<15)
WAITMS(200)
IF($varr = 1)
SOUND("Молоко2.wav")
END_IF
IF($varr = 2)
SOUND("Молоко.wav")
END_IF
SETTHREAD (sec, 1)
$check = 0
WHILE($check = 0)
IF(ISKEYDOWN(#CTRL)=1)
WHILE(ISKEYDOWN(#CTRL)=1)
END_CYC
$check = 1
ELSE
IF(ISKEYDOWN(#ALT)=1)
WHILE(ISKEYDOWN(#ALT)=1)
END_CYC
$check = 2
ELSE
WAITMS(20)
END_IF
END_IF
END_CYC
IF($check = 1) // Продолжение скрипта (вариант 1)
WAITMS(20)
TFWRITE("input.txt", "Молоко")
WAITMS(20)
SETTHREAD (sec, 2)
END_IF
IF($check = 2) // Продолжение скрипта (вариант 2)
WAITMS(20)
SETTHREAD (sec, 2)
WAITMS(20)
GOTO(skip)
END_IF
END_CYC
END_IF
IF($ress = "")
$fin_oth = TFCOUNT("input.txt")
$th = $_time_h
$tm = $_time_m
$ts = $_time_s
$dd = $_date_d
$dm = $_date_m
$dy = $_date_y
IF(STRLEN($th)<2)
$th = STRCONCAT ("0", $th)
END_IF
IF(STRLEN($tm)<2)
$tm = STRCONCAT ("0", $tm)
END_IF
IF(STRLEN($ts)<2)
$ts = STRCONCAT ("0", $ts)
END_IF
IF(STRLEN($dd)<2)
$dd = STRCONCAT ("0", $dd)
END_IF
IF(STRLEN($dm)<2)
$dm = STRCONCAT ("0", $dm)
END_IF
IF(STRLEN($dy)<2)
$dy = STRCONCAT ("0", $dy)
END_IF
#DEFINE @CRLF: CHAR(13), CHAR(10)
#DEFINE @TAB: CHAR(9)
$fin = STRCONCAT($dd,".",$dm,".",$dy, @TAB, $th,":",$tm, @TAB, $fin_oth)
WAITMS(20)
TFWRITE("Результаты.txt", $fin)
WAITMS(200)
SOUND("Концовка.wav")
WAIT
ELSE
WAITMS(20)
GOTO(skip)
END_IF
В чем я недоглядел?
Подозреваю, что не там стоит метка SKIP, но я менял ее местами и не получается.