1
Архив / Ошибка INT
« on: February 15, 2014, 10:37:32 AM »Code: (clickermann) [Select]
$a = 2147483648 // это число и выше (2^31)
$b = int($a) //приводит к неправильному вычислению
print($b) // результат -2147483648
halt
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
$a = 2147483648 // это число и выше (2^31)
$b = int($a) //приводит к неправильному вычислению
print($b) // результат -2147483648
halt
// Коррекция записанных координат под оконный режим
#name "Корректор"
//--------------------------------
// Разница координат
$x_cor = 0
$y_cor = -243
//--------------------------------
$K_SPEED = "$K_SPEED"
TFClear("cor.txt")
TFWrite("cor.txt", TFREAD("rec.txt", 1))
TFDELETE ("rec.txt", 1)
TFWrite("cor.txt", "$K_SPEED = 4 // Delay multiplier")
TFDELETE ("rec.txt", 1)
WHILE(TFCOUNT("rec.txt") > 0)
$a = TFREAD("rec.txt", 1)
IF(STRPOS ($a, ",") > 0)
$b1 = INT(STRCUT2 ($a, (STRPOS ($a, "(") + 1), (STRPOS ($a, ",") - 1)))
$b2 = INT(STRCUT2 ($a, (STRPOS ($a, ",") + 1), (STRPOS ($a, ")") - 1)))
$a = STRREPLACE($a, $b1, $b1 - $x_cor)
$a = STRREPLACE($a, $b2, $b2 - $y_cor)
TFWrite("cor.txt", $a )
ELSE
TFWrite("cor.txt", $a )
END_IF
TFDELETE ("rec.txt", 1)
END_CYC
$dialog = dialogbox("Координаты переписаны", 0, 4)
HALT
Принцип работы такой:$var = $_xmouse
SWITCH($var)
AREA(-1, $_xmax/2)
print("Курсор в левой половине экрана")
AREA($_xmax/2, ($_xmax + 1))
print("Курсор в правой половине экрана")
END_SWITCH
HALT
DEFINE($close_rec)
setup1:
HINTPOPUP("Кликните на колодец или бочку", "Clickermann")
$kolodec = 0
WHILE($kolodec = 0)
WAITMS(10)
IF(ISKEYDOWN(1) = 1)
SOUND ("sound\Accepted.wav")
ARRPUSH ($rec,$_xmouse)
ARRPUSH ($rec,$_ymouse)
$kolodec = 1
END_IF
END_CYC
while(ISKEYDOWN(1) = 1)
WAITMS(10)
END_CYC
HINTPOPUP("Закройте окно", "Clickermann")
$close = 0
WHILE($close = 0)
WAITMS(10)
IF(ISKEYDOWN(1) = 1)
SOUND ("sound\Accepted.wav")
IF($close_rec = 0)
$close_rec = 1
$x_close = $_xmouse
$y_close = $_ymouse
$close_rec = 1
END_IF
$close = 1
END_IF
while(ISKEYDOWN(1) = 1)
WAITMS(10)
END_CYC
END_CYC
HINTPOPUP("Чтобы добавить еще - нажмите 1. Чтобы перейти к автоматам - нажмите 2. Чтобы закончить настройку - нажмите 3", "Clickermann")
$setup = 0
WHILE($setup = 0)
WAITMS(10)
IF(ISKEYDOWN(49) = 1)
$setup = 1
END_IF
IF(ISKEYDOWN(50) = 1)
$setup = 2
END_IF
IF(ISKEYDOWN(51) = 1)
$setup = 3
END_IF
END_CYC
SOUND ("sound\Accepted.wav")
IF($setup = 1)
goto(setup1)
END_IF
IF($setup = 3)
goto(setup_end)
END_IF
setup2:
HINTPOPUP("Кликните на автомат", "Clickermann")
$avtomat = 0
WHILE($avtomat = 0)
WAITMS(10)
IF(ISKEYDOWN(1) = 1)
SOUND ("sound\Accepted.wav")
ARRPUSH ($rec_a,$_xmouse)
ARRPUSH ($rec_a,$_ymouse)
$avtomat = 1
END_IF
END_CYC
while(ISKEYDOWN(1) = 1)
WAITMS(10)
END_CYC
HINTPOPUP("Закройте окно", "Clickermann")
$close = 0
WHILE($close = 0)
WAITMS(10)
IF(ISKEYDOWN(1) = 1)
SOUND ("sound\Accepted.wav")
$close = 1
END_IF
END_CYC
while(ISKEYDOWN(1) = 1)
WAITMS(10)
END_CYC
HINTPOPUP("Чтобы добавить еще - нажмите 2. Чтобы закончить настройку - нажмите 3", "Clickermann")
$setup = 0
WHILE($setup = 0)
WAITMS(10)
IF(ISKEYDOWN(50) = 1)
$setup = 1
END_IF
IF(ISKEYDOWN(51) = 1)
$setup = 2
END_IF
END_CYC
SOUND ("sound\Accepted.wav")
IF($setup = 1)
goto(setup2)
END_IF
setup_end:
HINTPOPUP("Настройка закончена", "Clickermann")
// Проверка записанных координат
$n_rec = arrsize($rec)
$n_rec_a = arrsize($rec_a)
LOGWRITE("Размер первого массива: " , $n_rec)
WHILE($n_rec > 0)
LOGWRITE("№" , $n_rec, " = " ,$rec[$n_rec-1])
INC($n_rec,-1)
END_CYC
LOGWRITE("Размер второго массива: " , $n_rec_a)
WHILE($n_rec_a > 0)
LOGWRITE("№" , $n_rec_a, " = " , $rec_a[$n_rec_a-1])
INC($n_rec_a,-1)
END_CYC
start:
DEFINE($avt)
$st = $_time_t
$n_rec = arrsize($rec)
$n_rec_a = arrsize($rec_a)
$a=0
while ($n_rec > 0)
$y = $rec[$n_rec-1]
$x = $rec[$n_rec-2]
INC($n_rec,-2)
INC($a)
LOGWRITE("Колодец №", $a , " координаты: X:" , $x , " Y:" , $y)
END_CYC
IF($avt = 0)
LOGWRITE("---------------------------------")
$a=0
while ($n_rec_a > 0)
$y = $rec_a[$n_rec_a-1]
$x = $rec_a[$n_rec_a-2]
INC($n_rec_a,-2)
INC($a)
LOGWRITE("Автомат №", $a , " координаты: X:" , $x , " Y:" , $y)
END_CYC
$avt = 1
ELSE
$avt = 0
end_if
LOGWRITE("Координаты кнопки закрыть: X:", $x_close , " Y:", $y_close )
LOGWRITE("=================================")
$w = $_time_t-$st
IF($W <3 )
WAIT(3-$w)
END_IF
goto(start)
Делаю условные клики для первого вида - 3 объекта, для второго - 2 объекта. С первым видом все получается, а вот со вторым проблемы. Сначала выдает первые координаты и выходит из цикла (нужно чтобы выдал все), потом вторые координаты, потом вообще не заходит в цикл.22:00:19 Колодец №1 координаты: X:241 Y:48
22:00:19 Колодец №2 координаты: X:1126 Y:134
22:00:19 Колодец №3 координаты: X:348 Y:46
22:00:19 ---------------------------------
22:00:19 Автомат №1 координаты: X:343 Y:183
22:00:19 Координаты кнопки закрыть: X:416 Y:45
22:00:19 =================================
22:00:22 Колодец №1 координаты: X:241 Y:48
22:00:22 Колодец №2 координаты: X:1126 Y:134
22:00:22 Колодец №3 координаты: X:348 Y:46
22:00:22 Координаты кнопки закрыть: X:416 Y:45
22:00:22 =================================
22:00:24 Колодец №1 координаты: X:241 Y:48
22:00:24 Колодец №2 координаты: X:1126 Y:134
22:00:24 Колодец №3 координаты: X:348 Y:46
22:00:24 ---------------------------------
22:00:24 Автомат №1 координаты: X:456 Y:44
22:00:24 Координаты кнопки закрыть: X:416 Y:45
22:00:24 =================================
22:00:27 Колодец №1 координаты: X:241 Y:48
22:00:27 Колодец №2 координаты: X:1126 Y:134
22:00:27 Колодец №3 координаты: X:348 Y:46
22:00:27 Координаты кнопки закрыть: X:416 Y:45
22:00:27 =================================
22:00:30 Колодец №1 координаты: X:241 Y:48
22:00:30 Колодец №2 координаты: X:1126 Y:134
22:00:30 Колодец №3 координаты: X:348 Y:46
22:00:30 ---------------------------------
22:00:30 Координаты кнопки закрыть: X:416 Y:45
22:00:30 =================================
22:00:33 Колодец №1 координаты: X:241 Y:48
22:00:33 Колодец №2 координаты: X:1126 Y:134
22:00:33 Колодец №3 координаты: X:348 Y:46
22:00:33 Координаты кнопки закрыть: X:416 Y:45
22:00:33 =================================
22:00:36 Колодец №1 координаты: X:241 Y:48
22:00:36 Колодец №2 координаты: X:1126 Y:134
22:00:36 Колодец №3 координаты: X:348 Y:46
22:00:36 ---------------------------------
22:00:36 Автомат №1 координаты: X:343 Y:183
22:00:36 Координаты кнопки закрыть: X:416 Y:45
22:00:36 =================================
$cennost = 0
getscreen
colormode(6)
IF($cennost = 0)
print("1")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\surprise.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть сюрприз?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
print("2")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\pernatiy.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть пернатый?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
print("3")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\butilka.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть бутылки?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
print("4")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\svitok.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть свитки?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
print("5")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\vaza.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть вазы?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
print("6")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\chasha.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть чашы?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
print("7")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\rogatoe.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть рогатое?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
print("8")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\strogoe.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть строгое?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
print("9")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\prostoe.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть простое?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
print("10")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\baby.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть бейби-сюрприз?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
print("11")
WAIT(1)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\klubnichnoe.bmp" , -1 , 80)
$z = DIALOGBOX("Открыть клубничное?", 6, 7)
IF($z = 6)
$shtuk = INPUTBOX("Сколько открыть?", 10 , 10)
$cennost = 1
END_IF
END_IF
END_IF
IF($cennost = 0)
$z = DIALOGBOX("Нечего открывать", 1 )
halt
END_IF
//--------------------------------
// Коэффицент задержки
$k = 2 // 1 - быстро, 10- медленно
//--------------------------------
//--------------------------------
//--------------------------------
$x_10 = $_return1+100
$y_10 = $_return2+70
$x_open = $_return1
$y_open = $_return2+130
MOVE($x_10, $y_10)
WAITMS(500)
LCLICK($x_10, $y_10)
WAITMS(300)
MOVE($x_open, $y_open)
WAITMS(500)
LCLICK($x_open, $y_open)
WAIT(2)
getscreen
colormode(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\sklad.bmp" , -1 , 80)
$x_sklad = $_return1
$y_sklad = $_return2+10
else
print("Не видна кнопка склад")
halt
END_IF
$re = ROUND($shtuk/10 - 1, 0)
FOR($a,$a<$re)
MOVE($x_sklad, $y_sklad)
WAITMS(100)
LCLICK($x_sklad, $y_sklad)
WAITMS($k*1000)
MOVE($x_10, $y_10)
WAITMS(100)
LCLICK($x_10, $y_10)
WAITMS($k*50)
MOVE($x_open, $y_open)
WAITMS(100)
LCLICK($x_open, $y_open)
WAITMS($k*500)
END_CYC
halt
print(" старт ")
$_t1 = $_time_t
$x1=$_xmouse
$y1=$_ymouse
$re=100 // количество повторов
$check=0
WHILE($check<$re)
$check=$check+1
LCLICK($x1,$y1)
WAITMS(10)
END_CYC
$_t2 = $_time_t
$_t = $_t2 - $_t1
print(" финиш ")
print(" выполнялось - " , $_t , " секунд " )
HALT
Лог 4.7 se : 13:30:14 старт
13:30:15 финиш
13:30:15 выполнялось - 2 секунд
Лог 4.813:29:08 старт
13:29:19 финиш
13:29:19 выполнялось - 12 секунд