Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Hito on March 13, 2022, 09:19:47 PM
-
Ребят, у меня в одной игре скрипт перестал ловить один момент, который происходит редко. Сидеть и визуально ловить этот момент, чтобы его отскринить и посмотреть - что там не так, мне в лом... Я надумал, чтобы скрипт на каждом своем кругу делал скрин игрового клиента и сохранял его в папку, но чтобы папка эта сильно не раздуалась, скрипт должен удалять первые скрины в папке, если скринов накопилось энное количество. И все бы хорошо - дело плевое.
Я накидал кусок кода для этого на коленке практически:
GETSCREEN ($x,$y, $x+$width-1,$y+$height-1)
COLORMODE (6, $x,$y, $x+$width-1,$y+$height-1)
IF(FExists(STRCONCAT("скрины\история"))=0)
FCREATE (STRCONCAT("скрины\история"))
END_IF
GETFILELIST ($arr, "скрины\история\*.bmp")
IF(ARRSIZE($arr) > 0)
$name = $arr[ARRSIZE($arr)-1]
strseparate($name, ".", $ass)
$name = $ass[0]+1
UNDEFINE($ass)
WHILE(ARRSIZE($arr) > 49)
FDelete(STRCONCAT("скрины\история\",$arr[0]))
UNDEFINE($arr)
GETFILELIST ($arr, "скрины\история\*.bmp")
END_CYC
else
$name = "0"
END_IF
UNDEFINE($arr)
SCREENSHOTFIX($x,$y, $x+$width-1,$y+$height-1, STRCONCAT("скрины\история\",$name,".bmp"), 0)
Но вся эта балалайка работает до тех пор, пока в папке не появится скрин под названием - 10.bmp
В папке все эти скрины лежат по порядку - от 0 до 10, а вот в массив они переводятся так - 0,1,10,2 и так далее... И в итоге, после скрина под названием 10.bmp, скрипт вновь сохраняет скрин под названием этим же.
Ребят, если честно, я немного выпил... Ну, не удержался... Я последние пол года чуток раком приболел и 4 месяца из этих пол года просто подыхал. Последние два месяца я отходил от куматоза и вот только-только начинаю ощущать какие-то вкусы. Вот и не сдержался - выпиваю и закусываю с наслаждением, хоть и не ощущаю еще вкусы полностью. И вот я к чему все это... Простите меня. Наверняка вопрос мой плевый и пораскинув мозгами, я мог бы его решить, не дергая вас, но вот так уж вышло...) Помогите решить проблемку )
-
Сижу... Жду ответа...
(https://sun9-62.userapi.com/impf/aFMK0CcTA90mxNmLEWCKFjxA6w2nl8bIsBFR7w/JkXSMjrWRXE.jpg?size=899x1599&quality=95&sign=c26f057aabf0d46097a259655f373b10&type=album)
-
Самый простой выход, начни нумерацию с 10, тебе ведь не важен номер, важен порядок.
Ну, а если хочешь по красоте, то просто номера 1-9 сохраняй в именах, как 01 - 09.
-
Самый простой выход, начни нумерацию с 10, тебе ведь не важен номер, важен порядок.
Не поможет. На 100 история повторится.
Ну, а если хочешь по красоте, то просто номера 1-9 сохраняй в именах, как 01 - 09.
Не поможет. При - $name = $ass[0]+1, даст имя без первичных нолей.
-
Я кажется придумал... Дублировать названия файлов в текстовый файл построчно. Так себе костыль конечно, но ничего другого пока не придумал...
-
Допился! Вот так пока придумал...
GETSCREEN ($x,$y, $x+$width-1,$y+$height-1)
COLORMODE (6, $x,$y, $x+$width-1,$y+$height-1)
IF(FExists(STRCONCAT("скрины\история"))=0)
FCREATE (STRCONCAT("скрины\история"))
END_IF
GETFILELIST ($arr, "скрины\история\*.bmp")
IF(ARRSIZE($arr) > 0)
$name = INIREAD("ini\variables.ini", "номер скрина", "слежка")+1
INIWRITE("ini\variables.ini", "номер скрина", $name, "слежка")
WHILE(ARRSIZE($arr) > 49)
FDelete(STRCONCAT("скрины\история\",$arr[0]))
UNDEFINE($arr)
GETFILELIST ($arr, "скрины\история\*.bmp")
END_CYC
else
$name = 0
IF(FExists(STRCONCAT("ini"))=0)
FCREATE (STRCONCAT("ini"))
END_IF
INIWRITE("ini\variables.ini", "номер скрина", $name, "слежка")
END_IF
UNDEFINE($arr)
SCREENSHOTFIX($x,$y, $x+$width-1,$y+$height-1, STRCONCAT("скрины\история\",$name,".bmp"), 0)
WAITMS(50)
Не очень красиво, но уже что-то...
-
Чего опять не так-то...?
(https://sun9-1.userapi.com/impf/DI_XCpy5hqmI-GILpNI_VsK-zB3mjrzW_oeaeA/S-kHxT4CxQw.jpg?size=508x122&quality=95&sign=9ab748f98f74e2af9cd13726cd65315d&type=album)
-
Пилять... Он же удаляет их тоже не в алфавитном порядке... Или наоборот - в алфавитном, а не в порядковом...
-
Во!
IF(FExists(STRCONCAT("скрины\история"))=0)
FCREATE (STRCONCAT("скрины\история"))
END_IF
GETFILELIST ($arr, "скрины\история\*.bmp")
IF(ARRSIZE($arr) > 0)
$num_st = TFCOUNT ("скрины\история\нумерация.txt")
IF($num_st > 49)
$name = STRREADLN ("скрины\история\нумерация.txt", 1)
FDELETE (STRCONCAT("скрины\история\",$name,".bmp"))
TFDELETE ("скрины\история\нумерация.txt", 1)
$num_st = TFCOUNT ("скрины\история\нумерация.txt")
END_IF
$name = STRREADLN ("скрины\история\нумерация.txt", $num_st)+1
else
$name = 0
TFCLEAR("скрины\история\нумерация.txt", 0)
TFWRITE("скрины\история\нумерация.txt", $name)
END_IF
UNDEFINE($arr)
SCREENSHOTFIX($x,$y, $x+$width-1,$y+$height-1, STRCONCAT("скрины\история\",$name,".bmp"), 0)
TFWRITE("скрины\история\нумерация.txt", $name)
WAITMS(50)
-
Ну, надо ж предупреждать, что сцука это колесико появляется там, где курсор мышки находится! А я где его впервые увидел, там и прописал ему координаты в скрипте. Вот тут без пазыря же точно не разберешься...!
Всё! Отлов капчи восстановлен - я пошел спать...
-
Элементарно же лидирующие нолики добавляются.
$name="1" // куда добавлять нолики
$newlen=5 // нужный размер (длина) $name
$name=strconcat(strcut("000000000000",1,$newlen-strlen($name)),$name)
// "1" => "00001"
-
Элементарно же лидирующие нолики добавляются.
$name="1" // куда добавлять нолики
$newlen=5 // нужный размер (длина) $name
$name=strconcat(strcut("000000000000",1,$newlen-strlen($name)),$name)
// "1" => "00001"
Я знал, что на трезвую голову намного лучше! ;D Где ж ты вчера был...? ))) Ну, в принципе и сегодня норм, но я уже вроде как на своем варианте остановился...)))
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010. Не анализировал пока - как это скажется на дальнейшей работе скрипта (возможно никак - я опять бухаю :) ), но вот такая штука получается...))
-
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010. Не анализировал пока - как это скажется на дальнейшей работе скрипта (возможно никак - я опять бухаю :) ), но вот такая штука получается...))
Ок, такой вариант:
$name="1" // куда добавлять нолики
$newlen=100500 // нужный размер (длина) $name
while (strlen($name)<$newlen)
$name=strconcat("0",$name)
end_cyc
-
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010. Не анализировал пока - как это скажется на дальнейшей работе скрипта (возможно никак - я опять бухаю :) ), но вот такая штука получается...))
Ок, такой вариант:
$name="1" // куда добавлять нолики
$newlen=100500 // нужный размер (длина) $name
while (strlen($name)<$newlen)
$name=strconcat("0",$name)
end_cyc
В общем сломал уже голову, как сделать твой вариант рабочим. Ты хоть сам проверяй уже прежде, чем показать )) Я понимаю, что ты свою голову грузить не хочешь )))) А пока только мой вариант работает, как часики, хоть и не особо красивый он...
-
Ураааа! Получилось! ;D
$var = 0
IF($name ! "")
FOR($i=1,$i<strlen($name)+1)
IF(STRCUT($name, $i, 1) ! 0)
$var = STRCUT ($name, $i, strlen($name)-$i+1)
$i=strlen($name)+1
END_IF
END_CYC
INC($var, 1)
$n = strlen($var)
FOR($i=1,$i<strlen($name)-$n+1)
$var = STRCONCAT("0",$var)
END_CYC
$name = $var
else
$name="0000000"
END_IF
LOGWRITE ("$name=",$name)
WAITMS(50)
-
В общем тему можно считать пройденной. Вот рабочий код, если кому интересно...
$max_screens_stories = 70
SUB(screen, $folder, $x1scr,$y1scr, $x2scr,$y2scr)
IF(FExists($folder)=0)
FCREATE ($folder)
END_IF
$var = 0
GETFILELIST ($arr, STRCONCAT($folder,"\*.bmp"))
IF(ARRSIZE($arr) > 0)
$name = $arr[ARRSIZE($arr)-1]
strseparate($name, ".", $ass)
$name = $ass[0]
UNDEFINE($ass)
FOR($i=1,$i<strlen($name)+1)
IF(STRCUT($name, $i, 1) ! 0)
$var = STRCUT ($name, $i, strlen($name)-$i+1)
$i=strlen($name)+1
END_IF
END_CYC
INC($var, 1)
$n = strlen($var)
FOR($i=1,$i<strlen($name)-$n+1)
$var = STRCONCAT("0",$var)
END_CYC
$name = $var
WHILE(ARRSIZE($arr) >= $max_screens_stories)
FDELETE (STRCONCAT($folder,"\",$arr[0]))
UNDEFINE($arr)
GETFILELIST ($arr, STRCONCAT($folder,"\*.bmp"))
END_CYC
else
$name="0000000000"
END_IF
UNDEFINE($arr)
SCREENSHOTFIX($x1scr,$y1scr, $x2scr,$y2scr, STRCONCAT($folder,"\",$name,".bmp"), 0)
END_SUB
screen("скрины\история", 0,0, $_xmax,$_ymax)
HALT
-
http://crapware.aidf.org/forum/index.php?topic=5367.msg35239#msg35239
http://crapware.aidf.org/forum/index.php?topic=5367.msg35249#msg35249
-
http://crapware.aidf.org/forum/index.php?topic=5367.msg35239#msg35239
http://crapware.aidf.org/forum/index.php?topic=5367.msg35249#msg35249
А к чему это? ??? Я как бы не против, но я не понимаю - к чему? Я там не нашел того, что сделано тут...
-
А к чему это? ??? Я как бы не против, но я не понимаю - к чему? Я там не нашел того, что сделано тут...
Это я к твоему сообщению, что этот способ неправильно не работает для добавления незначащих нулей.
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.
Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.
-
А к чему это? ??? Я как бы не против, но я не понимаю - к чему? Я там не нашел того, что сделано тут...
Это я к твоему сообщению, что этот способ неправильно не работает для добавления незначащих нулей.
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.
Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.
Ну, как бы, вот твой пример:
WHILE(STRLEN($t) < 2)
$t = STRCONCAT("0", $t)
END_CYC
А вот мой кусок кода, выполняющий ту же самую задачу:
FOR($i=1,$i<strlen($name)-$n+1)
$var = STRCONCAT("0",$var)
END_CYC
И вот мой код, который я тут более суток лепил:
$max_screens_stories = 70
SUB(screen, $folder, $x1scr,$y1scr, $x2scr,$y2scr)
IF(FExists($folder)=0)
FCREATE ($folder)
END_IF
$var = 0
GETFILELIST ($arr, STRCONCAT($folder,"\*.bmp"))
IF(ARRSIZE($arr) > 0)
$name = $arr[ARRSIZE($arr)-1]
strseparate($name, ".", $ass)
$name = $ass[0]
UNDEFINE($ass)
FOR($i=1,$i<strlen($name)+1)
IF(STRCUT($name, $i, 1) ! 0)
$var = STRCUT ($name, $i, strlen($name)-$i+1)
$i=strlen($name)+1
END_IF
END_CYC
INC($var, 1)
$n = strlen($var)
FOR($i=1,$i<strlen($name)-$n+1)
$var = STRCONCAT("0",$var)
END_CYC
$name = $var
WHILE(ARRSIZE($arr) >= $max_screens_stories)
FDELETE (STRCONCAT($folder,"\",$arr[0]))
UNDEFINE($arr)
GETFILELIST ($arr, STRCONCAT($folder,"\*.bmp"))
END_CYC
else
$name="0000000000"
END_IF
UNDEFINE($arr)
SCREENSHOTFIX($x1scr,$y1scr, $x2scr,$y2scr, STRCONCAT($folder,"\",$name,".bmp"), 0)
END_SUB
screen("скрины\история", 0,0, $_xmax,$_ymax)
HALT
И ты считаешь, что все, что я слепил, умещается в те три строчки, что ты дал мне в пример...?
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.
Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.
Vint, ну ты-то хоть меня не разочаровывай...
(https://sun9-27.userapi.com/impf/uoTxp-FqtC-BZtObMDXjxNZCkJE8Lz9C3vDMTw/UZ333gCDLy0.jpg?size=707x447&quality=95&sign=045f84989d62320255676bf61cd61d4f&type=album)
(https://sun9-35.userapi.com/impf/Jjm45CvkAYLKOUH-cWpJctXjxhaBpASM7jn8Ow/lZ_TBUUnuQI.jpg?size=693x447&quality=95&sign=ab3b7b0843b4d22510ada34b05fc78a4&type=album)
-
Я отвечал на конкретный пост, где ты писал, что так не пойдёт и кол-во нулей получается неправильным. Я лишь написал, что там всё правильно и указал что этому решению уже несколько лет. Весь твой код я не разбирал, мне это незачем.
-
Я отвечал на конкретный пост, где ты писал, что так не пойдёт и кол-во нулей получается неправильным.
Ну, так оно так и есть! Ты скрины-то видишь? Запусти этот код у себя и будет то же самое!
А мой код нули добавляет так!
0001
0010
А в том примере так!
0001
00010
Ты разницу ощущаешь вообще...?
-
Ну, так оно так и есть! Ты скрины-то видишь? Запусти этот код у себя и будет то же самое!
А мой код нули добавляет так!
0001
0010
А в том примере так!
0001
00010
Ты разницу ощущаешь вообще...?
Я разницу вижу. Что в коде не так?
(https://i.ibb.co/0qtQ8d4/2022-03-15-15-10-09.png) (https://imgbb.com/)
А вот ты комменты в коде не читаешь
// нужный размер (длина) $name
Нужно указать количество символов. Ты не указал.
можно так
$newlen = 4 // нужный размер (длина) $name
$name = strconcat(strcut("0000",1,$newlen-strlen($name)), $name)
можно так
$name = strconcat(strcut("0000", 1, 4-strlen($name)), $name)
а можно и так если не хочешь следить за двумя местами в коде
$template = "0000" // шаблон
$name = strconcat(strcut($template,1, STRLEN($template)-strlen($name)), $name)
-
Я разницу вижу. Что в коде не так?
Vint, ты мне моцк что ль выстегнуть решил? ;D Ты мне предьявил за один код:
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.
Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.
А прессуешь за другой... ;D Ппц... Кто пьяный-то? Ты, или я...? ;D
-
Элементарно же лидирующие нолики добавляются.
$name="1" // куда добавлять нолики
$newlen=5 // нужный размер (длина) $name
$name=strconcat(strcut("000000000000",1,$newlen-strlen($name)),$name)
// "1" => "00001"
Элементарно же лидирующие нолики добавляются.
$name="1" // куда добавлять нолики
$newlen=5 // нужный размер (длина) $name
$name=strconcat(strcut("000000000000",1,$newlen-strlen($name)),$name)
// "1" => "00001"
Я знал, что на трезвую голову намного лучше! ;D Где ж ты вчера был...? ))) Ну, в принципе и сегодня норм, но я уже вроде как на своем варианте остановился...)))
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010. Не анализировал пока - как это скажется на дальнейшей работе скрипта (возможно никак - я опять бухаю :) ), но вот такая штука получается...))
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.
Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.
Vint, ну ты-то хоть меня не разочаровывай...
(https://sun9-27.userapi.com/impf/uoTxp-FqtC-BZtObMDXjxNZCkJE8Lz9C3vDMTw/UZ333gCDLy0.jpg?size=707x447&quality=95&sign=045f84989d62320255676bf61cd61d4f&type=album)
(https://sun9-35.userapi.com/impf/Jjm45CvkAYLKOUH-cWpJctXjxhaBpASM7jn8Ow/lZ_TBUUnuQI.jpg?size=693x447&quality=95&sign=ab3b7b0843b4d22510ada34b05fc78a4&type=album)
Я разницу вижу. Что в коде не так?
(https://i.ibb.co/0qtQ8d4/2022-03-15-15-10-09.png) (https://imgbb.com/)
А вот ты комменты в коде не читаешь
// нужный размер (длина) $name
Нужно указать количество символов. Ты не указал.
можно так
$newlen = 4 // нужный размер (длина) $name
$name = strconcat(strcut("0000",1,$newlen-strlen($name)), $name)
можно так
$name = strconcat(strcut("0000", 1, 4-strlen($name)), $name)
а можно и так если не хочешь следить за двумя местами в коде
$template = "0000" // шаблон
$name = strconcat(strcut($template,1, STRLEN($template)-strlen($name)), $name)
-
В общем я понял... На моих скринах всего три ноля почему-то... Потому он и вывел
0001
00010
И я с пьяной головы на эти три ноля внимания не обратил...
-
За то со мной форум оживился... ;D
-
За то со мной форум оживился... ;D
ух...сильно ты пропал да форум ожил )
-
За то со мной форум оживился... ;D
ух...сильно ты пропал да форум ожил )
1 - я женился 5 лет назад )))
(https://sun9-83.userapi.com/impf/OyU0Uvq4XBIDSVjpHDkEa_LYJJuWGtfeyFWpoA/Okk1fjHGHYk.jpg?size=832x1600&quality=95&sign=d1ed55c9f2fe1e2d64490d9d1ed704cb&type=album)
2 - заболел раком прошлым летом.
Как-то вот так и пропал...