Долго думал в какой ветке выложить этот пост, решил, что ему в Лайфхаках будет самое место. Опишу весь процесс, возможно кому нибудь пригодится промежуточный этап.
Обратились тут ко мне в личку с нестандартным вопросом, можно ли менять количество потоков в зависимости от условий значений ресурсов. (без "вызова функции в несколько потоков")
{{test_res}} == "хочу два потока" //запускается 2 потока
или
{{test_res}} == "хочу пять потоков" //запускается 5 потоков
Я ответил, что так делать нельзя, но это не совсем так :D
Чтобы запустить скрипт с количеством потоков равном количеству ресурсов, надо в графе "количество потоков" прописать
RMap("name").length()
где name это имя ресурса.
Если ресурс "из файла" то количество потоков будет равно количеству строк в файле, если ресурс "из папки" то количеству файлов в папке и тому подобное.
После получаса извращенных экспериментов с BAS'ом (да простит меня @support)
10-5 //сработал
(2+2)*2 //сработал выдал 8 потоков
a=10;b=5;a-b //не сработал
2+2; //не сработал
2+2*2 //сработал, выдал 6 потоков.. может через евал?
eval(2+2) //сработал! опа!
eval(if(10-5 > 1) {2}) //не сработал
eval(if(10-5 > 0) {10-8}) //тоже не сработал :(
eval(a=10;b=5;a-b) //не сработал
eval("a=10;b=5;a-b") //!! сработало !! :D
eval("if(10-5 > 1) {2}") //Лол! Сработало :)
eval("(10-5 > 10) ? 2 : 5") //тоже сработало! Прикольно :)) Вот тебе и иф :))
eval("{{test}} == 'test' ? 2:5") //не сработало :(
eval({{test}} + "== 'test' ? 2:5") //тоже не сработало :(
eval('(10-5 > 10) ? 2 : 5') //сработало..
Пришёл к выводу, что надо применять тот же способ работы с ресурсом, что и в коде проекта
RS("test", false, false)!
RESOURCE_1 = _result().get()
log(RESOURCE_1)
В самом начале скрипта прописал получение значения из ресурса и всё заработало:
RS("test", false, false)!
RESOURCE_2 = _result().get()
section(eval("RESOURCE_2 == 'test' ? 2:5") /*eval("RESOURCE_2 == 'test' ? 2:5")*/,1 /*1*/,1 /*1*/,0,function(){


Вот тестовый скрипт
Пока печатал пост подумал, что можно через RMap решить эту задачу без правки руками кода проекта.
Количество потоков:
eval("RMap('toster').at(0) == 'tost' ? 2:5")

Вот скрипт без ручной правки кода.
Данным способом можно ставить практически любые условия и менять количество потоков в зависимости от них.