Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
author_scripts [2021/10/19 11:37] phaust |
— (текущий) | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== Интерактивные элементы в заданиях ====== | ||
| - | ===== Информация зависящая от игрока/команды ===== | ||
| - | |||
| - | Автоматически заменяет указанный текст на значение на сервере. | ||
| - | |||
| - | * !username! - логин игрока | ||
| - | * !teamname! - название команды | ||
| - | * !game_id! - id игры | ||
| - | * !task_id! - id задания | ||
| - | * !task_n! - номер задания | ||
| - | * !bonus! - сумма собранных бонусов | ||
| - | * !task_bonus! - сумма бонусов на текущем задании | ||
| - | |||
| - | [[https://qeng.org/game.php?jump_to&gid=3493&task_id=42717|Пример в игре]] | ||
| - | |||
| - | ===== Кнопка - при нажатии вбивается код ===== | ||
| - | |||
| - | Надо переключить редактирование задания в режим исходника (Source). | ||
| - | |||
| - | <code JavaScript> | ||
| - | <button type="button" class="btn btn-default btn-block shadow" onclick="enter('Код который надо вбить')">Вбить код</button> | ||
| - | <button type="button" class="btn btn-default btn-block shadow" onclick="enter_silent('Код который надо вбить')">Вбить код без отображения результата</button> | ||
| - | <button type="button" class="btn btn-default btn-block shadow confirm" onclick="enter('Код который надо вбить')">Вбить код с подтверждением</button> | ||
| - | <button type="button" class="btn btn-default btn-block shadow confirm" onclick="enter_silent('Код который надо вбить')">Вбить код с подтверждением и без отображения результата</button> | ||
| - | </code> | ||
| - | |||
| - | [[https://qeng.org/game.php?jump_to&gid=3493&task_id=42718|Пример в игре]] | ||
| - | |||
| - | ===== Замена элементов в задании на элементы из бонусов, кодов, подсказок ===== | ||
| - | |||
| - | Надо переключить редактирование задания в режим исходника (Source). | ||
| - | |||
| - | <html> | ||
| - | <span class='replacer' data-find='чем заменять'>Любой текст до замены</span> | ||
| - | </html> | ||
| - | |||
| - | или | ||
| - | |||
| - | <html> | ||
| - | <div class='replacer' data-find='чем заменять'>Любой текст до замены</div> | ||
| - | </html> | ||
| - | |||
| - | "Любой текст до замены" - если хотите, то может быть пустой. | ||
| - | Ну, или любой текст, в том числе, и с картинками | ||
| - | "чем заменять" может быть чем-то из этого: | ||
| - | |||
| - | * Элемент ненумерованного спискаСодержимое бонуса, например 3-го: ''#b3 .bonus-hint'' | ||
| - | * Правильно вбитый код, например, 4ый: ''#c4 .right-answer'' | ||
| - | * Текст подсказки или штрафной подсказки, например, 2-ой: ''#hb2'' | ||
| - | |||
| - | В итоге должно выглядеть, например: | ||
| - | |||
| - | <html> | ||
| - | <span class='replacer' data-find='#c4 .right-answer'></span> | ||
| - | </html> | ||
| - | |||
| - | Важный момент - между номером кода/бонуса и . должен быть пробел. | ||
| - | |||
| - | ''#c4.right-answer'' - неправильно | ||
| - | |||
| - | ''#c4 .right-answer'' - правильно | ||
| - | |||
| - | [[https://qeng.org/game.php?jump_to&gid=3493&task_id=52024|Пример в игре]] | ||
| - | |||
| - | [[https://qeng.org/game.php?jump_to&gid=3493&task_id=52022|Другой пример в игре]] | ||
| - | |||
| - | =====Скрипты в Заданиях===== | ||
| - | |||
| - | Примеры использования javascript в заданиях - вставлять в блок 'Скрипт Задания'. | ||
| - | |||
| - | ====Скрыть Коды==== | ||
| - | |||
| - | <code JavaScript> | ||
| - | $('#out_codes').hide(); | ||
| - | </code> | ||
| - | |||
| - | ====Скрыть бонусы==== | ||
| - | |||
| - | <code JavaScript> | ||
| - | $('#out_bonuses').hide(); | ||
| - | </code> | ||
| - | |||
| - | ====Скрыть глобальные бонусы==== | ||
| - | |||
| - | <code JavaScript> | ||
| - | $('#out_global_bonuses').hide(); | ||
| - | </code> | ||
| - | |||
| - | ====На месте таймера автоперехода отображать время проведенное на задании==== | ||
| - | |||
| - | <code JavaScript> | ||
| - | show_time_on_task(); | ||
| - | </code> | ||
| - | |||
| - | Работает только если в задании нет автоперехода | ||
| - | |||
| - | ====Заменить 'Автопереход' на другое название==== | ||
| - | |||
| - | <code JavaScript> | ||
| - | $('span#out_end_time').each(function(){$(this).html($(this).html().replace('Автопереход', 'Время до закрытия зоны'));}); | ||
| - | </code> | ||
| - | |||
| - | ====Заменить 'Подсказка' на другое название==== | ||
| - | |||
| - | <code JavaScript> | ||
| - | $('span.hint_name').each(function(){$(this).html($(this).html().replace('Подсказка', 'Возможное время до закрытия зоны'));}); | ||
| - | </code> | ||
| - | |||
| - | ====Заменить текст на кнопке 'Купить подсказку'==== | ||
| - | |||
| - | <code JavaScript> | ||
| - | $('div#out_hints').each(function(){$(this).html($(this).html().replace('Взять подсказку', 'Купить задание'));}); | ||
| - | </code> | ||
| - | |||
| - | ====Олимпийка:==== | ||
| - | |||
| - | В текст задания пропишите ''[olymp]'' - это заменится на таблицу во время игры | ||
| - | |||
| - | В скрипт задания пропишите: ''olymp('8.2')''; | ||
| - | |||
| - | Вместо '8.2' можно использовать '4.2', '16.2' или '32.2' - это количество начальных кодов олимпийки | ||
| - | |||
| - | Или если хотите оставить номера в кодах то: ''olymp_with_numbers('8.2')''; | ||
| - | |||
| - | Если хочется отображать не вбитое слово, а что-то другое - то заводите бонус c тем же кодом, и в 'Текст после решение' в режими исходника вставляете | ||
| - | <code> | ||
| - | <script>olymp_value(n, 'html')</script> | ||
| - | </code> | ||
| - | |||
| - | ''n'' - номер поля олимпийки | ||
| - | |||
| - | ''html'' - просто текст или html который будет показан в ячейке | ||
| - | |||
| - | Например: ''olymp_value(n, 'Храмище')'' | ||
| - | |||
| - | ====Отображение собранных штурмовых баллов в задании==== | ||
| - | |||
| - | В текст задания пропишите Всего баллов: ''[money]'' | ||
| - | |||
| - | В скрипт задания пропишите: ''show_money();'' | ||
| - | |||
| - | ====Обработчик ответа в задании==== | ||
| - | |||
| - | Во все ответы вначале дописывает префикс ''p_'' | ||
| - | |||
| - | <code JavaScript> | ||
| - | window.submitAnswerCallback= function(answer) { | ||
| - | return 'p_' + answer; | ||
| - | } | ||
| - | </code> | ||
| - | Если вернуть пустую строку - ответ не будет отправлен. | ||
| - | |||
| - | =====Скрипты в бонусах и подсказках===== | ||
| - | Надо переключить редактирование в режим исходника. | ||
| - | Автоматически вбить код, если еще не был вбит: | ||
| - | <code JavaScript> | ||
| - | <script type='text/javascript'>enter('Код который надо вбить')</script> | ||
| - | </code> | ||
| - | Составные коды в бонусах/штрафных подсказках | ||
| - | |||
| - | В режиме исходника в ответ на бонус/подсказку добавьте | ||
| - | <code JavaScript> | ||
| - | <script>code_part(номер_составного_кода, 'частькода', число_составных_частей)</script> | ||
| - | </code> | ||
| - | |||
| - | номер_составного_кода - Это не номер части кода - это надо только, если составных кодов в задании несколько. Если код один, то ставьте 0. | ||
| - | частькода - в кавычках часть строки вашего кода, даже если число, то используйте кавычки - части будут собираться по порядку отображения на странице. | ||
| - | число_составных_частей - Сколько всего составных частей кода. | ||
| - | Не забудьте добавить итоговый собранный код или бонус иначе страница будет все время перегружаться в попытке вбить несуществующий код. | ||