Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Hito on March 13, 2022, 09:19:47 PM

Title: Спасите! Помогите!
Post by: Hito on March 13, 2022, 09:19:47 PM
Ребят, у меня в одной игре скрипт перестал ловить один момент, который происходит редко. Сидеть и визуально ловить этот момент, чтобы его отскринить и посмотреть - что там не так, мне в лом... Я надумал, чтобы скрипт на каждом своем кругу делал скрин игрового клиента и сохранял его в папку, но чтобы папка эта сильно не раздуалась, скрипт должен удалять первые скрины в папке, если скринов накопилось энное количество. И все бы хорошо - дело плевое.
Я накидал кусок кода для этого на коленке практически:

Code: (clickermann) [Select]
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 месяца из этих пол года просто подыхал. Последние два месяца я отходил от куматоза и вот только-только начинаю ощущать какие-то вкусы. Вот и не сдержался - выпиваю и закусываю с наслаждением, хоть и не ощущаю еще вкусы полностью. И вот я к чему все это... Простите меня. Наверняка вопрос мой плевый и пораскинув мозгами, я мог бы его решить, не дергая вас, но вот так уж вышло...) Помогите решить проблемку )
Title: Re: Спасите! Помогите!
Post by: Hito on March 13, 2022, 09:26:46 PM
Сижу... Жду ответа...

(https://sun9-62.userapi.com/impf/aFMK0CcTA90mxNmLEWCKFjxA6w2nl8bIsBFR7w/JkXSMjrWRXE.jpg?size=899x1599&quality=95&sign=c26f057aabf0d46097a259655f373b10&type=album)
Title: Re: Спасите! Помогите!
Post by: Vint on March 13, 2022, 10:26:59 PM
Самый простой выход, начни нумерацию с 10, тебе ведь не важен номер, важен порядок.

Ну, а если хочешь по красоте, то просто номера 1-9 сохраняй в именах, как 01 - 09.
Title: Re: Спасите! Помогите!
Post by: Hito on March 13, 2022, 10:53:09 PM
Самый простой выход, начни нумерацию с 10, тебе ведь не важен номер, важен порядок.
Не поможет. На 100 история повторится.

Ну, а если хочешь по красоте, то просто номера 1-9 сохраняй в именах, как 01 - 09.
Не поможет. При - $name = $ass[0]+1, даст имя без первичных нолей.
Title: Re: Спасите! Помогите!
Post by: Hito on March 13, 2022, 11:13:50 PM
Я кажется придумал... Дублировать названия файлов в текстовый файл построчно. Так себе костыль конечно, но ничего другого пока не придумал...
Title: Re: Спасите! Помогите!
Post by: Hito on March 13, 2022, 11:26:33 PM
Допился! Вот так пока придумал...

Code: (clickermann) [Select]
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)

Не очень красиво, но уже что-то...
Title: Re: Спасите! Помогите!
Post by: Hito on March 13, 2022, 11:41:05 PM
Чего опять не так-то...?

(https://sun9-1.userapi.com/impf/DI_XCpy5hqmI-GILpNI_VsK-zB3mjrzW_oeaeA/S-kHxT4CxQw.jpg?size=508x122&quality=95&sign=9ab748f98f74e2af9cd13726cd65315d&type=album)
Title: Re: Спасите! Помогите!
Post by: Hito on March 14, 2022, 12:04:01 AM
Пилять... Он же удаляет их тоже не в алфавитном порядке... Или наоборот - в алфавитном, а не в порядковом...
Title: Re: Спасите! Помогите!
Post by: Hito on March 14, 2022, 12:49:13 AM
Во!

Code: (clickermann) [Select]
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)
Title: Re: Спасите! Помогите!
Post by: Hito on March 14, 2022, 01:49:59 AM
Ну, надо ж предупреждать, что сцука это колесико появляется там, где курсор мышки находится! А я где его впервые увидел, там и прописал ему координаты в скрипте. Вот тут без пазыря же точно не разберешься...!
Всё! Отлов капчи восстановлен - я пошел спать...
Title: Re: Спасите! Помогите!
Post by: Oblie1968 on March 14, 2022, 10:59:48 AM
Элементарно же лидирующие нолики добавляются.
Code: (clickermann) [Select]
$name="1"         // куда добавлять нолики
$newlen=5        // нужный размер (длина) $name
$name=strconcat(strcut("000000000000",1,$newlen-strlen($name)),$name)
// "1" => "00001"
Title: Re: Спасите! Помогите!
Post by: Hito on March 14, 2022, 12:40:20 PM
Элементарно же лидирующие нолики добавляются.
Code: (clickermann) [Select]
$name="1"         // куда добавлять нолики
$newlen=5        // нужный размер (длина) $name
$name=strconcat(strcut("000000000000",1,$newlen-strlen($name)),$name)
// "1" => "00001"
Я знал, что на трезвую голову намного лучше!  ;D Где ж ты вчера был...? ))) Ну, в принципе и сегодня норм, но я уже вроде как на своем варианте остановился...)))
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010. Не анализировал пока - как это скажется на дальнейшей работе скрипта (возможно никак - я опять бухаю  :) ), но вот такая штука получается...))
Title: Re: Спасите! Помогите!
Post by: Oblie1968 on March 14, 2022, 01:00:00 PM
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010. Не анализировал пока - как это скажется на дальнейшей работе скрипта (возможно никак - я опять бухаю  :) ), но вот такая штука получается...))
Ок, такой вариант:
Code: (clickermann) [Select]
$name="1"         // куда добавлять нолики
$newlen=100500    // нужный размер (длина) $name
while (strlen($name)<$newlen)
  $name=strconcat("0",$name)
end_cyc
Title: Re: Спасите! Помогите!
Post by: Hito on March 14, 2022, 03:38:48 PM
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010. Не анализировал пока - как это скажется на дальнейшей работе скрипта (возможно никак - я опять бухаю  :) ), но вот такая штука получается...))
Ок, такой вариант:
Code: (clickermann) [Select]
$name="1"         // куда добавлять нолики
$newlen=100500    // нужный размер (длина) $name
while (strlen($name)<$newlen)
  $name=strconcat("0",$name)
end_cyc

В общем сломал уже голову, как сделать твой вариант рабочим. Ты хоть сам проверяй уже прежде, чем показать )) Я понимаю, что ты свою голову грузить не хочешь )))) А пока только мой вариант работает, как часики, хоть и не особо красивый он...
Title: Re: Спасите! Помогите!
Post by: Hito on March 14, 2022, 07:12:55 PM
Ураааа! Получилось!  ;D

Code: (clickermann) [Select]
$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)
Title: Re: Спасите! Помогите!
Post by: Hito on March 14, 2022, 08:10:37 PM
В общем тему можно считать пройденной. Вот рабочий код, если кому интересно...

Code: (clickermann) [Select]
$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
Title: Re: Спасите! Помогите!
Post by: Vint on March 15, 2022, 08:52:24 AM
http://crapware.aidf.org/forum/index.php?topic=5367.msg35239#msg35239

http://crapware.aidf.org/forum/index.php?topic=5367.msg35249#msg35249
Title: Re: Спасите! Помогите!
Post by: Hito on March 15, 2022, 09:25:23 AM
http://crapware.aidf.org/forum/index.php?topic=5367.msg35239#msg35239

http://crapware.aidf.org/forum/index.php?topic=5367.msg35249#msg35249

А к чему это?  ??? Я как бы не против, но я не понимаю - к чему? Я там не нашел того, что сделано тут...
Title: Re: Спасите! Помогите!
Post by: Vint on March 15, 2022, 09:50:00 AM
А к чему это?  ??? Я как бы не против, но я не понимаю - к чему? Я там не нашел того, что сделано тут...
Это я к твоему сообщению, что этот способ неправильно не работает для добавления незначащих нулей.
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.

Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.
Title: Re: Спасите! Помогите!
Post by: Hito on March 15, 2022, 10:49:31 AM
А к чему это?  ??? Я как бы не против, но я не понимаю - к чему? Я там не нашел того, что сделано тут...
Это я к твоему сообщению, что этот способ неправильно не работает для добавления незначащих нулей.
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.

Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.

Ну, как бы, вот твой пример:
Code: (clickermann) [Select]
WHILE(STRLEN($t) < 2)
   $t = STRCONCAT("0", $t)
END_CYC
А вот мой кусок кода, выполняющий ту же самую задачу:
Code: (clickermann) [Select]
FOR($i=1,$i<strlen($name)-$n+1)
   $var = STRCONCAT("0",$var)
END_CYC
И вот мой код, который я тут более суток лепил:
Code: (clickermann) [Select]
$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)
Title: Re: Спасите! Помогите!
Post by: Vint on March 15, 2022, 12:43:58 PM
Я отвечал на конкретный пост, где ты писал, что так не пойдёт и кол-во нулей получается неправильным. Я лишь написал, что там всё правильно и указал что этому решению уже несколько лет. Весь твой код я не разбирал, мне это незачем.
Title: Re: Спасите! Помогите!
Post by: Hito on March 15, 2022, 01:30:16 PM
Я отвечал на конкретный пост, где ты писал, что так не пойдёт и кол-во нулей получается неправильным.
Ну, так оно так и есть! Ты скрины-то видишь? Запусти этот код у себя и будет то же самое!
А мой код нули добавляет так!
0001
0010
А в том примере так!
0001
00010
Ты разницу ощущаешь вообще...?
Title: Re: Спасите! Помогите!
Post by: Vint on March 15, 2022, 03:20:50 PM
Ну, так оно так и есть! Ты скрины-то видишь? Запусти этот код у себя и будет то же самое!
А мой код нули добавляет так!
0001
0010
А в том примере так!
0001
00010
Ты разницу ощущаешь вообще...?

Я разницу вижу. Что в коде не так?
(https://i.ibb.co/0qtQ8d4/2022-03-15-15-10-09.png) (https://imgbb.com/)


А вот ты комменты в коде не читаешь
Code: (clickermann) [Select]
// нужный размер (длина) $name Нужно указать количество символов. Ты не указал.

можно так
Code: (clickermann) [Select]
$newlen = 4        // нужный размер (длина) $name
$name = strconcat(strcut("0000",1,$newlen-strlen($name)), $name)

можно так
Code: (clickermann) [Select]
$name = strconcat(strcut("0000", 1, 4-strlen($name)), $name)
а можно и так если не хочешь следить за двумя местами в коде
Code: (clickermann) [Select]
$template = "0000"   // шаблон
$name = strconcat(strcut($template,1, STRLEN($template)-strlen($name)), $name)
Title: Re: Спасите! Помогите!
Post by: Hito on March 15, 2022, 04:07:22 PM
Я разницу вижу. Что в коде не так?
Vint, ты мне моцк что ль выстегнуть решил?  ;D Ты мне предьявил за один код:

Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.

Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.

А прессуешь за другой...  ;D Ппц... Кто пьяный-то? Ты, или я...?  ;D
Title: Re: Спасите! Помогите!
Post by: Hito on March 15, 2022, 04:16:45 PM
Элементарно же лидирующие нолики добавляются.
Code: (clickermann) [Select]
$name="1"         // куда добавлять нолики
$newlen=5        // нужный размер (длина) $name
$name=strconcat(strcut("000000000000",1,$newlen-strlen($name)),$name)
// "1" => "00001"

Элементарно же лидирующие нолики добавляются.
Code: (clickermann) [Select]
$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/)


А вот ты комменты в коде не читаешь
Code: (clickermann) [Select]
// нужный размер (длина) $name Нужно указать количество символов. Ты не указал.

можно так
Code: (clickermann) [Select]
$newlen = 4        // нужный размер (длина) $name
$name = strconcat(strcut("0000",1,$newlen-strlen($name)), $name)

можно так
Code: (clickermann) [Select]
$name = strconcat(strcut("0000", 1, 4-strlen($name)), $name)
а можно и так если не хочешь следить за двумя местами в коде
Code: (clickermann) [Select]
$template = "0000"   // шаблон
$name = strconcat(strcut($template,1, STRLEN($template)-strlen($name)), $name)
Title: Re: Спасите! Помогите!
Post by: Hito on March 15, 2022, 05:00:56 PM
В общем я понял... На моих скринах всего три ноля почему-то... Потому он и вывел
0001
00010
И я с пьяной головы на эти три ноля внимания не обратил...
Title: Re: Спасите! Помогите!
Post by: Hito on March 15, 2022, 05:03:42 PM
За то со мной форум оживился... ;D
Title: Re: Спасите! Помогите!
Post by: JacsoN on March 15, 2022, 08:50:37 PM
За то со мной форум оживился... ;D
ух...сильно ты пропал  да форум ожил )
Title: Re: Спасите! Помогите!
Post by: Hito on March 15, 2022, 09:06:50 PM
За то со мной форум оживился... ;D
ух...сильно ты пропал  да форум ожил )
1 - я женился 5 лет назад )))
(https://sun9-83.userapi.com/impf/OyU0Uvq4XBIDSVjpHDkEa_LYJJuWGtfeyFWpoA/Okk1fjHGHYk.jpg?size=832x1600&quality=95&sign=d1ed55c9f2fe1e2d64490d9d1ed704cb&type=album)
2 - заболел раком прошлым летом.
Как-то вот так и пропал...