RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2424105 views

я ваще балдею от этого вашего ксп #2721 08.02.2024 10:08 (2 years ago)

Также очередной вопрос
Пока копаю справку и все изучаю - постоянно натыкаюсь на различие версий 5.7 и 5.8, но покопавшись выяснил, что это вроде как про сам плеер, но в различиях говориться именно про инструменты разработки, поэтому не очень понимаю о чем речь..

Я пишу код в Quest Generator - это ок или лучше без боли перейти на что-то более современное?

Вполне себе #2722 08.02.2024 10:52 (2 years ago)

Не наю… КуГен прост в понимании, все локации и переходы на них визуально видны. Быстро запускает готовый файл. Очень хорошо для начинающих или тех, кто постоянно проверяет каждый оператор. Но если закралась ошибка в коде и нарушила логику, то искать очень тяжело, нет подсветки тегов. Поэтому тут кто как привык.
Мне проще все локации держать отдельными файлами и работать с редакторами типа SublimeText или подобными. Потом собрать и проверять. Тут где-то была утилита для быстрой сборки… Не проверял и не использовал…

я ваще балдею от этого вашего ксп,
1) В классике есть msg. HTML можно реализовать только на qSpider.
2) Про версии QSP вот хорошие статейки: “Нововведения в QSP 5.8.0” и “Изменения в работе массивов в плеерах версии 5.8.0”
Насчёт среды разработки: Quest Generator хорош, ибо идиоматичен по отношению к платформе. Но он не адаптирован под новую версию плеера. Тут могу только посоветовать плагин от старожила платформы для Sublime Text.

я ваще балдею от этого вашего ксп:

Ооо, еще можно ведь делать всплывающие окна с кнопками меню? Это html нужен или можно как-то на родном кспшном написать и отредактировать? Я бы вывел часть текста из доп. описания в качестве таких вот поп-апов

Я вот не понял, какое конкретно меню имеется ввиду. Если именно всплывающее при наведении, в классике такого нет. Если выпадающие по клику, то ищи menu.

я ваще балдею от этого вашего ксп #2721 08.02.2024 13:32 (2 years ago)

dmvikar:

Я вот не понял, какое конкретно меню имеется ввиду.

Я тут уже разобрался и частично реализовал то, что мне нужно)
Ожидал увидеть что-то типо msg “nil”, но чтобы там было не только ОК, но и другие кнопки с возможностью привязать к ним что-то, но на квесте, как мне уже рассказали, такое не сделать)
Зато я немного переиначил UI благодаря msg - что-то стало даже лаконичнее и аккуратнее выглядеть

я ваще балдею от этого вашего ксп #2721 08.02.2024 13:42 (2 years ago)

я ваще балдею от этого вашего ксп:

все локации и переходы на них визуально видны

Вот да, я посмотрел другие редакторы - это не ко мне)
Учитывая практически полное отсутствие опыта в программировании, визуализация в квесте прям выручает, я хотя бы понимаю что и откуда получается)

я ваще балдею от этого вашего ксп:

я ваще балдею от этого вашего ксп:

все локации и переходы на них визуально видны

Вот да, я посмотрел другие редакторы - это не ко мне)
Учитывая практически полное отсутствие опыта в программировании, визуализация в квесте прям выручает, я хотя бы понимаю что и откуда получается)

Ты действие пишешь в окошке для действий, а описание локации в окошке для описания локаций?

я ваще балдею от этого вашего ксп #2721 08.02.2024 17:11 (2 years ago)

dmvikar:

Ты действие пишешь в окошке для действий, а описание локации в окошке для описания локаций?

Когда как, если нужно быстро и просто сделать какое-то постоянное действие, которое доступно без условий, то могу его создать и написать код там, но если нужно что-то сложнее, то через act итд, описание локаций редко использую, в основном вывожу туда данные из кода

Вполне себе #2722 11.02.2024 14:58 (2 years ago)

Миль пардон, если подобное уже обсуждалось, но у меня не получается динамически сформировать имя массива и вывести его содержимое на экран.
Поясню.
Есть несколько массивов данных. Это строки на разные случаи “жизни”. По мере изменения тех или иных характеристик название массивов формируется динамически. Но я не могу получить содержимое полученного массива.
Например.

$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')
Вполне себе #2722 12.02.2024 14:15 (2 years ago)

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])

Результат такой как положено: Я пришел к тебе с приветом!

Вполне себе #2722 12.02.2024 16:31 (2 years ago)

Разобрался! Тьху! Столько времени?!

$Command='$Text_<<Param1>>_<<Param2>>_<<Args[0]>>[<<Args[1]>>]'
$Dyneval('$Result=<<$Command>>')

На было поставить выражение $Command в, сцк, <<>>!!!
<<$Command>> И ВСЁ!!!!

Aleks Versus Moderator 13.02.2024 16:18 (2 years ago)

Вполне себе,
в плеере 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)

не сработало как нужно.

Вполне себе #2722 13.02.2024 18:42 (2 years ago)

Сиба! Я уже вкурил.
Через $Command я написал, потому, что от чего-то не сработала “строка”. Я стал разбираться и для контроля всадил через $Command.
Видимо, экспериментируя, я что-то исправил и не заметил как, но успел забраться в дебри. )))

Меня по-прежнему интересует, а можно ли узнать размеры “Основного окна” или разрешение монитора из-под плеера QSP? Если можно, то как?

Aleks Versus Moderator 17.02.2024 10:36 (2 years ago)

Вполне себе,
в классическом плеере этого седлать нельзя.

Теоретически можно в qSpider, используя JS, но я ещё не испытывал. Werewolf говорит, если упрощать, что пока что это в полной мере не реализовано. Но в qSpider такая передача размеров окон фактически и не нужна, т.к. если ты владеешь CSS и JS, сделать более менее адаптивный дизайн не составит труда, а зачем ещё такое может понадобиться, я не вижу.

Подобное имеет смысл для меня только в одном случае: мне нужно разбить длинный текст на страницы, а я не знаю изначально, какой длины текст, и какой ширины страница. Но и в этом случае в qSpider текст можно выводить кодом QSP полностью, а уже с помощью JS скрывать его части и делать своего рода “карусель”/слайдер только с текстом.

Плюс, такие штуки, как относительные единицы измерения (vh, vw, насчёт vmax и vmin пока не уверен), прекрасно поддерживаются qSpider’ом, так что сварганить общую резиновую вёрстку страницы, а затем отдельные её элементы сделать адаптивными — как никогда просто. Передавать в QSP код остаётся только данные введённые игроком. А на этот случай у qSpider уже есть инструменты.

Log in or Register to post comments.