Типичные скрипты
Примеры использования javascript в заданиях - вставлять в блок 'Скрипт Задания'.
Скрыть Коды
$('#out_codes').hide();
Скрыть бонусы
$('#out_bonuses').hide();
Скрыть глобальные бонусы
$('#out_global_bonuses').hide();
Вместо отображения вбитого кода показывать общие слова
$('#answer_result_right_out').text('Вроде верно'); $('#answer_result_repeat_out').text('Было уже'); $('#answer_result_wrong_out').text('Что-то не так');
На месте таймера автоперехода отображать время проведенное на задании
show_time_on_task();
Работает только если в задании нет автоперехода
Заменить 'Автопереход' на другое название
$('span#out_end_time').each(function(){$(this).html($(this).html().replace('Автопереход', 'Время до закрытия зоны'));});
Заменить 'Подсказка' на другое название
$('span.hint_name').each(function(){$(this).html($(this).html().replace('Подсказка', 'Возможное время до закрытия зоны'));});
Заменить текст на кнопке 'Купить подсказку'
$('div#out_hints').each(function(){$(this).html($(this).html().replaceAll('Взять подсказку', 'Купить задание'));});
Олимпийка:
В текст задания пропишите [olymp]
- это заменится на таблицу во время игры
В скрипт задания пропишите: olymp('8.2')
;
Вместо '8.2' можно использовать '4.2', '16.2', '32.2', '64.2', '128.2', '256.2', '9.3', '27.3', '81.3', '16.4', '64.4' - это количество начальных кодов олимпийки
Или если хотите оставить номера в кодах то: olymp_with_numbers('8.2')
;
Если хочется отображать не вбитое слово, а что-то другое - то заводите бонус c тем же кодом, и в 'Текст после решение' в режими исходника вставляете
<script>olymp_value(n, 'html')</script>
n
- номер поля олимпийки
html
- просто текст или html который будет показан в ячейке
Например: olymp_value(n, 'Храмище')
Отображение собранных штурмовых баллов в задании
В текст задания пропишите Всего баллов: !bonus!
Обработчик ответа в задании
Во все ответы вначале дописывает префикс p_
window.submitAnswerCallback= function(answer) { return 'p_' + answer; }
Если вернуть пустую строку - ответ не будет отправлен.
Скрипты в бонусах и подсказках
Надо переключить редактирование в режим исходника.
Автоматически вбить код, если ещё не был вбит
<script>enter('Код который надо вбить')</script>
Составные коды в бонусах/штрафных подсказках
В режиме исходника в ответ на бонус/подсказку добавьте
<script>code_part(номер_составного_кода, 'частькода', число_составных_частей)</script>
номер_составного_кода
- Это порядковый номер составного кода, если их несколько. Не следует путать с номер части кода. Если код один - то ставьте 0.частькода
- в кавычках часть строки вашего кода, даже если число, то используйте кавычки - части будут собираться по порядку отображения на странице.число_составных_частей
- Сколько всего составных частей кода.
Не забудьте добавить итоговый собранный код или бонус, иначе страница будет все время перегружаться в попытке вбить несуществующий код.
Вызов скрипта при обновлении задания
Если надо что-то вызывать во всех играх каждый раз, когда обновляется задание - то можно прописать это в общий HTML заголовок для игры:
<script> document.addEventListener("DOMContentLoaded", function() { function common_task_script() { console.log('test'); } let old_task_script = task_script; task_script = function() { old_task_script(); common_task_script() }; common_task_script(); }); </script>
Не показывать пройденные задания в штурмовых играх
Надо прописать этот код в режиме «Исходник» в общий HTML заголовок для игры:
<script> document.addEventListener("DOMContentLoaded", function() { if($('.closed-level').length > 0) { window.location='game.php?gid='+game_id; } }); </script>