Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Баг в экшене "Выполнить код"
-
-
В чём ошибка:
В режиме записи код правильно и без ошибок отрабатывает, в режиме воспроизведения вылетает ошибка на экшене "Выполнить код"
[15:52:10] Скрипт выполнен с ошибкой : SyntaxError: Parse error во время выполнения действия 475382685
Файл проекта прикладываю test2.xml -
Принцип работы:
Код читает данные из текстового файла ss.txt в переменную [[SAVED_CONTENT]] (как тип-строка). Файл ss.txt прикладываю ss.txt Далее код в экшене "Выполнить код" обрабатывает данные из [[SAVED_CONTENT]] и пересохраняет в переменную [[SAVED_CONTENT]] .
Содержимое в экшене "Выполнить код" :
var SAVED_CONTENT = [[SAVED_CONTENT]]; function convertViews(savedContent) { savedContent = savedContent.replace(/"accessibilityData":\{"label":"([\d.]+)\s*([KkMm]|million)?\s*views"\}\},"simpleText":"([\d.]+)\s*([KkMm]|million)?\s*views"/g, function (match, num1, unit1, num2, unit2) { var multiplier1 = unit1 === 'M' || unit1 === 'm' || unit1 === 'million' ? 1000000 : unit1 === 'K' || unit1 === 'k' ? 1000 : 1; var multiplier2 = unit2 === 'M' || unit2 === 'm' || unit2 === 'million' ? 1000000 : unit2 === 'K' || unit2 === 'k' ? 1000 : 1; var views1 = Math.round(parseFloat(num1) * multiplier1); var views2 = Math.round(parseFloat(num2) * multiplier2); return '"accessibilityData":{"label":"' + views1 + ' views"}},"simpleText":"' + views2 + ' views"'; }); savedContent = savedContent.replace(/"viewCountText":\{"simpleText":"([\d,]+)\s*views"\}/g, function (match, num) { var views = parseInt(num.replace(/,/g, ''), 10); return '"viewCountText":{"simpleText":"' + views + ' views"}'; }); return savedContent; } SAVED_CONTENT = convertViews(SAVED_CONTENT); // console.log(SAVED_CONTENT); [[SAVED_CONTENT]] = SAVED_CONTENT; -
-
-
Сделал как вы советовали в этой теме https://community.bablosoft.com/topic/5037/ошибка-при-запуске/6
Я переместил экшены "Выполнить код" которые вызывают эту ошибку - каждый в свою функцию.
Теперь та же ошибка , но на последнем элементе ( на кубике рандом сон, см скрин ниже) в функции где весь скрипт лежит.
Причем эта ошибка "выбивает скрипт моментально" в режиме запуска, тоесть скрипт даже не успевает отработать и секунды.