Как сделать?
…
Также очередной вопрос
Пока копаю справку и все изучаю - постоянно натыкаюсь на различие версий 5.7 и 5.8, но покопавшись выяснил, что это вроде как про сам плеер, но в различиях говориться именно про инструменты разработки, поэтому не очень понимаю о чем речь..
Я пишу код в Quest Generator - это ок или лучше без боли перейти на что-то более современное?
Не наю… КуГен прост в понимании, все локации и переходы на них визуально видны. Быстро запускает готовый файл. Очень хорошо для начинающих или тех, кто постоянно проверяет каждый оператор. Но если закралась ошибка в коде и нарушила логику, то искать очень тяжело, нет подсветки тегов. Поэтому тут кто как привык.
Мне проще все локации держать отдельными файлами и работать с редакторами типа SublimeText или подобными. Потом собрать и проверять. Тут где-то была утилита для быстрой сборки… Не проверял и не использовал…
я ваще балдею от этого вашего ксп,
1) В классике есть msg. HTML можно реализовать только на qSpider.
2) Про версии QSP вот хорошие статейки: “Нововведения в QSP 5.8.0” и “Изменения в работе массивов в плеерах версии 5.8.0”
Насчёт среды разработки: Quest Generator хорош, ибо идиоматичен по отношению к платформе. Но он не адаптирован под новую версию плеера. Тут могу только посоветовать плагин от старожила платформы для Sublime Text.
я ваще балдею от этого вашего ксп:
Ооо, еще можно ведь делать всплывающие окна с кнопками меню? Это html нужен или можно как-то на родном кспшном написать и отредактировать? Я бы вывел часть текста из доп. описания в качестве таких вот поп-апов
Я вот не понял, какое конкретно меню имеется ввиду. Если именно всплывающее при наведении, в классике такого нет. Если выпадающие по клику, то ищи menu.
dmvikar:
Я вот не понял, какое конкретно меню имеется ввиду.
Я тут уже разобрался и частично реализовал то, что мне нужно)
Ожидал увидеть что-то типо msg “nil”, но чтобы там было не только ОК, но и другие кнопки с возможностью привязать к ним что-то, но на квесте, как мне уже рассказали, такое не сделать)
Зато я немного переиначил UI благодаря msg - что-то стало даже лаконичнее и аккуратнее выглядеть
я ваще балдею от этого вашего ксп:
все локации и переходы на них визуально видны
Вот да, я посмотрел другие редакторы - это не ко мне)
Учитывая практически полное отсутствие опыта в программировании, визуализация в квесте прям выручает, я хотя бы понимаю что и откуда получается)
я ваще балдею от этого вашего ксп:
я ваще балдею от этого вашего ксп:
все локации и переходы на них визуально видны
Вот да, я посмотрел другие редакторы - это не ко мне)
Учитывая практически полное отсутствие опыта в программировании, визуализация в квесте прям выручает, я хотя бы понимаю что и откуда получается)
Ты действие пишешь в окошке для действий, а описание локации в окошке для описания локаций?
dmvikar:
Ты действие пишешь в окошке для действий, а описание локации в окошке для описания локаций?
Когда как, если нужно быстро и просто сделать какое-то постоянное действие, которое доступно без условий, то могу его создать и написать код там, но если нужно что-то сложнее, то через act итд, описание локаций редко использую, в основном вывожу туда данные из кода
Миль пардон, если подобное уже обсуждалось, но у меня не получается динамически сформировать имя массива и вывести его содержимое на экран.
Поясню.
Есть несколько массивов данных. Это строки на разные случаи “жизни”. По мере изменения тех или иных характеристик название массивов формируется динамически. Но я не могу получить содержимое полученного массива.
Например.
$Text_Param1_Param2_0[0]='A'
$Text_Param1_Param2_0[1]='B'
$Text_Param1_Param2_0[2]='C'
---
$Text_Param1_Param2_1[0]='D'
$Text_Param1_Param2_1[1]='E'
$Text_Param1_Param2_1[2]='F'
---
$Text_Param1_Param2_2[0]='G'
$Text_Param1_Param2_2[1]='H'
$Text_Param1_Param2_2[2]='I'
--- ets ----
$Command={'$Text_<<$Args[0]>>_<<$Args[1]>>_<<$Args[2]>>[<<$Args[3]>>]'}
$Dyneval($result=$Command, Param1, Param2, 0, 3)
Но в итоге получаю - 0!
Я пробовал менять На “”
$Command='$Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]'
$Dyneval($result=$Command)
Но итог тот же, при этом, если вывести $Command, то она совершенно правильная с точки зрения названия массива…
Я понимаю, что где-то ошибаюсь, но не могу понять где.
Вполне себе,
Вики говорит так делать.
$Command='$Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]'
$Dyneval('$result=$Command')
dmvikar:
Вики говорит так делать.
$Command='$Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]' $Dyneval('$result=$Command')
Делал… Вместо 0 пишет строку $Command. Все равно, что написать:
$Command='$Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]'
*P $Command
Я потому и начал проводить эксперименты и добился “0”… Прекрасно работает с операциями и условиями, выводом, но не более.. Получить значение из массива с динамически сформированным именем - не получилось. Буду пробовать передать имя и индекс как параметр… Хотя чую, что та же шляпа.
Как я и предполагал, шляпа приобрела фееричный размах. Попробовал сделать умное лицо и написал в скобках (фигуристых - как советовал Вики)
Получил бяку:
$Command={$Тав_<<$Param1>>_<<$Param2>>_<<Args[0]>>[<<Args[1]>>]}
$Command
’$Тав_>_>_>[>]’
А результатом работы
$dyneval('$Command', 1, 2)
Стало: $Тав_Param1_Param2_1[2] - Собственно, от чего и начал… ))))
Но задачку я, таки, решил плюнув на Dyneval (хотя это было удобнее с т.з. применения в виде функции. Но это я сделал через Локацию) и запузырил через Dynamic
#Массивчик
$Command='$Тав_<<$Args[0]>>_<<$Args[1]>>_<<Args[2]>>[<<Args[3]>>]'
dynamic "$FullStr=<<$Command>>" & !с $Result напрямую тоже какая-то шляпа. Через раз ругается на разные стоки кода.
$result=$FullStr
--- Массивчик ---
.....
.....
@Массивчик($Param1, $Param2, Args[0], Args[1])
Результат такой как положено: Я пришел к тебе с приветом!
Разобрался! Тьху! Столько времени?!
$Command='$Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]'
$Dyneval('$Result=<<$Command>>')
На было поставить выражение $Command в, сцк, <<>>!!!
<<$Command>> И ВСЁ!!!!
Вполне себе,
в плеере 5.8.0. можно получить содержимое динамически созданного массива без $dyneval.
Используй функцию ARRITEM.
*pl $arritem('$Text_<<Param1>>_<<Param2>>_<<Args[0]>>',args[1])
Если у тебя 5.7.0. и функцию arritem использовать нельзя, то ты усложняешь. Вот так должно сработать:
*pl $Dyneval('$Result = $Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]')
Объясню. $dyneval выполняет строку, переданную ей, как код. Но перед выполнением раскроются подвыражаения в этой строке: << >>. То есть вместо них подставятся значения. Это происходит у тебя в первой строчке
$Command='$Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]'
, а затем ты заставляешь плеер выполнить раскрытие подвыражения в следующей строчке
$Dyneval('$Result=<<$Command>>')
и в итоге у тебя всё равно в $dyneval передаётся такая же строка, как если бы ты прописал сразу
*pl $Dyneval('$Result = $Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]')
.
Теперь, если это всё понятно, сам себе ответь на вопрос, почему здесь
$Command='$Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]'
$Dyneval('$result=$Command')
и здесь
$Command='$Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]'
$Dyneval($result=$Command)
не сработало как нужно.
Сиба! Я уже вкурил.
Через $Command я написал, потому, что от чего-то не сработала “строка”. Я стал разбираться и для контроля всадил через $Command.
Видимо, экспериментируя, я что-то исправил и не заметил как, но успел забраться в дебри. )))
Меня по-прежнему интересует, а можно ли узнать размеры “Основного окна” или разрешение монитора из-под плеера QSP? Если можно, то как?
Вполне себе,
в классическом плеере этого седлать нельзя.
Теоретически можно в qSpider, используя JS, но я ещё не испытывал. Werewolf говорит, если упрощать, что пока что это в полной мере не реализовано. Но в qSpider такая передача размеров окон фактически и не нужна, т.к. если ты владеешь CSS и JS, сделать более менее адаптивный дизайн не составит труда, а зачем ещё такое может понадобиться, я не вижу.
Подобное имеет смысл для меня только в одном случае: мне нужно разбить длинный текст на страницы, а я не знаю изначально, какой длины текст, и какой ширины страница. Но и в этом случае в qSpider текст можно выводить кодом QSP полностью, а уже с помощью JS скрывать его части и делать своего рода “карусель”/слайдер только с текстом.
Плюс, такие штуки, как относительные единицы измерения (vh, vw, насчёт vmax и vmin пока не уверен), прекрасно поддерживаются qSpider’ом, так что сварганить общую резиновую вёрстку страницы, а затем отдельные её элементы сделать адаптивными — как никогда просто. Передавать в QSP код остаётся только данные введённые игроком. А на этот случай у qSpider уже есть инструменты.