Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Зануда on May 29, 2017, 03:07:17 PM
-
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
где то что то не так он делает все правильно но с каждым следующим вызовом он думает все дольше и дольше :-\
-
UNDEFINE ааа все от чего никто не сказал что после того как использовали надо удалять >:( а я тут мучаюсь нз что за еронда :'(
-
UNDEFINE ааа все от чего никто не сказал что после того как использовали надо удалять >:( а я тут мучаюсь нз что за еронда :'(
О том что руки после туалета нужно мыть, тут тоже никто не сказал.
Так выходит, ты немытый мучаешься?
Ах, плохие - злые форумчане! >:(
??? что за сарказм >:( я вопше не в теме про эти массивы чуть ниже задал вопрос как упростить если одно действия на разные рисунки мне там кинули с масивом пример я все так и сделал а оно тупить начало и я смотрел на пример и не понимал все так же чего оно тупит то а оказалось есть еще и команда удаления массива которую над после его выполнения делать которой кстати в примере не было :'( :-[ и для меня понять что не так было просто невыполнимой миссией но я справился :P 8)
-
>:( я вопше не в теме про эти массивы чуть ниже задал вопрос как упростить если одно действия на разные рисунки мне там кинули с масивом пример я все так и сделал а оно тупить начало и я смотрел на пример и не понимал все так же чего оно тупит то а оказалось есть еще и команда удаления массива которую над после его выполнения делать которой кстати в примере не было :'( :-[ и для меня понять что не так было просто невыполнимой миссией но я справился :P 8)
Вот и молодец что справился. А я ждал этого вопроса, в той теме специально не стал прописывать удаление массива. Согласись что приятно самому решать задачи, а не ждать готовых ответов.
-
>:( я вопше не в теме про эти массивы чуть ниже задал вопрос как упростить если одно действия на разные рисунки мне там кинули с масивом пример я все так и сделал а оно тупить начало и я смотрел на пример и не понимал все так же чего оно тупит то а оказалось есть еще и команда удаления массива которую над после его выполнения делать которой кстати в примере не было :'( :-[ и для меня понять что не так было просто невыполнимой миссией но я справился :P 8)
Вот и молодец что справился. А я ждал этого вопроса, в той теме специально не стал прописывать удаление массива. Согласись что приятно самому решать задачи, а не ждать готовых ответов.
ну как сказать :D я сначала сделал скрипт себе через твой пример все вышло около 600строк потом понял что он начинает что дольше дольше думать я подумал чет я натупил где не так что то все снес написал все по новому через обычные условия вышло 3к+ ;D и там вбил еще раз один твой пример и уж точно было что именно из за негоо5 тормозит ;D кароче ужасно потом начал искать и нашел 8) ладно бы еслиб я сразу подумал что это с ним что то не так а так не я подумал что это я где то запутался и гдето что то пропустил :-\
-
как по мне, это как то не логично - при каждом вызове подпрограммы обьявлять массив и удалять при завершении выполнения подпрограммы. создал бы массив где нибудь в начале скрипта (можно и в подпрограмме), но так, чтобы при выполнении больше его не трогать (если это не требуется). к примеру так:
IF($var = 0)
STRSEPARATE("рецепт рыжий,рецепт зеленый",",",$picture)
$var = 1
END_IF
-
хм,тоже интересно :o а как лучше для работы самого кликера чтоб все делалось быстренько и минимальной нагрузкой :D
-
хм,тоже интересно :o а как лучше для работы самого кликера чтоб все делалось быстренько и минимальной нагрузкой :D
нагрузки тут в принципе никакой. тут дело в самом понимании того что у тебя есть, и как это всё работает. я лично стараюсь такие вещи обьявлять гденибудь в одном месте, на виду, чтоб если что, при отладке можно чтото добавить или чтото изменить. но случаи бывают разные.
но согласись, это же не логично - обьявлять какието данные при обращении к ним и удалять их сразу после этого. если точно уверен, что эти данные будут нужны снова.
-
хм,тоже интересно :o а как лучше для работы самого кликера чтоб все делалось быстренько и минимальной нагрузкой :D
нагрузки тут в принципе никакой. тут дело в самом понимании того что у тебя есть, и как это всё работает. я лично стараюсь такие вещи обьявлять гденибудь в одном месте, на виду, чтоб если что, при отладке можно чтото добавить или чтото изменить. но случаи бывают разные.
но согласись, это же не логично - обьявлять какието данные при обращении к ним и удалять их сразу после этого. если точно уверен, что эти данные будут нужны снова.
а хотя а какая разница вот ты его запихнул в условия так подпрограмма же тоже только после вызова так что это бы ничего не изменило ;D что он у меня был в подпрограмме что еще и с доп условиям на выполнения
-
о еще вопрос по поводу массива как можно сделать
STRSEPARATE("рецепт рыжий,рецепт зеленый",",",$picture)
чтоб после нахождения в лог выдавало именно то что нашло ?
-
мне там кинули с масивом пример я все так и сделал а оно тупить начало...
На то он и пример что примерный :).
о еще вопрос по поводу массива как можно сделать
STRSEPARATE("рецепт рыжий,рецепт зеленый",",",$picture)
чтоб после нахождения в лог выдавало именно то что нашло ?
LOGWRITE("нашли ", $picture[$drop2])
-
спасибки :D
-
мне там кинули с масивом пример я все так и сделал а оно тупить начало...
На то он и пример что примерный :).
о еще вопрос по поводу массива как можно сделать
STRSEPARATE("рецепт рыжий,рецепт зеленый",",",$picture)
чтоб после нахождения в лог выдавало именно то что нашло ?
LOGWRITE("нашли ", $picture[$drop2])
а ее можно наращивать? чтоб выдавало что именно нашло и сколько раз к каждой картинки из массива отдельно чтоб считало какой раз именно ее нашло а так выдает что именно но нет сколько раз я что то вот ту команду куда ее пристраивал INC выдает ошибку :-[ а если вбить другую переменную то будет просто считать сколько раз нашло любую картинку
-
Задаём начальные значения счётчиков
STRSEPARATE("0,0",",",$counts)
только ради бога, не внутри циклов!
При нахождении наращиваем соответствующий счётчик
$counts[$drop2] = $counts[$drop2] + 1
LOGWRITE("нашли ", $picture[$drop2], " ", $counts[$drop2], " раз(а)")
-
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
-
и вот выходит что запись в лог идет как нужно но дело в том что лог автоматом удаляется когда вырастает до какого то предела
В файле Clickermann\data\config.ini есть параметр
; Максимальное количество строчек в окне лога (0 - без лимита)
; (Спасает от пожирания оперативки программой при многократном и/или длительном выводе в лог)
max_log_size =100
правишь его. У меня стоит 500, можно и 1000.
Ещё, в начале файла можно прописать
#logfile
Включает ведение лог-файла в папке проекта, куда дублируется весь вывод через logwrite / print. Файл сам не чистится!
-
И перемести всё таки задание константы $picture1 в начало, нечего его создавать-удалять
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) убери.
-
Индексы перебери.
И вынеси вывод лога в отдельный поток
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
-
STRSEPARATE("рец сер,рец зел,рец син,рец фиол,рец жел,рец крас,молот,серп",",",$picture1)
у меня эта строчка была в подпрограмме и оно с каждым разом все дольше думало решилось с помощью его удаления а если перенести его в начало оно не начнет так же каждый раз все дольше думать или я не правильно понял и когда оно было в подпрограмме то оно каждый раз создавало новый масив при каждом вызове а когда в начало то будет просто его применять ?
-
первое нажатия на L воспринимается правильно и выдает инфу а второе уже нет почему то :-\ все масивы как вы сказали перенес в начало убрал все удаления их вот скрин что выдает если второй раз жмякаю[spoiler](https://s8.hostingkartinok.com/uploads/thumbs/2017/05/ca17b95f6f1a350e58aca4334875c2e5.png) (https://hostingkartinok.com/show-image.php?id=ca17b95f6f1a350e58aca4334875c2e5)[/spoiler]
-
STRSEPARATE("рец сер,рец зел,рец син,рец фиол,рец жел,рец крас,молот,серп",",",$picture1)
у меня эта строчка была в подпрограмме и оно с каждым разом все дольше думало решилось с помощью его удаления а если перенести его в начало оно не начнет так же каждый раз все дольше думать или я не правильно понял и когда оно было в подпрограмме то оно каждый раз создавало новый масив при каждом вызове а когда в начало то будет просто его применять ?
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 уже есть и готов к использованию.
-
я так все и сделал спасибо теперь я так понял оно тогда начинало зависать потому что массив при каждом вызове создавался :? хотя он уже и был создан я правильно понял?
-
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
-
FOR($inf=0, $inf < 2)// что значит ? $inf это сколько в массиве картинок нужно вписывать или что ?
Да. Я написал 2 т.к. ты в вопросе указывал 2 картинки, а полностью свой скрипт много раз измененный не показывал.
А лучше не число, а
FOR($inf=0, $inf < ARRSIZE($picture1))
На счет ошибки, у тебя массивы точно сделаны одной длины?
-
все спасибо я понял ;D
FOR($inf=0, $inf < ARRSIZE($picture1)) это оно само определит сколько там картинок ?)