Как сделать?

Re: Как сделать?

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

waganwils
useravatar
Offline
5 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

D31M0S,
http://aleksversus.narod.ru/index/perem … v_qsp/0-28

waganwils,
1. Действие по условию
В поле "выполнить при посещении" локации пишешь примерно следующее.

 Спойлер Show Spoiler Hide 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
воздвигатель башни
useravatar
Offline
1342 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

waganwils
useravatar
Offline
5 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

waganwils
useravatar
Offline
5 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

waganwils,
никакой. Только удобство чтения.
Однако следует различать однострочную:

Код:

act "войти в лес": goto "лес"


if a<6: b=7 else b=8

И многострочную формы записей операторов:

Код:

act "войти в лес":

goto "лес"
end

if a<6:
b=7
else
b=8
end

Разбиение строк играет значительную роль в понимании кода плеером.

Aleks Versus
воздвигатель башни
useravatar
Offline
1342 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Как добавлять условия разобрался. Теперь всплыл вопрос как удалять(изменять) msg, act и gt после выполнения определенных условий. Пример: Если на одной локации есть одно действие и с игроком идет диалог, после окончания которого это действие удаляется или заменяется другим. И то же самое про текст выводящийся командой *p. Так же прошу поделиться примером как создать локацию в которой игроку нужно подобрать пароль для дальнейшего прохождения. Например перед вами дверь с паролем из 3 цифр > подобрать пароль > пустая графа куда вводить цифры > в случае выполнения условия перемещает в следующую локацию. Спасибо.

waganwils
useravatar
Offline
5 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

waganwils,
В учебнике QGen есть пример "действия по условию". Изучай.

Суть в том, что каждое действие, MSG, вывод текста и прочее, что мы желаем в будущем скрыть, "обёртывается" в условие, потом мы меняем переменную, условие перестаёт выполняться, делаем перезаход на локацию - вуаля, действие скрыто.

Nex
useravatar
Offline
4276 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

Morning Star
useravatar
Offline
10 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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

Код:

usehtml=1

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

Aleks Versus
воздвигатель башни
useravatar
Offline
1342 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

О, спасибо большое) как раз то, что надо )

Morning Star
useravatar
Offline
10 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
990
Всего опросов:
14
Всего сообщений:
16790302
Всего сообщений сегодня:
1
Пользователи форума:
 
Всего пользователей:
2160
Последним зарегистрировался:
nRay