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

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


help:acts

Различия

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

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

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