InfSub, сначала он использовался в iim, но потом мне понадобилось переделать скрипт в js и просто скопировала содержимое eval. Этот кусок кода именно в js работал раньше.
Вот он в iim (в таком виде работает правильно):
SET COMMENT EVAL("var words = ['amazing','sweet']; var string = ''; string += words[parseInt([h]Math.random[/h]() * 25)]; string")
var arr = ["Яблоко", "Апельсин", "Груша", "Лимон"]; var rand = Math.floor([h]Math.random[/h]() * arr.length); alert( arr[rand] );
Здравствуйте. Почему-то перестал работать в iMacros данный код:
var words = ['слово1','слово2','слово3','итд','слово31']; var string = ''; string += words[parseInt([h]Math.random[/h]() * 30)]; string;
Здравствуйте. Возникла такая проблема, скрипт рассылки на фейсбук работает, только перестал рассылать сообщения в группы, только заходит, ждет и уходит в другую группу... Честно не пойму в чем причина, помогите разобраться. Вот сам код:
SET !ERRORIGNORE YES SET !VAR1 "Отзывы, жалобы и предложения о компаниях" SET !VAR2 EVAL("Math.floor([h]Math.random[/h]()*30 + 1);") SET !VAR3 EVAL("Math.floor([h]Math.random[/h]()*30 + 1);") SET !VAR4 EVAL("Math.floor([h]Math.random[/h]()*30 + 1);") SET !VAR5 EVAL("Math.floor([h]Math.random[/h]()*30 + 1);") URL GOTO=https://www.facebook.com/groups/?category=groups&ref=tab_nav 'SET !REPLAYSPEED MEDIUM TAG POS={{!LOOP}} TYPE=A ATTR=HREF:/groups/* WAIT SECONDS={{!VAR2}} TAG POS=1 TYPE=TEXTAREA ATTR=NAME:xhpc_message WAIT SECONDS={{!VAR3}} TAG POS=1 TYPE=TEXTAREA FORM=ID:* ATTR=ID:u* CONTENT={{!VAR1}} WAIT SECONDS={{!VAR4}} TAG POS=1 TYPE=BUTTON FORM=ID:* ATTR=TXT:Опубликовать WAIT SECONDS={{!VAR5}}
нужно второе, т.е. проверить вхождение рандома в диапазон. if(26 > (s) < 50)
используйте так-:
function rand(min, max){ return (min + Math.floor([h]Math.random[/h]()*(max - min))); } rand(0, 50); check = "сгенерировали число меньше 50: "+s+""; alert('что нужно делать, если число меньше 50?'); iimDisplay(check); rand(50, 51) check = "сгенерировали число, равное 50: "+s+""; iimDisplay(check); alert('а если равно'); rand(52, 100); check = "сгенерировали число больше 50: "+s+""; iimDisplay(check); alert('а что если больше?');
вариант разбиения сгенерированного рандома на диапазоны
не совсем понял, что Вы хотите получить? рандом в диапазоне или проверить вхождение рандома в диапазон.
попробуйте так- рандом в диапазоне
var min = 26; var max = 50; var number = max - min; s=Math.floor([h]Math.random[/h]()*(number)); var result = s + min;
Здравствуйте. Подскажите вариант разбиения сгенерированного рандома на диапазоны, например, от 0 и до 25, от 26 и до 50, от 51 и до 75, от 76 и до 100. Вроде на форуме были подобные примеры, найти их не смог. Мой образец позволяет разбить на 3 части по фиксированным значениям, а хотелось бы больше и по диапазонам:
var number=100; for(q=1; q<=10; q++){ s=Math.floor([h]Math.random[/h]()*(number)); iimSet("s", s) if((s) < 50){ check = "сгенерировали число меньше 50: "+s+""; iimDisplay(check); }else if ((s)=50){ check = "сгенерировали число, равное 50: "+s+""; iimDisplay(check); }else{ check = "сгенерировали число больше 50: "+s+""; iimDisplay(check); } iimPlayCode('PAUSE'); }
Здравствуйте. Такой вопрос: можно ли (и самое главное, как) проверить сгенерированное рандомное число на чётность? Задача: в зависимости от сгенерированного числа скрипт делает действие 1 (если число чётное) или действие 2 (если нечётное). Я пока смог сделать проверку меньше или больше определённого числа. В принципе, тоже рабочий вариант, но чёт\нечет мне видится красивее.
var number=100; for(q=1; q<=10; q++){ s=Math.floor([h]Math.random[/h]()*(number)); iimSet("s", s) if((s) <= 50){ check = "сгенерировали число меньше 50: "+s+""; iimDisplay(check); }else{ check = "сгенерировали число больше 50: "+s+""; iimDisplay(check); } iimPlayCode('PAUSE'); }
В каких случаях правильно применять {{ }}, а в каких '+ +'?
без разницы, работает и так и так - везде
если не работает - ищите ошибки, например
, что для TAG POS= не допустимо
А теперь задайте вопрос так, чтобы его можно было понять и приведите пример кода с которым проблемы
Думаю, ему нужна такая конструкция:
if(iimPlay("тут проверка 1")>0){ iimPlayCode('действие'); }else if (iimPlay("тут проверка 2")<0){ iimPlayCode('действие'); }else{ iimPlayCode('действие если проверка 1 и 2 не подходят') }
for (r = 1; r <= 5; r++) { iimSet("r", r); ret = iimPlay("CODE:TAG POS={{r}} TYPE=A ATTR=class:photoWrapper EXTRACT=HREF \nTAB OPEN \nTAB T=2 \nURL GOTO={{!EXTRACT}}"); }
()*7);
iimPlayCode('SET !TIMEOUT_STEP 0 \n SET !ERRORIGNORE YES \n TAG P
Rushec91
Изучи основы программирования, потом основы js это не долго :)
function rnd(min, max) { return Math.floor([h]Math.random[/h]() * (max - min + 1)) + min; }; //Всё что выше это функция(function), вставь её в начало скрипта var a = rnd(5, 17) // Тут мы отправляем в функцию диапазон чисел от 5 до 17, функция его обрабатывает и выдаёт рандомное значение(значение будет в перемeнной 'a') //Далее мы эту переменную вставляем в условие цикла (d<=a) for (var d = 1; d <= a; d++) { iimPlay("INST/Inst222.iim"); }
nikolay1987
удалено - избыточное цитирование
Не совсем понял почему, но он мне просто цифру выдает и кнопку "ОК"
Я сделал правильно?
function rnd(min, max) {return Math.floor([h]Math.random[/h]() * (max - min + 1)) + min;}; var a = rnd(5, 17) alert(a) {iimPlay("INST/Inst222.iim");}
Rushec91
function rnd(min, max) { return Math.floor([h]Math.random[/h]() * (max - min + 1)) + min; }; var a = rnd(5, 17) alert(a)
udalov
var a = 6; var b = 1; var timer1=Math.floor([h]Math.random[/h]()*(a - b) + b); alert(timer1)
Подскажите, второй вариант кода не работает, потому что нельзя использовать в
переменные a и b или я делаю всё не так?
var cm = 6; var cm2 = 1; iimSet("a", cm); iimSet ("b", cm2); var timer1=Math.floor([h]Math.random[/h]()*({{a}} - {{b}} + {{b}});
Может быть, это ограничения Инстаграма на количество подписок? В любом случае, без кода макроса ответа сложно получить.
Вот код, на счет ограничения самого интаграма не знаю, я думаю если бы было ограничение то оно срабатывало по достижению определенного пика но, такая ерунда происходит то на 500 подписках, то на 100 а иногда и на 900.
VERSION BUILD=9030808 RECORDER=FX SET !ERRORIGNORE YES SET !ERRORCONTINUE YES FILTER TYPE=IMAGES STATUS=OFF TAB T=1 TAG POS=2 TYPE=BUTTON ATTR=TXT:Подписаться SET !VAR1 EVAL("Math.floor([h]Math.random[/h]()*10 + 38);") WAIT SECONDS={{!VAR1}}
InfSub
…Алим
Можно было и без перемешивания обойтись:
var linkList = window.document.querySelectorAll("li[id*='result_']"); var a = severalRandom(0, linkList.length, linkList.length); alert(a); for (i=0; i<linkList.length; i++) { alert(a[i]) } function severalRandom(min, max, num) { var i, arr = [], res = []; for (i = min; i <= max; i++ ) arr.push(i); for (i = 0; i < num; i++) res.push(arr.splice(Math.floor([h]Math.random[/h]() * (arr.length)), 1)[0]) return res; }
На странице сайта озон есть товары.
Количество товаров на странице может быть разное: до 18 и до 30
Потом возникла проблема. Количество товаров на странице в зависимости от запроса товара, может быть разной.
Вопрос. Как сделать так, чтобы цифры в массиве удалялись или не брались остальные не нужные?
Например 18 товаров и нужны цифры от 1 до 18, а от 19 до 30 чтобы цифры не использовались.
Решил сделать через условие, но пропускает циклы где попадаются цифры больше 18
…есть вот такой код
curr_vkl = window.location.hostname; var links = window.document.querySelectorAll('li a'); if(links.length == 0) { location = 'http://yandex.ru'; } else { links[Math.floor([h]Math.random[/h]()*links.length)].click(); }
как сделать чтоб нажимались только ссылки содержащие curr_vkl
InfSub
var letters = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','w','x','y','z']; var string = ''; for(var i = 0; i < 7; i++){string += letters[parseInt([h]Math.random[/h]() * 25)]}; iimPlayCode('PROMPT "'+string+'"');
Как сделать чтобы этот код заработал в iimPlayCode ?
Вторая строчка EVAL
iimPlayCode("SET !ERRORIGNORE YES\n" + "SET !VAR1 EVAL('var letters = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','w','x','y','z']; var string = ''; for(var i = 0; i < 7; i++){string += letters[parseInt([h]Math.random[/h]() * 25)]}; string')\n"+ "PROMPT {{!VAR1}}")
не вставляется экстракт
[spoiler][code]for (a = 1; a <80; a++){
iimSet("a",a);
var r =
() * 8 + 1;
var macro;
macro = "CODE:";
macro += "SET !ERRORIGNORE YES" + "\n";
macro += "SET !REPLAYSPEED SLOW" + "\n";
macro += "SET !EXTRACT_TEST_POPUP NO" + "\n";
macro += 'TAG POS={{a}} TYPE=DIV ATTR=CLASS:"grid_i_tx clamp" EXTRACT=TXT' + '\n';
macro += "SET !VAR2 {{!EXTRACT}}" + "\n";
macro += "WAIT SECONDS=1" + "\n";
macro += 'TAG POS={{a}} TYPE=SPAN ATTR=class:"ic ic-msg __empty ic16"' + '\n';
macro += "WAIT SECONDS=1" + "\n";
var extractedtext=iimGetLastExtract();
var macro2;
macro2 = "CODE:";
macro2 += "SET !ERRORIGNORE YES" + "\n";
macro2 += "SET !REPLAYSPEED MEDIUM" + "\n";
macro2 += "TAG POS=1 TYPE=TEXTAREA ATTR=NAME:fr.msg CONTENT={{extractedtext}}" + "\n";
macro2 += "PAUSE" + "\n";
macro2 += "TAG POS=1 TYPE=INPUT:SUBMIT ATTR=CLASS:base-button_target" + "\n";
macro2 += "WAIT SECONDS=1" + "\n";
macro2 += "BACK" + "\n";
macro2 += "WAIT SECONDS
скрытый текст
Спасибо за столь быстрый ответ
Но увы ... Ошибку перестал выдавать, только при запуске JS он его прогоняет но не выполняет. Пишит теперь типо ошибка в строке 3 а это
Всем привет.
Подскажите в JS не работает вот этот код
var macro;
macro = "CODE:"; macro += "SET !ERRORIGNORE YES" + "\n"; macro += "FILTER TYPE=IMAGES STATUS=ON" + "\n"; macro += "SET !REPLAYSPEED MEDIUM" + "\n"; macro += "SET !VAR1 EVAL("Math.floor([h]Math.random[/h]()*10 + 1); ")" + "\n"; macro += "SET !DATASOURCE C:\\iMacros\\Macros\\data\\podpis.txt" + "\n"; macro += "SET !DATASOURCE_LINE "+i+ "\n"; macro += "ADD !EXTRACT {{!COL1}} " + "\n"; macro += "URL GOTO={{!COL1}}" + "\n"; macro += "WAIT SECONDS={{!VAR1}}" + "\n";
Может его можно чем то заминить
За ранее благодарен
InfSub
…не могу понять после выполнения всего цикла
следующая строка извлекается со значение NULL из текстового файла в чем может быть дело
[spoiler][code]
for (var zk=1;zk<=14;zk++){
//iimPlayCode("set !extract null");
macros = "CODE: SET !DATASOURCE_DELIMITER ;"+n;
macros += "CMDLINE !DATASOURCE C:\\Zadaniy.txt"+n;
macros += "SET !DATASOURCE_COLUMNS "+8+n;
// macros += "SET !LOOP "+zk+n;
macros += "SET !DATASOURCE_LINE "+zk+n;
macros += "ADD !EXTRACT {{!COL1}}"+n;
macros += "ADD !EXTRACT {{!COL2}}"+n;
macros += "ADD !EXTRACT {{!COL3}}"+n;
macros += "ADD !EXTRACT {{!COL4}}"+n;
macros += "ADD !EXTRACT {{!COL5}}"+n;
macros += "ADD !EXTRACT {{!COL6}}"+n;
macros += "ADD !EXTRACT {{!COL7}}"+n;
macros += "ADD !EXTRACT {{!COL8}}"+n;
iimPlay(macros);
var nomer = iimGetExtract(1);
var strzap = iimGetExtract(2);
var strtube = iimGetExtract(3);
var videokanal = iimGetExtract(4);
var vid = iimGetExtract(5);
var recl = iimGetExtract(6);
var pod_recl = iimGetExtract(7);
var v