181
Общие вопросы / Re: как можно перескочит строку в коде
« on: February 27, 2019, 04:06:26 PM »
Скидывай код и напиши, что конкретно тебе нужно пропустить\перепрыгнуть
Добавлена тема оформления "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.
#DEFINE \N: CHAR(13), CHAR(10)
$file_name = "file.txt"
$file_len = TFCOUNT($file_name)
WHILE($count != $file_len)
INC($count, 1)
SWITCH(TFREAD($file_name, $count))
CASE($k+1)
IF($check = 0)
INC($k, 1)
$temp = $count
$check = 1
END_IF
CASE("</1j-cut>")
IF($check = 1)
ARRPUSH($array_story, $temp +1)
ARRPUSH($array_story, $count-1)
$check = 0
END_IF
END_SWITCH
END_CYC
$size = ARRSIZE($array_story)/2
PRINT("ВСЕГО РАССКАЗОВ:", $size, \N)
FOR($i = 0, $i < $size)
$str = STRCONCAT("Номер: ", $i+1, \N)
FOR($k = $array_story[$i*2], $k < $array_story[$i*2+1]+1)
$str = STRCONCAT($str, TFREAD($file_name, $k), \N)
END_CYC
PRINT($str)
END_CYC
HALT
$file_name = "file.txt"
$file_len = TFCOUNT($file_name)
WHILE($count != $file_len)
INC($k, 1)
$check_out = 0
FOR($i = $count + 1, $i < $file_len + 1 & $check_out = 0)
INC($count, 1)
IF(TFREAD($file_name, $i) = $k)
FOR($j = $count + 1, $j < $file_len + 1 & $check_out = 0)
INC($count, 1)
IF(TFREAD($file_name, $j) = "</1j-cut>")
ARRPUSH($array_story, $i+1)
ARRPUSH($array_story, $j-1)
$check_out = 1
END_IF
END_CYC
END_IF
END_CYC
END_CYC
$size = ARRSIZE($array_story)/2
PRINT("ВСЕГО РАССКАЗОВ:", $size)
FOR($i = 0, $i < $size)
PRINT(CHAR(13), CHAR(10), " Номер: ", $i+1)
FOR($k = $array_story[$i*2], $k < $array_story[$i*2+1]+1)
PRINT(TFREAD($file_name, $k))
END_CYC
END_CYC
HALT
1
Недолго проработала на Западе Алла Е., клюнувшая на газетное объявление
о наборе девушек в посудомойки. Каково же оказалось ее возмущение, когда
после пересечения границы у нее не отобрали, как это заведено, паспорт и
не продали ее в заграничный бордель, а действительно привезли в ресторан
и заставили мыть грязную посуду!
</1j-cut>
2
У евреев национальное блюдо - фаршированная рыба, у украинцев -
фаршированный перец, а у русских - фаршированный целлофан.
- А это как?
- А это сосиски.
</1j-cut>
3
- Дорогая, налей компота! Не видишь, что ли, как мне плохо?..
- Тебе какого компота, персикового или вишнёвого?
- О-гур-цо-во-го!
</1j-cut>
FOR($i = 0, $i < ARRSIZE($array_area), 2)
PRINT($array_area[$i], ":", $array_area[$i+1])
END_CYC
PRINT("LEFT: ", INT(($array_area[3*2+0]+$array_area[4*2+0])/2), ":", INT(($array_area[3*2+1]+$array_area[4*2+1])/2))
PRINT("CENTER:", $array_area[4*2+0], ":", $array_area[4*2+1])
PRINT("RIGHT: ", ROUND(($array_area[4*2+0]+$array_area[5*2+0])/2, 0), ":", ROUND(($array_area[4*2+1]+$array_area[5*2+1])/2, 0))
//13:39:05 LEFT: 129:129
//13:39:05 CENTER:148:148
//13:39:05 RIGHT: 167:167
HALT
// Хранение данных в массиве
$minimap_top = 0
$minimap_left = 0
$minimap_width = 296
$minimap_height = 296
$size_x = INT( ($minimap_width - $minimap_top) / 8)
$size_y = INT( ($minimap_height - $minimap_left) / 8)
WHILE($cyc_count < 8+1)
$array_area[$cyc_count*2] = $minimap_top + ($size_x*$cyc_count)
$array_area[$cyc_count*2+1] = $minimap_left + ($size_y*$cyc_count)
INC($cyc_count, 1)
END_CYC
// Вывод миникарты в лог
$horizontal_line = ""
$two = $horizontal_line
$cap = " "
FOR($i = 0, $i < 9)
$cap = STRCONCAT($cap, " ")
$horizontal_line = STRCONCAT($horizontal_line, " ", $i, " ", GETVAR("$two"))
IF($i = 1)
$two = " "
END_IF
END_CYC
PRINT($cap,"[MINIMAP]")
PRINT($horizontal_line)
FOR($i = 0, $i < 9)
$horizontal_line = CHAR(0x41+$i)
FOR($k = 0, $k < 9)
$horizontal_line = STRCONCAT($horizontal_line, "[",$array_area[$k * 2 + 0], ":", $array_area[$i * 2 + 1], "]")
IF($i = 0)
$horizontal_line = STRCONCAT($horizontal_line, "##")
END_IF
IF($i > 0 & $i < 3)
$horizontal_line = STRCONCAT($horizontal_line, "#")
END_IF
END_CYC
PRINT($horizontal_line)
END_CYC
HALT
// Область поиска поделённая на 2 части в 1 конструкции через массив и доп цикл
IF($scan = 0)
$x = 0
$y = 0
FOR($i = 0, ($i < 8 & $size = 0), 4)
GETSCREEN (0, 0, $win_x, $win_y)
SCANPXL($arr, $array_area[0*2+0], $array_area[$i*2+1], $array_area[8*2+0], $array_area[(4+$i)*2+1], 16230484)
$size = ARRSIZE($arr)
IF($size > 0)
FOR($a = 0, $a < $size, 2)
IF(DIST($arr[$a], $arr[$a+1], $array_area[4*2+0], $array_area[4*2+1]) < DIST($x, $y, $array_area[4*2+0], $array_area[4*2+1]))
$x = $arr[$a]
$y = $arr[$a+1]
END_IF
END_CYC
END_IF
END_CYC
IF($size != 0)
$base = 0
$size = 0
UNDEFINE($arr)
ELSE
$base = 1
END_IF
END_IF
// Заполняем область 5x5 нолями
FOR($i = 0, $i < 5*5)
$arr[$i] = #FALSE
END_CYC
// Якобы результаты работы сканпикселя поиска препятствий на миникарте
$ARR_SCAN[0] = 3
$ARR_SCAN[1] = 1
// Перезаписываем 0 на 1 по координатам из массива $ARR_SCAN
FOR($i = 0, $i < ARRSIZE($ARR_SCAN), 2)
$arr[$ARR_SCAN[$i+1]*5+$ARR_SCAN[$i]] = #TRUE
END_CYC
// Вывод результата в лог
PRINT(" 01234")
FOR($i = 0, $i < 5)
$str = $i
FOR($k = 0, $k < 5)
$str = STRCONCAT($str, $arr[$i*5+$k])
END_CYC
PRINT($str)
END_CYC
// Результат
//10:54:19 01234
//10:54:19 000000
//10:54:19 100010
//10:54:19 200000
//10:54:19 300000
//10:54:19 400000
HALT
// В этом скрипте уже задано максимальное значение
#DEFINE MAX_PIXELS:30
GETSCREEN (0, 184, 0, 518)
$current_pixel_count = PXLCOUNT (0, 184, 0, 518, 3260259)
IF( ($current_pixel_count != #FALSE) & ($current_pixel_count < MAX_PIXELS) )
IF( ( (MAX_PIXELS - $current_pixel_count) / $current_pixel_count) * 100 > 10)
PRINT("Разность > 10%")
END_IF
END_IF
// В этом скрипте без разницы, потому что значения сортируются по возрастанию
FOR($i = 0, $i < 2)
GETSCREEN (0, 184, 0, 518)
$count[$i] = PXLCOUNT(0, 184, 0, 518, 3260259)
WAIT(1)
END_CYC
IF( ($count[0] * $count[1] != 0) & ($count[0] - $count[1] != 0) )
ARRSORT($count) // Сортировка значений по возрастанию
IF( ( ($count[1] - $count[0]) / $count[0]) * 100 > 10)
PRINT("Разность > 10%")
END_IF
END_IF
// Вот еще какой то пример
FOR($i = $info_update, $i < 2)
GETSCREEN (0, 184, 0, 518)
$count[$i] = PXLCOUNT(0, 184, 0, 518, 3260259)
WAIT(1)
$info_update = 1 // С этого момента обновляем только второе значение
END_CYC
IF($count[1] < $count[0])
PRINT( ( ($count[0] - $count[1]) / $count[1]) * 100 > 10) // Вернёт 1 если больше 10% и 0 если меньше
END_IF
IF($count[1] > $count[0]) // Если второе значение больше первого, то обновляем начиная с первого значения
$info_update = 0
END_IF
FOR($count = 100, $count < 1500, 100)
// Комментарии в скрипте через правый слэш
LCLICK(411,533)
WAITMS(150)
KEYSTRING($count, 150)
WAITMS(150)
LCLICK(890,300)
WAITMS(150)
LCLICK(417,593)
WAIT(600)
END_CYC
getscreen
if(pxl(645,45) != 4210752)
wait(3)
lclick(1385,990)
waitms(50)
end_if
INC($delay_time, 10)
IF($delay_time = 40)
$delay_time = 20
END_IF
WAIT($delay_time*60)