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

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


help:acts

Различия

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

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

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:acts [2022/12/30 15:37]
aleks_versus
help:acts [2024/10/14 07:00] (текущий)
aleks_versus проба обновления до 5.9.0
Строка 1: Строка 1:
- +[[help:​msgbox|Назад: ​Окно сообщений]]
-[[help:​msgbox|Назад: ​Диалоговое окно]]+
  
 ====== Действия ====== ====== Действия ======
  
-"​Менюшные"​ игры с точки зрения геймплея, как правило, ​предоставляют игроку на выбор несколько вариантов действий,​ которыми он может воспользоваться. Выбрав действие,​ игрок двигает игру дальше по сюжету,​ и волне возможно,​ главный герой при этом совершает описанное действие:​ съедает кусок пирога,​ или проникает в чужой сад.+"​Менюшные"​ игры с точки зрения геймплея предоставляют игроку на выбор несколько вариантов действий,​ которыми он может воспользоваться. Выбрав действие,​ игрок двигает игру дальше по сюжету,​ и волне возможно,​ главный герой при этом совершает описанное действие:​ съедает кусок пирога,​ или проникает в чужой сад.
  
-Обычно действия отделены от основного описания и представляют собой ряд кликабельных кнопок. В **QSP** для размещения действий есть отдельное окно, оно так и называется **Окно действий**,​ или **Список действий** (в плеере просто **Действия**).+Обычно действия отделены от основного описания и представляют собой ряд кликабельных кнопок. В **QSP** для размещения действий есть отдельное окно, оно так и называется **Окно действий**,​ или **Список действий** (в плеере просто**Действия**).
  
 С этим окном, в зависимости от нужд вашей игры, вы можете проделывать разные манипуляции. Вы можете:​ С этим окном, в зависимости от нужд вашей игры, вы можете проделывать разные манипуляции. Вы можете:​
- * Отключать и включать **Окно действий** по своему желанию + 
- * Добавлять действия в **Окно действий** +  ​* Отключать и включать **Окно действий** по своему желанию 
- * Удалять действия из **Окна действий** +  * Добавлять действия в **Окно действий** 
- * Полностью очищать **Окно действий**+  * Удалять действия из **Окна действий** 
 +  * Полностью очищать **Окно действий**
  
 В названиях действий не важен регистр букв, то есть "​Пойти"​ и "​поЙти"​ - одно и то же действие. В названиях действий не важен регистр букв, то есть "​Пойти"​ и "​поЙти"​ - одно и то же действие.
  
-При создании действия,​ весь код, относящийся к действию,​ "​прикрепляется"​ к этому действию,​ но не выполняется. Этот код будет выполнен только тогда, когда игрок нажмёт на действие (щёлкнет по нему мышью).+При создании действия, ​**весь код, относящийся к действию,​ "​прикрепляется"​ к этому действию,​ но не выполняется**. Этот код будет выполнен только тогда, когда игрок нажмёт на действие (щёлкнет по нему мышью).
  
 ===== Команды для работы с Окном действий ===== ===== Команды для работы с Окном действий =====
Строка 22: Строка 22:
 ==== Включение и выключение Окна действий ==== ==== Включение и выключение Окна действий ====
  
-  ''​**SHOWACTS** [#​выражение]''​ - если значение выражения отлично от 0, то показывает **Список действий**,​ иначе скрывает его. Пример:<​sxh qsp> +  ​* ''​%%SHOWACTS [#​выражение]%%''​ - если значение выражения отлично от 0, то показывает **Список действий**,​ иначе скрывает его. Пример:​ <sxh qsp> 
- showacts 0 & ! скрываем Окно действий +showacts 0 & ! скрываем Окно действий 
- showacts 1 & ! выводим Окно действий на экран +showacts 1 & ! выводим Окно действий на экран 
-</​sxh>​ Для удобства чтения кода можно заранее определить переменные ''​on''​ и ''​off''​ с соответствующими значениями:<​sxh qsp> +</​sxh>​ Для удобства чтения кода можно заранее определить переменные ''​%%on%%''​ и ''​%%off%%''​ с соответствующими значениями:​ <sxh qsp> 
- on,off = 1,0 +on,off = 1,0 
- showacts on & ! включаем Окно действий +showacts on & ! включаем Окно действий 
- showacts off & ! выключаем Окно действий+showacts off & ! выключаем Окно действий
 </​sxh>​ </​sxh>​
  
 ==== Команды для управления действиями ==== ==== Команды для управления действиями ====
-  ''​**ACT**''​ — данная команда добавляет в **Окно действий** кнопку действия. + 
- * У этой команды есть две формы записи:​ +  ​* ''​%%ACT%%''​ — данная команда добавляет в **Окно действий** кнопку действия. 
- * Однострочная форма записи:<​sxh qsp>+    * У этой команды есть две формы записи:​ 
 +      * Однострочная форма записи:<​sxh qsp>
 ACT [$название],​ [$путь к файлу изображения]:​ {оператор 1} & {оператор 2} & {оператор 3} ACT [$название],​ [$путь к файлу изображения]:​ {оператор 1} & {оператор 2} & {оператор 3}
-</​sxh>​ Здесь ''​[$название]''​ — это надпись (название),​ которая будет выводиться на кнопке действия,​ а ''​[$путь к файлу изображения]''​ — путь к файлу изображения,​ которое так же будет выводиться на кнопке действия перед названием. +</​sxh>​ Здесь ''​%%[$название]%%''​ — это надпись (название),​ которая будет выводиться на кнопке действия,​ а ''​%%[$путь к файлу изображения]%%''​ — путь к файлу изображения,​ которое так же будет выводиться на кнопке действия перед названием. 
- * И команда ''​**ACT**''​ и название,​ и операторы после двоеточия при такой форме записи должны быть записаны в одну строку. +        * И команда ''​%%ACT%%''​ и название,​ и операторы после двоеточия при такой форме записи должны быть записаны в одну строку. 
- * Когда игрок нажмёт кнопку действия с указанным названием,​ будут выполнены перечисленные операторы. +        * Когда игрок нажмёт кнопку действия с указанным названием,​ будут выполнены перечисленные операторы. 
- * Параметр ''​[$путь к файлу изображения]''​ может отсутствовать,​ при этом действие добавится без изображения. +        * Параметр ''​%%[$путь к файлу изображения]%%''​ может отсутствовать,​ при этом действие добавится без изображения. 
- * Многострочная форма записи:<​sxh qsp> +      * Многострочная форма записи:​ <sxh qsp> 
- ACT [$название],​ [$путь к файлу изображения]:​ +ACT [$название],​ [$путь к файлу изображения]:​ 
- {оператор 1} +  {оператор 1} 
- {оператор 2} +  {оператор 2} 
- {оператор 3} +  {оператор 3} 
- END +END 
-</​sxh>​ Здесь точно так же будет создано действие с названием ''​[$название]'',​ перед названием будет выводиться изображение,​ путь к которому мы указали с помощью параметра ''​[$путь к файлу изображения]'',​ а когда игрок нажмёт на действие,​ будут выполнены перечисленные операторы. Обратите внимание:​ +</​sxh>​ Здесь точно так же будет создано действие с названием ''​%%[$название]%%'',​ перед названием будет выводиться изображение,​ путь к которому мы указали с помощью параметра ''​%%[$путь к файлу изображения]%%'',​ а когда игрок нажмёт на действие,​ будут выполнены перечисленные операторы. Обратите внимание:​ 
- * При многострочной форме записи после двоеточия в той же строке,​ где находится команда ''​**ACT**''​ не должно быть ничего. +        * При многострочной форме записи после двоеточия в той же строке,​ где находится команда ''​%%ACT%%''​ не должно быть ничего. 
- * Все операторы записываются со следующей строки после двоеточия +        * Все операторы записываются со следующей строки после двоеточия 
- * Многострочная форма обязательно должна завершаться командой ''​**END**''​ или ''​**END ACT**''​. +        * Многострочная форма обязательно должна завершаться командой ''​%%END%%''​ или ''​%%END ACT%%''​. 
- * Примеры:<​sxh qsp> +    * Примеры:​ <sxh qsp> 
- ! действие в однострочной форме записи +! действие в однострочной форме записи 
- act "​Сорвать с берёзы яблоко":​ яблоко+=1 & *pl "Вы сорвали яблоко,​ спелое белое."​+act "​Сорвать с берёзы яблоко":​ яблоко += 1 & *pl "Вы сорвали яблоко,​ спелое белое."​
  
- ! действие в многострочной форме записи,​ с изображением +! действие в многострочной форме записи,​ с изображением 
- act "​Сорвать арбуз с куста","​img/​watermelon.png":​ +act "​Сорвать арбуз с куста",​ "​img/​watermelon.png":​ 
- арбуз+=1 +  арбуз += 1 
- *pl "Вы сорвали арбуз с куста"​ +  *pl "Вы сорвали арбуз с куста"​ 
- end+end
 </​sxh>​ </​sxh>​
- *  ''​**DELACT** [$название]''​ - удаляет действие с указанным названием из списка действий на локации. Если действие с указанным названием не существует,​ ошибки не будет, плеер просто проигнорирует команду. Примеры:<​sxh qsp> 
- ! удаляем действие с конкретным названием 
- delact '​Идти вперед'​ 
  
- ! удаляем выделенное действие +  * ''​%%DELACT [$название]%%''​ - удаляет действие с указанным названием из списка действий на локации. Если действие с указанным названием не существует,​ ошибки не будет, плеер просто проигнорирует команду. Примеры:​ <sxh qsp> 
- delact $selact+! удаляем действие с конкретным названием 
 +delact ‘Идти вперед’ 
 + 
 +! удаляем выделенное действие 
 +delact $selact
 </​sxh>​ </​sxh>​
  
 ==== Команды очистки Окна действий ==== ==== Команды очистки Окна действий ====
- ''​**CLA**''​ - очистка списка текущих действий (удаление всех действий из окна действий). Пример:<​sxh qsp> + 
- ! это действие при нажатии выведет текст +  * **''​CLA''​** ​- очистка списка текущих действий (удаление всех действий из окна действий). Пример:​ <sxh qsp> 
- act "​Действие 1": +! это действие при нажатии выведет текст 
- *pl "​Ехал Грека Через Реку"​ +act "​Действие 1": 
- end +  *pl "​Ехал Грека Через Реку"​ 
- ! это действие при нажатии выведет текст и удалится +end 
- act "​Действие 2": + 
- *pl "​Видит Грека В Реке Рак"​ +! это действие при нажатии выведет текст и удалится 
- delact $selact +act "​Действие 2": 
- end +  *pl "​Видит Грека В Реке Рак"​ 
- ! это действие при нажатии удалит все действия +  delact $selact 
- act "​Очистить окно действий":​ +end 
- cla + 
- end+! это действие при нажатии удалит все действия 
 +act "​Очистить окно действий":​ 
 +  cla 
 +end
 </​sxh>​ </​sxh>​
-  ''​**CLS**''​ - эквивалентно конструкции "''​CLEAR & *CLEAR & CLA & CMDCLEAR''",​ т.е. очищает все окна кроме списка предметов.+ 
 +* **''​CLS''​** - эквивалентно конструкции "''​%%CLEAR & *CLEAR & CLA & CMDCLEAR%%''",​ т.е. очищает все окна кроме списка предметов.
  
 ==== Функции для обработки действий ==== ==== Функции для обработки действий ====
  
-  ''​**$CURACTS**''​ - данная функция возвращает текущий список действий в виде QSP-кода. +  ​* ''​%%$CURACTS%%''​ - данная функция возвращает текущий список действий в виде QSP-кода. 
-  Действия сохраняются в виде набора операторов ''​**ACT**''​ с ответствующими параметрами и операциями. +    * Действия сохраняются в виде набора операторов ''​%%ACT%%''​ с ответствующими параметрами и операциями. 
-  Записав возвращённое функцией значение в переменную,​ можно восстановить действия с помощью оператора **[[help:​dynamical|DYNAMIC]]**. Пример:<​sxh qsp> +    * Записав возвращённое функцией значение в переменную,​ можно восстановить действия с помощью оператора **[[help:​dynamical|DYNAMIC]]**. Пример:​ <sxh qsp> 
- ! записываем текущие действия в переменную +! записываем текущие действия в переменную 
- $actlist=$curacts +$actlist=$curacts 
- ! восстанавливаем действия из переменной +! восстанавливаем действия из переменной 
- dynamic $actlist+dynamic $actlist
 </​sxh>​ </​sxh>​
-  ''​**$SELACT**''​ - данная функция возвращает название выделенного действия в любом месте игры. Пример:<​sxh qsp> +  ​* ''​%%$SELACT%%''​ - данная функция возвращает название выделенного действия в любом месте игры. Пример:​ <sxh qsp> 
- act "​Съесть яблоко":​ +act "​Съесть яблоко":​ 
- *pl "​Это было очень вкусное яблоко. Жаль, что червивое."​ +  *pl "​Это было очень вкусное яблоко. Жаль, что червивое."​ 
- здоровье=здоровье+100 +  здоровье=здоровье+100 
- delact $selact +  delact $selact 
- end+end
 </​sxh>​ </​sxh>​
  
 ===== Событие "​Выделение действия"​ ===== ===== Событие "​Выделение действия"​ =====
  
-Когда вы наводите курсор мыши на действие,​ в классическом плеере это действие подсвечивается голубым цветом,​ и это означает,​ что действие выделено. При этом функция ​''​**$SELACT**'',​ вызванная в любом месте игры, будет возвращать название такого выделенного действия.+Когда вы наводите курсор мыши на действие,​ в классическом плеере это действие подсвечивается голубым цветом,​ и это означает,​ что действие выделено. При этом функция **''​$SELACT''​**, вызванная в любом месте игры, будет возвращать название такого выделенного действия.
  
-**Выделение действия** — это событие,​ к которому вы можете привязать автоматическое выполнение кода. Делается это с помощью системной переменной ''​**$ONACTSEL**'':​+**Выделение действия** — это событие,​ к которому вы можете привязать автоматическое выполнение кода. Делается это с помощью системной переменной ''​%%$ONACTSEL%%'':​
  
- ''​**$ONACTSEL**''​ — системная переменная,​ куда можно прописать название локации,​ код на которой будет выполняться при очередном выделении действия.+  ​* **''​$ONACTSEL''​** — системная переменная,​ куда можно прописать название локации,​ код на которой будет выполняться при очередном выделении действия.
  
 Более подробная информация в разделе [[help:​service_locations|"​Служебные локации"​]]. Более подробная информация в разделе [[help:​service_locations|"​Служебные локации"​]].
Строка 119: Строка 125:
  
 <sxh qsp> <sxh qsp>
-яблоки=245+яблоки = 245 
 act "​Наколдовать яблоки":​ act "​Наколдовать яблоки":​
- local яблоки +  ​local яблоки ​& ! объявляем локальную переменную 
- яблоки=val($input('​Сколько вам нужно яблок?'​)) +  яблоки = val($input('​Сколько вам нужно яблок?'​)) 
- яблоки_у_Миши+=яблоки +  яблоки_у_Миши += яблоки 
- *pl "​Наколдовано яблок: <<​яблоки>>"​+  *pl "​Наколдовано яблок: <<​яблоки>>"​
 end end
 +
 act "​Сколько яблок на локации?":​ act "​Сколько яблок на локации?":​
- ! это действие работает с глобальной переменной +  ​! это действие работает с глобальной переменной 
- *pl "​Яблок на локации:​ <<​яблоки>>"​+  *pl "​Яблок на локации:​ <<​яблоки>>"​
 end end
 </​sxh>​ </​sxh>​
  
 ===== Ограничения ===== ===== Ограничения =====
- * Максимальное количество одновременно видимых действий на локации — 50. То есть игрок не сможет увидеть больше пятидесяти действий на экране,​ сколько бы вы их не добавляли. 
- * Если в списке действий уже есть действие с указанным названием,​ то новое действие не создаётся,​ и не заменяет собой уже существующее,​ плеер просто игнорирует команду **act**. Таким образом нельзя вывести действия с одинаковыми названиями. Пример:<​sxh qsp> 
- act "​Действие 1": *pl "​Старое действие."​ 
- act "​Действие 1": *pl "​Новое действие."​ 
-</​sxh>​ 
  
-----+  * Максимальное количество одновременно видимых действий на локации — 50. То есть игрок не сможет увидеть больше пятидесяти действий на экране,​ сколько бы вы их не добавляли. 
 +  * Если в списке действий уже есть действие с указанным названием,​ то новое действие не создаётся,​ и не заменяет собой уже существующее,​ плеер просто игнорирует команду **act**. Таким образом нельзя вывести действия с одинаковыми названиями. Пример:​ <sxh qsp> 
 +act "​Действие 1": *pl "​Старое действие."​ 
 +act "​Действие 1": *pl "​Новое действие."​ 
 +</​sxh>​
  
 [[help:​goto|Вперёд:​ Переходы]] [[help:​goto|Вперёд:​ Переходы]]
  
help/acts.1672414646.txt.gz · Последние изменения: 2022/12/30 15:37 — aleks_versus