Инструменты пользователя

Инструменты сайта


help:locations

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:locations [2013/11/11 07:55]
newsash старая ревизия восстановлена (2013/11/10 21:30) - GS и GOSUB не относится к упорядочиванию кода
help:locations [2024/10/10 17:14] (текущий)
aleks_versus
Строка 1: Строка 1:
 [[help:​qsp|Назад:​ Что такое QSP?]] [[help:​qsp|Назад:​ Что такое QSP?]]
  
-=====Локации ​и переходы=====+====== Локации ​======
  
-**Локация** - элементарная единица игрового мира. Это может быть пещера,​ дом, комната,​ улица ​и т.п.\\  +**Локация** - элементарная единица игрового мира. Это может быть пещера,​ дом, комната,​ улица, большой ​город или даже целая планета.
-С точки зрения игрока он исследует игровой мир перемещаясь по локациям, ​но с точки зрения создателя игры понятие локации гораздо шире.+
  
-Применения для локаций:​ +С точки зрения игрока он исследует игровой ​мир, перемещаясь по локациям. Но с точки зрения создателя игры понятие “локация” гораздо шире. В **QSP** ​локации — это отдельные блоки кода, и они могут использоваться не только для описания различных мест. 
-  * **Игровые локации** - локации,​ по которым ходит игрок, основа игрового мира. + 
-  * **Служебные локации** - локации,​ на которые не попадает игрок+Возможные назначения локаций:​ 
-    * **Локации-обработчики** - локации,​ обрабатывающие определенные события в игре (переходы между локациями,​ таймер,​ выбор предмета и т.п.)+ 
 +  * **Игровые локации** - локации,​ по которым ходит игрок, основа игрового мира. Такие локации можно разделить по назначению:​ 
 +    * **локации мест** - локации,​ в которых описывается некоторый кусочек игрового мира. Комнаты,​ дома, города,​ пещеры,​ подземелья и т.д. 
 +    * **информационные локации** - локации,​ на которых размещается информация об игре, своего рода страницы. Это могут быть: стартовый экран, страницы главного меню, страницы информации об авторе и об игре. 
 +    * **локации главы, параграфы,​ или разделы** - локации,​ составляющие основу книг-игр. В книгах-играх игрок перемещается не столько по игровому миру, сколько между страницами интерактивной истории. Вот в такой роли и могут в данном случае выступать локации
 +  * **Служебные локации** - локации,​ на которые ​игрок ​не может ​попасть, но которые необходимы для работы игры
 +    * **Локации-обработчики** - локации,​ обрабатывающие определенные события в игре (переходы между локациями,​ таймер,​ выбор предмета и т.п.).
     * **Локации-данные** - иногда удобно хранить игровые тексты в отдельных переменных,​ а переменные - в отдельной локации,​ чтобы не захламлять код.     * **Локации-данные** - иногда удобно хранить игровые тексты в отдельных переменных,​ а переменные - в отдельной локации,​ чтобы не захламлять код.
-    * **Локации-функции** - в QSP есть возможность сделать локацию-функцию+    * **Локации-функции** - в QSP есть возможность сделать локацию-функцию.
     * **Локации с кодом** - иногда удобно вынести часть кода в отдельную локацию. Чаще всего это код, который используется в нескольких локациях.     * **Локации с кодом** - иногда удобно вынести часть кода в отдельную локацию. Чаще всего это код, который используется в нескольких локациях.
  
-Локация состоит из:+**Вы сами определяете назначение локации**. Для плеера абсолютно все локации равнозначны. 
 + 
 +Любая локация ​может ​состоять из трёх полей: 
   * Базовое описание локации   * Базовое описание локации
-  * Базовые действия +  * Базовые действия ​локации 
-  * Код ​"Выполнить при посещении"+  * Код ​Выполнить при посещении
  
-====Именование локаций====+Вы можете заполнять эти поля по своему усмотрению. Можно заполнить их все, или одно из них, или не заполнять ни одного,​ — всё зависит от того, ​какое назначение вы выбрали для вашей локации,​ и как вам удобнее воплощать вашу идею.
  
-Имя локации в процессе игры не отображается и может быть любым. Но есть общие рекомендации:+Поля **Базовое описание ​локации** и **Базовые действия локации** доступны для заполнения ​только в редакторе [[help:​qgen|Quest Generator]],​ если вы работаете в обычном ​текстовом редакторе, весь ​код пишется только для поля **Выполнить при посещении**.
  
-  ​* Имя локации должно соответствовать её смыслу - если локация описывает дом, то это может быть ​"Дом""House", но никак не "Пещера".+===== Именование локаций ===== 
 + 
 +Имя локации в процессе игры не отображается и может быть любым. Вы сами решаете,​ как назвать вашу локацию и какие символы использовать для названия. Но есть общие рекомендации:​ 
 + 
 +  ​* Имя локации должно соответствовать её смыслу - если локация описывает дом, то это может быть ​ДомHouse, но никак не Пещера.
   * Можно пользоваться префиксами в названии:​   * Можно пользоваться префиксами в названии:​
-    * __//!название//__ или ​__//$название//__ - служебная локация (не с базой данных) +    * **''​%%!название%%''​** ​или ​**''​%%$название%%''​** ​- служебная локация (не с базой данных) 
-    * __//#​название//__ - локация с базой данных +    * **''​%%#​название%%''​** ​служебная ​локация с [[help:​glossary|базой данных]] 
-    * __//^название//__ - локация,​ вложенная в предыдущую. Например,​ названия локаций через запятую: ​//Северная площадь////^Магазин игрушек////^^Продавец игрушек////^Магазин оружия////^^Мечи////^^Булавы////^^Оружейник//+    * **''​%%^название%%''​** ​- локация,​ вложенная в предыдущую. Например,​ названия локаций через запятую: ​**''​%%Северная площадь%%''​****''​%%^Магазин игрушек%%''​****''​%%^^Продавец игрушек%%''​****''​%%^Магазин оружия%%''​****''​%%^^Мечи%%''​****''​%%^^Булавы%%''​****''​%%^^Оружейник%%''​**.\\ Подобная маркировка префиксами была актуальна для старых версий [[help:​qgen|Quest Generator]],​ в которых не было возможности распределять локации по папкам. Сейчас такая маркировка менее актуальна,​ так как названия без префиксов использовать намного удобнее,​ а в [[help:​qgen|Quest Generator]] есть возможность размещать локации в отдельных папках.
   * Названия локаций из нескольких слов можно писать любым удобным способом,​ например:​   * Названия локаций из нескольких слов можно писать любым удобным способом,​ например:​
-    * //Дом с трубой// +    * **''​%%Дом с трубой%%''​** 
-    * //Дом_с_трубой// +    * **''​%%Дом_с_трубой%%''​** 
-    * //ДомСТрубой// +    * **''​%%ДомСТрубой%%''​** 
-  * Регистр букв не важен: ​//"Домструбой"// ​и //"ДомСТрубой"// ​- одна и та же локация.+  * Регистр букв не важен: ​“домструбой”, “ДОМСТРУБОЙ” ​и ДомСТрубой” - одна и та же локация
 +  * **Если вы пишете [[help:​organizing|локацию-функцию]]**,​ рекомендуется использовать в названии только буквы, цифры, символ подчёркивания и точку. Остальные символы могут поломать работу кода при упрощённом (неявном) вызове таких локаций-функций. 
 +  * Рекомендуется выбирать названия локаций не совпадающие с [[help:​keywords|ключевыми словами]] **QSP**.
  
-====Переходы====+===== Команды для работы с локациями =====
  
-  * **GOTO** //[$локация]//​**,​**//​[параметр 1]//​**,​**//​[параметр 2]//**, ...** или +==== Функции для обработки локаций ==== 
-  * **GT** //[$локация]//​**,​**//​[параметр 1]//​**,​**//​[параметр 2]//**, ...** - переход на локацию с названием //​[$локация]//​. + 
-    ​Основное описание локации и список действий __//заменяются//__ описанием и действиями ​новой локации. +  * **''​%%$CURLOC%%''​** — данная функция ​возвращает название *екущей** (“активной”) локации, т.е. локации на которой “находится” игрок. Пример:​ 
-    * Переданные параметры хранятся в массиве ARGSМаксимальное ​количество параметров - **9**((10 включая имя локации)). + 
-    * //Примеры:// <sxh qsp> +<sxh qsp> 
-GT '​локация'  ​&​! ​переход на локацию "локация". Массив ARGS пуст. +*pl $curloc ​& ! выводим название текущей ​локации в Окно основного описания 
-GT 'локация',​1,'​данные'​ &​! ​переход с передачей 2-х параметров. +*pl "​Сколько раз перезашли: <<перезашёл>>"​ 
-!ARGS[0] ​равен ​1$ARGS[1] содержит строку "​данные"​.+act "Перезайти на текущую локацию":​ 
 +  перезашёл += 1 
 +  goto $curloc 
 +end
 </​sxh>​ </​sxh>​
-  * **XGOTO** //​[$локация]//​**,​**//​[параметр 1]//​**,​**//​[параметр 2]//**, ...** или ​ 
-  * **XGT** //​[$локация]//​**,​**//​[параметр 1]//​**,​**//​[параметр 2]//**, ...** - переход на локацию с названием //​[$локация]//​. 
-    * __//​Не//​__ очищается поле основного описания локации. 
-    * Базовое описание новой локации __//​добавляется//​__ к текущему основному описанию. ​ 
-    * В остальном аналогично **GT**/​**GOTO**:​ 
-      * Список действия заменяется действиями новой локации 
-      * Переданные параметры хранятся в массиве ARGS. Максимальное количество параметров - **9**((10 включая имя локации)). 
  
----- +===== Порядок воспроизведения локаций ===== 
-[[help:variables|Вперёд: переменные]]+ 
 +При запуске игры автоматически воспроизводится только самая первая локация,​ на все остальные локации нужно делать ​[[help:goto|переходы]], или [[help:organizing|вызывать]] их иным образом. 
 + 
 +Так же, автоматически может выполняться код локации-счётчика и [[help:​service_locations|служебных локаций]],​ отвечающих за обработку разных событий. 
 + 
 +Подробнее о порядке воспроизведения локаций смотри статью [[help:​principle|“Порядок работы интерпретатора”]]
 + 
 +[[help:​main|Вперёд:​ Окно основного описания]] 
help/locations.1384156537.txt.gz · Последние изменения: 2013/11/11 11:55 (внешнее изменение)