RU 📌 Pinned

Как сделать?

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

Кусочек диалога, чтобы было нагляднее видно суть проблемы.

Spoiler
  • Что притащил?! - Раздраженно Спросил Сидорович, оторвав взгляд от монитора ноутбука. - Если опять какой-то хлам, то можешь считать, что на этом наш разговор закончен!
  • Хлам таскают новички. - Сдержанно ответил Крест, бросив на стол сумку с хабаром. - Посмотришь?
  • А чего не посмотреть-то? - Сидорович запустил руки в сумку, что-то бормотая себе под нос. - Не плохо, хороший товар! Сколько ты хочешь?
  • Тридцать тысяч. - Твердо ответил Крест, не отводя взгляд с сумки. - У меня с пацанами большие планы на старый завод, а для этого нужны деньги.

Нашел решение своей проблемы. Если кому-то будет интересно, то выкладываю кусок игры с кодом. :) 27112017-1842_stalker.qsp

Как в QSP вставить GIF файл ?
Можно ли вообще это сделать ?

Серый Кардинал,
С гифками всё ровно то же самое, что и с обычными картинками. Есть два способа:

1. HTML-тэги.

Spoiler

На первой локации ставишь:

! тут может быть твой код

usehtml = 1

! и тут тоже может быть твой код

В остальных локациях (или даже в названиях объектов и действий) теперь можно ставить вот это:

'(тут может быть текст и HTML-теги)<img src="папка\папка\путь_к_твоей_гифке.gif">(тут может быть текст и HTML-теги)'

Пример

2. Команда “VIEW”

Spoiler

В нужном месте вставляешь этот кусок кода:

view 'папка\папка\путь_к_гифке.gif'

Правда, у этого способа есть ограничения. В названиях объектов\действий его использовать нельзя. Для этого есть первый вариант.

Пример

Вроде как-то так. Если я что-то напутал или недосказал - старожилы помогут.

Ребята, что за фигня эти “массивы” и как их использовать? Я кучу времени копаюсь в коде разных игр, и часто вижу их.

Приветствую всех разработчиков. Я недавно начал погружаться в это все дело и у меня несколько простых вопросов.
1. Как сделать переход по локациям следующим образом: При посещение определенной локации, определенное количество раз. Скрытая локация появляется в строке локаций после выполнения условия.
2. Каким образом сделать диалог с выбором ответов, после которых так же открываются определенные локации. (Вариант1: После диалога и выборе нужного ответа, появляется новая строка с новой локацией куда можно перейти, либо не переходить. Вариант2: После выбора ответа тебя автоматом кидает в новую локацию.)
3. Прошу совета: Как размещать множественные локации и как их называть для максимально комфортной работы с ними в дальнейшем, если их много.
Спасибо.

Aleks Versus Moderator 23.12.2017 07:16 (8 years ago)

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

Большое спасибо!

Можно пожалуйста пояснения по поводу отступлений в коде, какую роль они играют?

Aleks Versus Moderator 23.12.2017 21:39 (8 years ago)

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, вывод текста и прочее, что мы желаем в будущем скрыть, “обёртывается” в условие, потом мы меняем переменную, условие перестаёт выполняться, делаем перезаход на локацию - вуаля, действие скрыто.

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

Aleks Versus Moderator 29.12.2017 06:24 (8 years ago)

Morning Star,
классический плеер поддерживает относительные размеры в процентах.

usehtml=1
'<img src="image.jpg" width=25%>'

Log in or Register to post comments.