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

Основной раздел => Предложения => Topic started by: vovan13 on October 17, 2012, 02:00:33 AM

Title: Массивы и переменные
Post by: vovan13 on October 17, 2012, 02:00:33 AM

1 ввести элементарные массивы и простенькие команды работы с ними
2 увеличить количество переменных больше 99 (королевство маловато, разгуляться негде:) ) как вариант в config.ini добавить строчку максимальное количество переменных

Для простых сценариев это конеша не нужно, но для реализации нормального бота с проверками - маловато.
Title: Re: Массивы и переменные
Post by: Johnny on October 17, 2012, 01:08:39 PM
вова, гуляй на здоровье. ограничения на кол-во переменных в 4.7 нету. просто такую несущественную мелочь я не стал указывать.
так же теоретически переменные могут в себя вмещать длинные (255+) строки, хотя вряд ли это кому то понадобится

массивы находятся в стадии обдумывания
Title: Re: Массивы и переменные
Post by: vovan13 on October 17, 2012, 03:19:37 PM
некоторые мозг царапают думая как впихнуть не впихуемое, а для некоторых это несущественная мелочь. :o
Title: Re: Массивы и переменные
Post by: СлавьЯнИнъ on October 23, 2012, 01:18:36 AM
Во, это похоже на мой случай. Пока 4.6

1. Где написано что существует ограничение в 99 переменных?
2. Как подсчитать кол-во переменных в уже созданном скрипте?

Поясню.
Мой скрипт содержит 2800 строк плюс два инклуда, по 400 и 500 строк.
Недавно (вчера) мне потребовался третий инклуд с массивом и тремя сабами.
Массив пришлось реализовывать банально списком переменных (около 60). После написания и запуска скрипт стал вести себя странно. Выразилось в том, что большинство переменных (из "массива") перестали принимать значения отличные от нуля.

Сейчас я хочу определить является ли причиной сбоя ограничение 99-ти?
Собственно 1 и 2!
Title: Re: Массивы и переменные
Post by: Сергей on October 23, 2012, 04:39:38 AM
1. В этом топике ;D.
2. Ну если только скрипт написать который все это распарсит.
Title: Re: Массивы и переменные
Post by: Johnny on October 23, 2012, 07:58:30 AM
ну объективно может. или еще проще - ты запутался в своих 60 переменных  ;D
если кликер встретит переменную, которая не была объявлена (или была, но не хватило места), то он не будет ругаться, а обработает ее как ноль.

в 4.7 лимит был убран (ну, он ограничен размером оперативки), а вот человеческий фактор (ошибки, описки) убрать ну никак не получится
Title: Re: Массивы и переменные
Post by: Сергей on October 23, 2012, 10:27:18 AM
Написал простенький скрипт на джаваскрипте, который считает кол-во используемых переменных.
Системные пропускает. Регистр игнорирует. Повторы, разумеется, не считает.

http://jsfiddle.net/AH5M2/embedded/result/

Заработал даже на скрипте ЦИТРИН'а c 8к строчек. Кстати там оказывается вообще нет пользовательских переменных (только системные юзаются)
Title: Re: Массивы и переменные
Post by: СлавьЯнИнъ on October 23, 2012, 04:18:05 PM
ЗдОрово!
Особенности:
Считает уже по новой версии, только переменные с долларами.
Считает переменные "спрятанные" за //
Вот бы ещё вывод списка переменных из получившегося массива сделать.
Системные получается вывести, а парсенные нет. Почему Сергей?
Code: [Select]
$('.run').click(function(){
    $('.result').html(count_vars($('.text').attr('value'))+" переменных");
for(var i = 0; i < system_vars.length; i++){document.writeln(system_vars[i])
    document.writeln("</br>")}
}
Title: Re: Массивы и переменные
Post by: Сергей on October 23, 2012, 04:53:47 PM
Хе-хе, не ошибается тот, кто ничего не делает!

>Системные получается вывести, а парсенные нет. Почему Сергей?
Переменная parsed_vars локальная, вне функции её не вызвать. Теперь сделал её глобальной.
Коментарии починил, переменные с процентом тоже. Вроде больше не было способов объявления, через диез только константы.

http://jsfiddle.net/AH5M2/1/embedded/result/
Title: Класс!
Post by: СлавьЯнИнъ on October 23, 2012, 05:12:27 PM
Класс! :)
Вот это уже можно использовать как дополнение к большим сценариям кликера.
Осталось ещё при выводе количества переменных разбить их на строковые и числовые.  ;D
Но это потребует анализа значений, куча мороки и не нужно.
Title: Важный вопрос
Post by: СлавьЯнИнъ on October 25, 2012, 07:28:22 AM
Переменные и константы из const.txt это разные разряды?
Можно ли с помощью них преодолеть 99-ый лимит в версии 4.6?
Title: Re: Важный вопрос
Post by: Johnny on October 25, 2012, 08:20:06 AM
Переменные и константы из const.txt это разные разряды?
Можно ли с помощью них преодолеть 99-ый лимит в версии 4.6?
какой ты хитрый. ну можно сказать что разряды разные. вообще они изначально вводились только ради клавиш, чтоб не лазить без конца в таблицу. и по хорошему теперь надо вслед за строковыми вырезать и константы. и оформить их в виде отдельного файла для #include но уже как переменные с красивыми именами.
но пока они побудут с нами

ну и насколько я помню лимит там больше чем 99 (потому что хотя бы одних клавиш больше ста)
Title: Re: Массивы и переменные
Post by: СлавьЯнИнъ on October 26, 2012, 06:56:22 PM
Я перешёл на 4.7 и могу использовать сколько хочу переменных, но идею с константами попробую ))
Title: Re: Массивы и переменные
Post by: Сергей on October 27, 2012, 12:32:05 PM
http://jsfiddle.net/AH5M2/2/embedded/result/
Разделил строковые и числовые переменные.
Title: AH5M2
Post by: СлавьЯнИнъ on October 27, 2012, 02:38:43 PM
Здорово!
Следующим шагом, на мой взгляд, каксается вывода переменных.
Сделать его поочерёдным: сначала все строковые, как правило их меньше, потом все числовые.
Title: Re: Массивы и переменные
Post by: Сергей on October 27, 2012, 05:36:41 PM
Можно и так.
http://jsfiddle.net/AH5M2/3/embedded/result/
Title: Re: Массивы и переменные
Post by: СлавьЯнИнъ on October 27, 2012, 07:42:22 PM
(http://crapware.aidf.org/forum/Themes/default/images/post/thumbup.gif) Позабавила строка:
Code: [Select]
"$_return1", "$_return2"//, "$_hwnd" - не было в 4.6
Title: Re: Массивы и переменные
Post by: Ляпис on October 27, 2012, 11:19:04 PM
Вот пример для замены одномерного массива.
Я использую строку и забиваю в неё все данные $data = "123;456;789;012;345" и далее STRCUT'ом вырезаю нужную по порядку цифру. Обратите внимание что если использовать в качестве разделителя символы / * + - то кликер переведёт строку в выражение и в переменной будет храниться его результат. Удачи!)))
Title: Re: Массивы и переменные
Post by: СлавьЯнИнъ on October 28, 2012, 05:11:01 PM
Идея хороша, Ляпис. Пример рабочий.
Также на примере видно, что подходит для массивов чисел с одинаковым количеством разрядов. А когда разрядность от 2 до 9, да ещё меняться может. Это strcut'ами вырезать не отследишь.
Title: Re: Массивы и переменные
Post by: Ляпис on October 28, 2012, 09:24:01 PM
Идея хороша, Ляпис. Пример рабочий.
Также на примере видно, что подходит для массивов чисел с одинаковым количеством разрядов. А когда разрядность от 2 до 9, да ещё меняться может. Это strcut'ами вырезать не отследишь.
Всё решаемо. Разрядность доводится к одному виду нулями перед числом. В версиях <=4.6 была для этого удобная фича в операторе TOSTR($var, 9). В 4.7 придётся сделать что-то типа:
Code: [Select]
$var = 412
$data = STRCONCAT(STRCUT("000000000", 1, 9 - STRLEN($var)), $var, ";")
PRINT($data)
halt
Title: Re: Массивы и переменные
Post by: СлавьЯнИнъ on October 28, 2012, 11:49:22 PM
Согласен, это решение! Зачёт ))) 12+
Title: Re: Массивы и переменные
Post by: ЦИТРИН on October 29, 2012, 12:53:09 AM
$data = "123;456;789;012;345" и далее STRCUT'ом вырезаю нужную по порядку цифру
В принципе,  из этого может получиться  неплохой генератор-хранилище паролей.
В  INPUTBOX вставляем слово-маркер ("мяч", "чай" итп),  а дальше работает Ваше предложение о длинной строке.