Как сделать?
…
Кусочек диалога, чтобы было нагляднее видно суть проблемы.
Spoiler
- Что притащил?! - Раздраженно Спросил Сидорович, оторвав взгляд от монитора ноутбука. - Если опять какой-то хлам, то можешь считать, что на этом наш разговор закончен!
- Хлам таскают новички. - Сдержанно ответил Крест, бросив на стол сумку с хабаром. - Посмотришь?
- А чего не посмотреть-то? - Сидорович запустил руки в сумку, что-то бормотая себе под нос. - Не плохо, хороший товар! Сколько ты хочешь?
- Тридцать тысяч. - Твердо ответил Крест, не отводя взгляд с сумки. - У меня с пацанами большие планы на старый завод, а для этого нужны деньги.
Нашел решение своей проблемы. Если кому-то будет интересно, то выкладываю кусок игры с кодом. :) 27112017-1842_stalker.qsp
loony25,
если весь вопрос в оформлении, дизайне, посмотри примеры вот в этих трёх темах:
Как в QSP вставить GIF файл ?
Можно ли вообще это сделать ?
Серый Кардинал,
С гифками всё ровно то же самое, что и с обычными картинками. Есть два способа:
1. HTML-тэги.
Spoiler
На первой локации ставишь:
! тут может быть твой код
usehtml = 1
! и тут тоже может быть твой код
В остальных локациях (или даже в названиях объектов и действий) теперь можно ставить вот это:
'(тут может быть текст и HTML-теги)<img src="папка\папка\путь_к_твоей_гифке.gif">(тут может быть текст и HTML-теги)'
2. Команда “VIEW”
Spoiler
В нужном месте вставляешь этот кусок кода:
view 'папка\папка\путь_к_гифке.gif'
Правда, у этого способа есть ограничения. В названиях объектов\действий его использовать нельзя. Для этого есть первый вариант.
Вроде как-то так. Если я что-то напутал или недосказал - старожилы помогут.
Ребята, что за фигня эти “массивы” и как их использовать? Я кучу времени копаюсь в коде разных игр, и часто вижу их.
Приветствую всех разработчиков. Я недавно начал погружаться в это все дело и у меня несколько простых вопросов.
1. Как сделать переход по локациям следующим образом: При посещение определенной локации, определенное количество раз. Скрытая локация появляется в строке локаций после выполнения условия.
2. Каким образом сделать диалог с выбором ответов, после которых так же открываются определенные локации. (Вариант1: После диалога и выборе нужного ответа, появляется новая строка с новой локацией куда можно перейти, либо не переходить. Вариант2: После выбора ответа тебя автоматом кидает в новую локацию.)
3. Прошу совета: Как размещать множественные локации и как их называть для максимально комфортной работы с ними в дальнейшем, если их много.
Спасибо.
D31M0S,
http://aleksversus.narod.ru/index/peremennye_i_massivy_v_qsp/0-28
waganwils,
1. Действие по условию
В поле “выполнить при посещении” локации пишешь примерно следующее.
Spoiler
*p "Я нахожусь на поляне, окружённой плотной стеной кустарника. "
здесь_был_поляна+=1 & ! увеличиваем число посещений на 1
! если число посещений меньше 5, нет доступа к локации "болото"
if здесь_был_поляна<5:
*pl "Но так и не вижу пути к болоту, о котором мне рассказывал гном."
! в противном случае (если число посещений 5 и больше)
else
*pl "И кажется я вижу тропку между двух шиповниковых кустов, которая ведёт к болоту"
! начало действия
act "Идти к болоту":
goto "болото"
! конец действия
end
! конец условия
end
! действие, которое выводится всегда
act "Вернуться в чащобу":
goto "лес_чащоба"
!конец действия вернуться в чащобу
end
2. То же самое, что и предыдущее. Диалог реализуется в виде действий по условию, просто в некоторых действиях вставляешь команды перехода.Есть примеры диалогов.
3. Во-первых, в QuestGenerator есть папки. Это очень облегчает написание кода.
Во-вторых, можно разбить игру на модули/части. Допустим у меня разбито: вводные данные, движок (служебные локации), библиотеки (оружие, броня, предметы и прочее), сама игра. Потом уже на самой первой локации в игре подключаешь всё это с помощью команды addqst (inclib для Quest Navigator), типа:
addqst 'drive.qsp'
addqst 'base.qsp'
addqst 'intro.qsp'
естественно, приходится работать в нескольких окнах.
Ну и в-третьих, я как-то со временем взял себе за правило локациям с разным назначением задавать разные шаблоны имён. Например, служебные локации состоят у меня из двух-трёх (четырёх, пяти, но это реже) слов, разделённых точкой get.daughter.obj. Локации мест имеют вид место;название_локации. Локации сюжетные (т.е. где воспроизводятся большие отбивки сюжета) как-то так: 0.1_пролог 0.2_пролог 1.1_сцена_в_баре 1.2_сцена_в_баре 1.3.1_поражение_в_баре 1.3.2_победа_в_баре. Локации различных инфо-листов и прочие информационные имеют в начале и конце названия квадратные скобки: [start] [info] [thanks] [credits] [end] [death].
Большое спасибо!
Можно пожалуйста пояснения по поводу отступлений в коде, какую роль они играют?
waganwils,
никакой. Только удобство чтения.
Однако следует различать однострочную:
act "войти в лес": goto "лес"
if a<6: b=7 else b=8
И многострочную формы записей операторов:
act "войти в лес":
goto "лес"
end
if a<6:
b=7
else
b=8
end
Разбиение строк играет значительную роль в понимании кода плеером.
Как добавлять условия разобрался. Теперь всплыл вопрос как удалять(изменять) msg, act и gt после выполнения определенных условий. Пример: Если на одной локации есть одно действие и с игроком идет диалог, после окончания которого это действие удаляется или заменяется другим. И то же самое про текст выводящийся командой *p. Так же прошу поделиться примером как создать локацию в которой игроку нужно подобрать пароль для дальнейшего прохождения. Например перед вами дверь с паролем из 3 цифр > подобрать пароль > пустая графа куда вводить цифры > в случае выполнения условия перемещает в следующую локацию. Спасибо.
waganwils,
В учебнике QGen есть пример “действия по условию”. Изучай.
Суть в том, что каждое действие, MSG, вывод текста и прочее, что мы желаем в будущем скрыть, “обёртывается” в условие, потом мы меняем переменную, условие перестаёт выполняться, делаем перезаход на локацию - вуаля, действие скрыто.
Подскажите, пожалуйста, есть ли какой-то код, чтобы вставленные картинки автоматически подгонялись под разрешение экрана? или надо все править вручную? Просто у меня довольно большие по разрешению картинки, на моем экране хорошо смотрится, но как мне узнать, как игра будет выглядеть на экране меньшего размера, скажем?
Morning Star,
классический плеер поддерживает относительные размеры в процентах.
usehtml=1
'<img src="image.jpg" width=25%>'