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

Основной раздел => Общие вопросы => Topic started by: Зануда on May 29, 2017, 03:07:17 PM

Title: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 29, 2017, 03:07:17 PM
Code: (clickermann) [Select]
SUB(нападать)
   
   STRSEPARATE("рецепт рыжий,рецепт зеленый",",",$picture)
   FOR($drop2=0,$drop2<ARRSIZE($picture))
      GETSCREEN($xx+333,$yy+108, $xx+630,$yy+370)
      IF_PICTURE_IN($xx+333,$yy+108, $xx+630,$yy+370,STRCONCAT($picture[$drop2],".bmp"),-1,80)
         IF($_log_log=1)
            LOGWRITE ("есть смысл")
         END_IF
         GETSCREEN ($xx+333,$yy+108, $xx+630,$yy+370)
         IF_PICTURE_IN ($xx+333,$yy+108, $xx+630,$yy+370, "напасть.bmp", -1, 80)
            IF($_log_log=1)
               LOGWRITE ("напасть")
            END_IF
            m_move($_return1+RND(-5,5), $_return2+RND(-5,5))
            LCLICK($_xmouse,$_ymouse)
         END_IF
         $drop2=ARRSIZE($picture)+999
      ELSE
         WAITMS(5)
      END_IF
   END_CYC
   IF($drop2<999)
      //GETSCREEN ($xx+333,$yy+108, $xx+630,$yy+370)
      IF_PICTURE_IN ($xx+333,$yy+108, $xx+630,$yy+370, "прогон.bmp", -1, 80)
         IF($_log_log=1)
            LOGWRITE ("проганяем")
         END_IF
         m_move($_return1+RND(-5,5), $_return2+RND(-5,5))
         LCLICK($_xmouse,$_ymouse)
         $drop2=ARRSIZE($picture)+999                                               
      END_IF
   END_IF
END_SUB
где то что то не так он делает все правильно но с каждым следующим вызовом он думает все дольше и дольше  :-\
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 29, 2017, 07:54:36 PM
UNDEFINE ааа все от чего никто не сказал что после того как использовали надо удалять  >:(   а я тут мучаюсь нз что за еронда  :'(
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 29, 2017, 10:38:49 PM
UNDEFINE ааа все от чего никто не сказал что после того как использовали надо удалять  >:(   а я тут мучаюсь нз что за еронда  :'(
О том что руки после туалета  нужно мыть, тут тоже никто не сказал.
Так выходит, ты немытый мучаешься?
Ах, плохие - злые форумчане! >:(
  ??? что за сарказм  >:( я вопше не в теме про эти массивы чуть ниже задал вопрос как упростить если одно действия на разные рисунки мне там кинули с масивом пример я все так и сделал а оно тупить начало и я смотрел на пример и не понимал все так же чего оно тупит то а оказалось есть еще и команда удаления массива которую над после его выполнения делать которой кстати в примере не было  :'(   :-[ и для меня понять что не так было просто невыполнимой миссией но я справился  :P 8)
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: open_78 on May 29, 2017, 10:46:31 PM
  >:( я вопше не в теме про эти массивы чуть ниже задал вопрос как упростить если одно действия на разные рисунки мне там кинули с масивом пример я все так и сделал а оно тупить начало и я смотрел на пример и не понимал все так же чего оно тупит то а оказалось есть еще и команда удаления массива которую над после его выполнения делать которой кстати в примере не было  :'(   :-[ и для меня понять что не так было просто невыполнимой миссией но я справился  :P 8)
Вот и молодец что справился. А я ждал этого вопроса, в той теме специально не стал прописывать удаление массива. Согласись что приятно самому решать задачи, а не ждать готовых ответов.
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 29, 2017, 11:14:22 PM
  >:( я вопше не в теме про эти массивы чуть ниже задал вопрос как упростить если одно действия на разные рисунки мне там кинули с масивом пример я все так и сделал а оно тупить начало и я смотрел на пример и не понимал все так же чего оно тупит то а оказалось есть еще и команда удаления массива которую над после его выполнения делать которой кстати в примере не было  :'(   :-[ и для меня понять что не так было просто невыполнимой миссией но я справился  :P 8)
Вот и молодец что справился. А я ждал этого вопроса, в той теме специально не стал прописывать удаление массива. Согласись что приятно самому решать задачи, а не ждать готовых ответов.
ну как сказать  :D я сначала сделал скрипт себе через твой пример все вышло около 600строк потом понял что он начинает что дольше дольше думать я подумал чет я натупил где не так что то все снес написал все по новому через обычные условия вышло 3к+ ;D и там вбил еще раз один твой пример и уж точно было что именно из за негоо5 тормозит  ;D кароче ужасно потом начал искать  и нашел  8) ладно бы еслиб я сразу подумал что это с ним что то не так а так не я подумал что это я где то запутался  и гдето что то пропустил  :-\
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: dramster on May 29, 2017, 11:24:48 PM
как по мне, это как то не логично -  при каждом вызове подпрограммы обьявлять массив и удалять при завершении выполнения подпрограммы.  создал бы массив где нибудь в начале скрипта (можно и в подпрограмме), но так, чтобы при выполнении больше его не трогать (если это не требуется). к примеру так:
Code: (clickermann) [Select]
IF($var = 0)
   STRSEPARATE("рецепт рыжий,рецепт зеленый",",",$picture)
   $var = 1
END_IF
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 29, 2017, 11:31:48 PM
хм,тоже интересно  :o а как лучше для работы самого кликера чтоб все делалось быстренько и минимальной нагрузкой  :D
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: dramster on May 29, 2017, 11:41:08 PM
хм,тоже интересно  :o а как лучше для работы самого кликера чтоб все делалось быстренько и минимальной нагрузкой  :D
нагрузки тут в принципе никакой. тут дело в самом понимании того что у тебя есть, и как это всё работает. я лично стараюсь такие вещи обьявлять гденибудь в одном месте, на виду, чтоб если что, при отладке можно чтото добавить или чтото изменить. но случаи бывают разные.
но согласись, это же не логично - обьявлять какието данные при обращении к ним и удалять их сразу после этого. если точно уверен, что эти данные будут нужны снова.
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 30, 2017, 12:20:08 AM
хм,тоже интересно  :o а как лучше для работы самого кликера чтоб все делалось быстренько и минимальной нагрузкой  :D
нагрузки тут в принципе никакой. тут дело в самом понимании того что у тебя есть, и как это всё работает. я лично стараюсь такие вещи обьявлять гденибудь в одном месте, на виду, чтоб если что, при отладке можно чтото добавить или чтото изменить. но случаи бывают разные.
но согласись, это же не логично - обьявлять какието данные при обращении к ним и удалять их сразу после этого. если точно уверен, что эти данные будут нужны снова.
а хотя а какая разница вот ты его запихнул в условия  так подпрограмма же тоже только после вызова так что это бы ничего не изменило  ;D что он у меня был в подпрограмме что еще и с доп условиям на выполнения
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 30, 2017, 08:11:27 AM
о еще вопрос по поводу массива как можно сделать
STRSEPARATE("рецепт рыжий,рецепт зеленый",",",$picture)
чтоб после нахождения в лог выдавало именно то что нашло ?
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Vint on May 30, 2017, 09:30:24 AM
мне там кинули с масивом пример я все так и сделал а оно тупить начало...

На то он и пример что примерный  :).

о еще вопрос по поводу массива как можно сделать
STRSEPARATE("рецепт рыжий,рецепт зеленый",",",$picture)
чтоб после нахождения в лог выдавало именно то что нашло ?

Code: (clickermann) [Select]
LOGWRITE("нашли ", $picture[$drop2])
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 30, 2017, 09:58:35 AM
спасибки :D
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 30, 2017, 10:31:56 AM
мне там кинули с масивом пример я все так и сделал а оно тупить начало...

На то он и пример что примерный  :).

о еще вопрос по поводу массива как можно сделать
STRSEPARATE("рецепт рыжий,рецепт зеленый",",",$picture)
чтоб после нахождения в лог выдавало именно то что нашло ?

Code: (clickermann) [Select]
LOGWRITE("нашли ", $picture[$drop2])

а ее можно наращивать? чтоб выдавало что именно нашло и сколько раз к каждой картинки из массива отдельно чтоб считало какой раз именно ее  нашло а так выдает что именно но нет сколько раз я что то вот ту команду куда ее пристраивал INC выдает ошибку  :-[ а если вбить другую переменную то будет просто считать сколько раз нашло любую картинку
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Vint on May 30, 2017, 10:52:15 AM
Задаём начальные значения счётчиков
Code: (clickermann) [Select]
STRSEPARATE("0,0",",",$counts)только ради бога, не внутри циклов!

При нахождении наращиваем соответствующий счётчик
Code: (clickermann) [Select]
$counts[$drop2] = $counts[$drop2] + 1
LOGWRITE("нашли ", $picture[$drop2], "  ", $counts[$drop2], " раз(а)")
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 30, 2017, 03:37:57 PM
Code: (clickermann) [Select]
IF($t_ob=0)
$guests = 0
$guest_page = 0
STRSEPARATE("0,0,0,0,0,0,0,0",",",$drop_shet)
 $t_ob=1
END_IF

SUB(дроп)

   STRSEPARATE("рец сер,рец зел,рец син,рец фиол,рец жел,рец крас,молот,серп",",",$picture1)
//тут условия есть
$drop_shet[$drop1] = $drop_shet[$drop1] + 1
  LOGWRITE("забрали ", $picture1[$drop1], "  ", $drop_shet[$drop1], " раз(а)")
//еще условия
INC($prodali_1,1)
               LOGWRITE ("продали: ", $prodali_1, " раз")
   UNDEFINE($picture1)
END_SUB
//кусок скрипта
// и вот выходит что запись в лог идет как нужно но дело в том  что лог автоматом удаляется когда вырастает до какого то предела
IF(ISKEYDOWN(#L)=1) // при нажатии L
   WHILE(ISKEYDOWN(#L)=1) // хотелось бы чтоб при нажатии кнопки выводило все что он забирал и сколько штук
      LOGCLEAR
      LOGWRITE ("продали: ", $prodali_1, " раз")//это показывает потому что эта переменная сразу только к одному привязана
     LOGWRITE("забрали ", $picture1[$drop1], "  ", $drop_shet[$drop1], " раз(а)")// а тут просто 0 выдает что то нужно добавить как то объяснить что именно нужно каждый предмет с его ко-ом показать
      WAIT(3)
       END_CYC
   END_IF



Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Vint on May 30, 2017, 05:33:28 PM
и вот выходит что запись в лог идет как нужно но дело в том  что лог автоматом удаляется когда вырастает до какого то предела

В файле Clickermann\data\config.ini есть параметр
; Максимальное количество строчек в окне лога (0 - без лимита)
; (Спасает от пожирания оперативки программой при многократном и/или длительном выводе в лог)
max_log_size =100

правишь его. У меня стоит 500, можно и 1000.


Ещё, в начале файла можно прописать
Code: (clickermann) [Select]
#logfile Включает ведение лог-файла в папке проекта, куда дублируется весь вывод через logwrite / print. Файл сам не чистится!

Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Vint on May 30, 2017, 05:35:09 PM
И перемести всё таки задание константы $picture1 в начало, нечего его создавать-удалять
Code: (clickermann) [Select]
IF($t_ob=0)
    $guests = 0
    $guest_page = 0
    STRSEPARATE("0,0,0,0,0,0,0,0",",",$drop_shet)
    STRSEPARATE("рец сер,рец зел,рец син,рец фиол,рец жел,рец крас,молот,серп",",",$picture1)
    $t_ob=1
END_IF

А удаление UNDEFINE($picture1) убери.
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Vint on May 30, 2017, 05:42:31 PM
Индексы перебери.
И вынеси вывод лога в отдельный поток
Code: (clickermann) [Select]
THREAD(logger, 1)
    IF(ISKEYDOWN(#L) = 1)
        LOGCLEAR
        LOGWRITE ("продали: ", $prodali_1, " раз")
        FOR($inf=0, $inf < 2)
            LOGWRITE("забрали ", $picture1[$inf], "  ", $drop_shet[$inf], " раз(а)")
        END_CYC
        WAITMS(900)
    END_IF
    WAITMS(100)
END_THREAD
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 30, 2017, 06:24:14 PM
Code: (clickermann) [Select]
STRSEPARATE("рец сер,рец зел,рец син,рец фиол,рец жел,рец крас,молот,серп",",",$picture1)
у меня эта строчка была в подпрограмме и оно с каждым разом все дольше думало решилось с помощью его удаления  а если перенести его в начало оно не начнет так же каждый раз все дольше думать или я не правильно понял и когда оно было в подпрограмме то оно каждый раз создавало новый масив при каждом вызове а когда в начало то будет просто его применять ?
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 30, 2017, 06:51:28 PM
первое нажатия на L воспринимается правильно и выдает инфу а второе уже нет почему то  :-\ все масивы как вы сказали перенес в начало убрал все удаления их вот скрин что выдает если второй раз жмякаю[spoiler](https://s8.hostingkartinok.com/uploads/thumbs/2017/05/ca17b95f6f1a350e58aca4334875c2e5.png) (https://hostingkartinok.com/show-image.php?id=ca17b95f6f1a350e58aca4334875c2e5)[/spoiler]
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: dramster on May 30, 2017, 06:53:02 PM
Code: (clickermann) [Select]
STRSEPARATE("рец сер,рец зел,рец син,рец фиол,рец жел,рец крас,молот,серп",",",$picture1)
у меня эта строчка была в подпрограмме и оно с каждым разом все дольше думало решилось с помощью его удаления  а если перенести его в начало оно не начнет так же каждый раз все дольше думать или я не правильно понял и когда оно было в подпрограмме то оно каждый раз создавало новый масив при каждом вызове а когда в начало то будет просто его применять ?
Code: (clickermann) [Select]
IF($t_ob=0)
    $guests = 0
    $guest_page = 0
    STRSEPARATE("0,0,0,0,0,0,0,0",",",$drop_shet)
    STRSEPARATE("рец сер,рец зел,рец син,рец фиол,рец жел,рец крас,молот,серп",",",$picture1)
    $t_ob=1
END_IF

этот код сработает один раз. он обьявит две переменные и два массива. один из них $picture1. далее добавляться к нему ничего не будет. при этом тебе нужно убрать из подпрограммы строки добавления и удаления (STRSEPARATE и UNDEFINE), так как массив $picture1 уже есть и готов к использованию.
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 30, 2017, 07:00:06 PM
я так все и сделал спасибо теперь я так понял оно тогда начинало зависать потому что массив при каждом вызове создавался :? хотя он уже и был создан я правильно понял?
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 30, 2017, 07:10:48 PM
THREAD(logger, 1)
    IF(ISKEYDOWN(#L) = 1)
        LOGCLEAR
        LOGWRITE ("продали: ", $prodali_1, " раз")
        FOR($inf=0, $inf < 2)// что значит ? $inf это сколько в массиве картинок нужно вписывать или что ?
            LOGWRITE("забрали ", $picture1[$inf], "  ", $drop_shet[$inf], " раз(а)")
        END_CYC
        WAITMS(900)
    END_IF
    WAITMS(100)
END_THREAD
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Vint on May 30, 2017, 08:04:11 PM
        FOR($inf=0, $inf < 2)// что значит ? $inf это сколько в массиве картинок нужно вписывать или что ?
Да. Я написал 2 т.к. ты в вопросе указывал 2 картинки, а полностью свой скрипт много раз измененный не показывал.
А лучше не число, а
FOR($inf=0, $inf < ARRSIZE($picture1))

На счет ошибки, у тебя массивы точно сделаны одной длины?
Title: Re: где то ошибка или что то забыл не могу понять где
Post by: Зануда on May 30, 2017, 08:55:57 PM
все спасибо я понял  ;D
FOR($inf=0, $inf < ARRSIZE($picture1)) это оно само определит сколько там картинок ?)