Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Dreight on March 08, 2018, 07:08:33 AM
-
Люди добрые, помогите пожалуйста.
Вот такой код у меня:
define($a,iniread("kolkar.ini","stroka1"))
$key1=0
for($b=0, $b < $a)
$g[$b]=0
end_cyc
GETSCREEN
for($b=0, $b < $a)
if_picture_in(613,273, 623,283,strconcat("screens/image",$b,".bmp"),-1,100)
define($var,iniread("vremkar.ini", strconcat("stroka",$b))
if($var!=0)
$g[$b]=$var
END_IF
print($g[$b])
$key1=1
if($g[$b]=0)
$d=$_time_h*60*60
$e=$_time_m*60
$f=$_time_s
$g[$b]=$d+$e+$f
INIWRITE("vremkar.ini", strconcat("stroka",$b), $g[$b])
define($var2,iniread("vremkar.ini", strconcat("stroka",$b))
print($var2)
END_IF
END_IF
end_cyc
BEEP(800,200)
wait(5)
В kolkar у меня лежит 1, в vremkar 0. Как пример у меня в лог выдаёт:
5:40:31 0
5:40:31 20431
5:40:36 0
5:40:36 20431
5:40:41 0
5:40:41 20431 .
И я никак не могу понять почему выдаёт нули. Ну первый ноль должен быть, но потом то почему идут нули? Я же приравниваю $g[$b] к $var, а $var во время второго выполнения цикла равняется 20431.
-
Ты в курсе что define присваивает значение переменной только если её еще не существует?
-
Ты в курсе что define присваивает значение переменной только если её еще не существует?
Нет, я был не в курсе. Спасибо большое что нашёл в чём проблема :) Получается, когда код начинается сначала, то строка #9 с define не выполняется потому что переменная var уже создана, верно?
Если так, то как это исправить? Может есть какая-то похожая команда на define, но которая будет ещё и перезаписывать значение переменной? Ну или что угодно что поможет по несколько раз приравнивать переменную значению из внешнего файла.
-
$var = iniread("vremkar.ini", strconcat("stroka",$b))
А еще хорошо бы принудительно перевести строку в число функцией INT, потому что iniread выдает именно строки, и кликер может не верно интерпретировать число это или строка, например при сравнении.
$var = INT(iniread("vremkar.ini", strconcat("stroka",$b)))
-
Спасибо большое ещё раз :)