Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
help:locations [2024/09/02 18:53] aleks_versus |
help:locations [2024/10/10 17:14] (текущий) aleks_versus |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | |||
[[help:qsp|Назад: Что такое QSP?]] | [[help:qsp|Назад: Что такое QSP?]] | ||
Строка 6: | Строка 5: | ||
**Локация** - элементарная единица игрового мира. Это может быть пещера, дом, комната, улица, большой город или даже целая планета. | **Локация** - элементарная единица игрового мира. Это может быть пещера, дом, комната, улица, большой город или даже целая планета. | ||
- | С точки зрения игрока он исследует игровой мир перемещаясь по локациям, но с точки зрения создателя игры понятие локации гораздо шире. В **QSP** локации — это отдельные блоки кода, и они могут использоваться не только для написания различных мест. | + | С точки зрения игрока он исследует игровой мир, перемещаясь по локациям. Но с точки зрения создателя игры понятие “локация” гораздо шире. В **QSP** локации — это отдельные блоки кода, и они могут использоваться не только для описания различных мест. |
Возможные назначения локаций: | Возможные назначения локаций: | ||
- | * **Игровые локации** - локации, по которым ходит игрок, основа игрового мира. Такие локации можно разделить по назначению: | + | * **Игровые локации** - локации, по которым ходит игрок, основа игрового мира. Такие локации можно разделить по назначению: |
- | * **локации мест** - локации, в которых описывается некоторый кусочек игрового мира. Комнаты, дома, города, пещеры, подземелья и т.д. | + | * **локации мест** - локации, в которых описывается некоторый кусочек игрового мира. Комнаты, дома, города, пещеры, подземелья и т.д. |
- | * **информационные локации** - локации, на которых размещается информация об игре, своего рода страницы. Это могут быть: стартовый экран, страницы главного меню, страницы информации об авторе и об игре. | + | * **информационные локации** - локации, на которых размещается информация об игре, своего рода страницы. Это могут быть: стартовый экран, страницы главного меню, страницы информации об авторе и об игре. |
- | * **локации главы, параграфы, или разделы** - локации, составляющие основу книг-игр. В книгах-играх игрок перемещается не столько по игровому миру, сколько между страницами интерактивной истории. Вот в такой роли и могут в данном случае выступать локации. | + | * **локации главы, параграфы, или разделы** - локации, составляющие основу книг-игр. В книгах-играх игрок перемещается не столько по игровому миру, сколько между страницами интерактивной истории. Вот в такой роли и могут в данном случае выступать локации. |
- | * **Служебные локации** - локации, на которые игрок не может попасть, но которые необходимы для работы игры: | + | * **Служебные локации** - локации, на которые игрок не может попасть, но которые необходимы для работы игры: |
- | * **Локации-обработчики** - локации, обрабатывающие определенные события в игре (переходы между локациями, таймер, выбор предмета и т.п.). | + | * **Локации-обработчики** - локации, обрабатывающие определенные события в игре (переходы между локациями, таймер, выбор предмета и т.п.). |
- | * **Локации-данные** - иногда удобно хранить игровые тексты в отдельных переменных, а переменные - в отдельной локации, чтобы не захламлять код. | + | * **Локации-данные** - иногда удобно хранить игровые тексты в отдельных переменных, а переменные - в отдельной локации, чтобы не захламлять код. |
- | * **Локации-функции** - в QSP есть возможность сделать локацию-функцию. | + | * **Локации-функции** - в QSP есть возможность сделать локацию-функцию. |
- | * **Локации с кодом** - иногда удобно вынести часть кода в отдельную локацию. Чаще всего это код, который используется в нескольких локациях. | + | * **Локации с кодом** - иногда удобно вынести часть кода в отдельную локацию. Чаще всего это код, который используется в нескольких локациях. |
- | Вы сами определяете назначение локации, для плеера абсолютно все локации равнозначны. | + | **Вы сами определяете назначение локации**. Для плеера абсолютно все локации равнозначны. |
Любая локация может состоять из трёх полей: | Любая локация может состоять из трёх полей: | ||
- | * Базовое описание локации | + | * Базовое описание локации |
- | * Базовые действия локации | + | * Базовые действия локации |
- | * Код "Выполнить при посещении" | + | * Код “Выполнить при посещении” |
Вы можете заполнять эти поля по своему усмотрению. Можно заполнить их все, или одно из них, или не заполнять ни одного, — всё зависит от того, какое назначение вы выбрали для вашей локации, и как вам удобнее воплощать вашу идею. | Вы можете заполнять эти поля по своему усмотрению. Можно заполнить их все, или одно из них, или не заполнять ни одного, — всё зависит от того, какое назначение вы выбрали для вашей локации, и как вам удобнее воплощать вашу идею. | ||
Строка 33: | Строка 32: | ||
===== Именование локаций ===== | ===== Именование локаций ===== | ||
- | |||
Имя локации в процессе игры не отображается и может быть любым. Вы сами решаете, как назвать вашу локацию и какие символы использовать для названия. Но есть общие рекомендации: | Имя локации в процессе игры не отображается и может быть любым. Вы сами решаете, как назвать вашу локацию и какие символы использовать для названия. Но есть общие рекомендации: | ||
- | * Имя локации должно соответствовать её смыслу - если локация описывает дом, то это может быть "Дом", "House", но никак не "Пещера". | + | * Имя локации должно соответствовать её смыслу - если локация описывает дом, то это может быть “Дом”, “House”, но никак не “Пещера”. |
- | * Можно пользоваться префиксами в названии: | + | * Можно пользоваться префиксами в названии: |
- | * **''!название''** или **''$название''** - служебная локация (не с базой данных) | + | * **''%%!название%%''** или **''%%$название%%''** - служебная локация (не с базой данных) |
- | * **''#название''** - служебная локация с [[#help_glossary_data_base|базой данных]] | + | * **''%%#название%%''** - служебная локация с [[help:glossary|базой данных]] |
- | * **''^название''** - локация, вложенная в предыдущую. Например, названия локаций через запятую: **''Северная площадь''**, **''^Магазин игрушек''**, **''^^Продавец игрушек''**, **''^Магазин оружия''**, **''^^Мечи''**, **''^^Булавы''**, **''^^Оружейник''**.\\ Подобная маркировка префиксами была актуальна для старых версий [[help:qgen|Quest Generator]], в которых не было возможности распределять локации по папкам. Сейчас такая маркировка менее актуальна, так как названия без префиксов использовать намного удобнее, а в [[help:qgen|Quest Generator]] есть возможность размещать локации в отдельных папках. | + | * **''%%^название%%''** - локация, вложенная в предыдущую. Например, названия локаций через запятую: **''%%Северная площадь%%''**, **''%%^Магазин игрушек%%''**, **''%%^^Продавец игрушек%%''**, **''%%^Магазин оружия%%''**, **''%%^^Мечи%%''**, **''%%^^Булавы%%''**, **''%%^^Оружейник%%''**.\\ Подобная маркировка префиксами была актуальна для старых версий [[help:qgen|Quest Generator]], в которых не было возможности распределять локации по папкам. Сейчас такая маркировка менее актуальна, так как названия без префиксов использовать намного удобнее, а в [[help:qgen|Quest Generator]] есть возможность размещать локации в отдельных папках. |
- | * Названия локаций из нескольких слов можно писать любым удобным способом, например: | + | * Названия локаций из нескольких слов можно писать любым удобным способом, например: |
- | * **''Дом с трубой''** | + | * **''%%Дом с трубой%%''** |
- | * **''Дом_с_трубой''** | + | * **''%%Дом_с_трубой%%''** |
- | * **''ДомСТрубой''** | + | * **''%%ДомСТрубой%%''** |
- | * Регистр букв не важен: "домструбой", "ДОМСТРУБОЙ" и "ДомСТрубой" - одна и та же локация. | + | * Регистр букв не важен: “домструбой”, “ДОМСТРУБОЙ” и “ДомСТрубой” - одна и та же локация. |
- | * Если вы пишете [[help:organizing|локацию-функцию]], рекомендуется использовать в названии только буквы, цифры, символ подчёркивания и точку. Остальные символы могут поломать работу кода при упрощённом (неявном) вызове таких локаций-функций. | + | * **Если вы пишете [[help:organizing|локацию-функцию]]**, рекомендуется использовать в названии только буквы, цифры, символ подчёркивания и точку. Остальные символы могут поломать работу кода при упрощённом (неявном) вызове таких локаций-функций. |
- | * Рекомендуется выбирать названия локаций не совпадающие с [[help:keywords|ключевыми словами]] **QSP**. | + | * Рекомендуется выбирать названия локаций не совпадающие с [[help:keywords|ключевыми словами]] **QSP**. |
===== Команды для работы с локациями ===== | ===== Команды для работы с локациями ===== | ||
Строка 54: | Строка 52: | ||
==== Функции для обработки локаций ==== | ==== Функции для обработки локаций ==== | ||
- | * **''$CURLOC''** — данная функция возвращает название **текущей** ("активной") локации, т.е. локации на которой "находится" игрок. Пример:\\ <sxh qsp> | + | * **''%%$CURLOC%%''** — данная функция возвращает название **текущей** (“активной”) локации, т.е. локации на которой “находится” игрок. Пример: |
- | *pl $curloc & ! выводим название текущей локации в Окно основного описания | + | |
- | *pl "Сколько раз перезашли: <<перезашёл>>" | + | <sxh qsp> |
- | act "Перезайти на текущую локацию": | + | *pl $curloc & ! выводим название текущей локации в Окно основного описания |
- | перезашёл+=1 | + | *pl "Сколько раз перезашли: <<перезашёл>>" |
- | goto $curloc | + | act "Перезайти на текущую локацию": |
- | end | + | перезашёл += 1 |
- | </sxh> | + | goto $curloc |
+ | end | ||
+ | </sxh> | ||
===== Порядок воспроизведения локаций ===== | ===== Порядок воспроизведения локаций ===== | ||
- | Автоматически при запуске игры воспроизводится только самая первая локация в игре, на все остальные локации нужно делать [[help:goto|переходы]], или [[help:organizing|вызывать]] их иным образом. | + | При запуске игры автоматически воспроизводится только самая первая локация, на все остальные локации нужно делать [[help:goto|переходы]], или [[help:organizing|вызывать]] их иным образом. |
- | Так же, автоматически может выполняться код [[help:service_locations|служебных локаций]], отвечающих за обработку разных событий, и локации-счётчика. | + | Так же, автоматически может выполняться код локации-счётчика и [[help:service_locations|служебных локаций]], отвечающих за обработку разных событий. |
- | Подробнее о порядке воспроизведения локаций смотри статью [[help:principle|"Порядок работы интерпретатора"]]. | + | Подробнее о порядке воспроизведения локаций смотри статью [[help:principle|“Порядок работы интерпретатора”]]. |
[[help:main|Вперёд: Окно основного описания]] | [[help:main|Вперёд: Окно основного описания]] | ||