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

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


help:goto

Различия

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

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

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:goto [2022/12/30 16:00]
aleks_versus
help:goto [2024/10/14 07:11] (текущий)
aleks_versus проба обновления до 5.9.0
Строка 9: Строка 9:
 ===== Команды для перемещения между локациями ===== ===== Команды для перемещения между локациями =====
  
-  ''​**GOTO** [$локация]''​ — переход на локацию с названием ''​[$локация]''​. +  ​* ''​%%GOTO [$локация]%%''​ — переход на локацию с названием ''​%%[$локация]%%''​. 
- * Пример:<​sxh qsp> +    * Пример:​ <sxh qsp> 
- ! переход на локацию "​Тронный зал"​ +! переход на локацию "​Тронный зал"​ 
- goto '​Тронный зал'​+goto '​Тронный зал'​
 </​sxh>​ </​sxh>​
- * При переходе на указанную локацию с помощью команды **GOTO** происходит следующее:​ +    ​* При переходе на указанную локацию с помощью команды **GOTO** происходит следующее:​ 
- * Очистка **Окна основного описания** и очистка **Окна действий**. +      * Очистка **Окна основного описания** и очистка **Окна действий**. 
- * Вывод в **Окно основного описания** текста из поля "​**Базовое описание**"​ локации (поле "​**Описание**"​ в **QGen**). +      * Вывод в **Окно основного описания** текста из поля "​**Базовое описание**"​ локации (поле "​**Описание**"​ в **QGen**). 
- * Вывод в **Окно действий** действий из поля "​**Базовые действия**"​ +      * Вывод в **Окно действий** действий из поля "​**Базовые действия**"​ 
- * Выполнение кода из поля **Выполнить при посещении** +      * Выполнение кода из поля **Выполнить при посещении** 
- * Команда ''​**GOTO**''​ имеет краткую запись ''​**GT**''​. Пример:<​sxh qsp> +    * Команда ''​%%GOTO%%''​ имеет краткую запись ''​%%GT%%''​. Пример:​ <sxh qsp> 
- goto "​тёмный_лес"​ +goto "​тёмный_лес"​ 
- ! эквивалентно +! эквивалентно 
- gt "​тёмный_лес"​+gt "​тёмный_лес"​
 </​sxh>​ </​sxh>​
- * При переходе,​ на локацию можно передавать до девятнадцати значений вместе с командой ''​**GOTO**''​. Значения перечисляются по порядку через запятую после названия локации:<​sxh qsp> +    ​* При переходе,​ на локацию можно передавать до девятнадцати значений вместе с командой ''​%%GOTO%%''​. Значения перечисляются по порядку через запятую после названия локации:​ <sxh qsp> 
- GOTO [$локация],​[аргумент 0],​[аргумент 1], ... ,​[аргумент 18] +GOTO [$локация],​[аргумент 0],​[аргумент 1], ... ,​[аргумент 18] 
-</​sxh>​Передаваемые на локацию значения называются **аргументами** или **параметрами**. Эти значения плеер автоматически помещает в специальный массив ''​**ARGS[]**''​ в ячейки с нулевой по восемнадцатую. Пример:<​sxh qsp> +</​sxh>​ Передаваемые на локацию значения называются **аргументами** или **параметрами**. Эти значения плеер автоматически помещает в специальный массив ''​%%ARGS[]%%''​ в ячейки с нулевой по восемнадцатую. Пример:​ <sxh qsp> 
- # начало +# начало 
- ! это код локации начало +! это код локации начало 
- act "​Начать игру":​ +act "​Начать игру":​ 
- ! при нажатии на действие игрок перейдёт на локацию "​комната"​ +  ! при нажатии на действие игрок перейдёт на локацию "​комната"​ 
- goto "​комната","​начало"​ & ! на локацию комната будет передана строка со словом "​начало"​ +  goto "​комната","​начало"​ & ! на локацию комната будет передана строка со словом "​начало"​ 
- end +end 
- --- начало ---+--- начало ---
  
- # комната +# комната 
- ! это код локации комната +! это код локации комната 
- $откуда_пришли=$args[0] & ! из $args[0] получаем значение,​ переданное с командой goto +$откуда_пришли=$args[0] & ! из $args[0] получаем значение,​ переданное с командой goto 
- if $откуда_пришли="​начало":​ +if $откуда_пришли="​начало":​ 
- ! если пришли с локации "​начало",​ выводим душещипательную катсцену +  ! если пришли с локации "​начало",​ выводим душещипательную катсцену 
- *pl "​Здесь начинается наша история"​ +  pl "​Здесь начинается наша история"​ 
- else +else 
- ! если пришли не с локации "​начало",​ просто выводим описание комнаты +  ! если пришли не с локации "​начало",​ просто выводим описание комнаты 
- *pl "​Описание комнаты"​ +  pl "​Описание комнаты"​ 
- end  +end 
- --- комната ---+--- комната ---
 </​sxh>​ </​sxh>​
-  ''​**XGOTO** [$локация]''​ - переход на локацию с названием ''​[$локация]''​ БЕЗ очистки **Окна основного описания**. +  ​* ''​%%XGOTO [$локация]%%''​ - переход на локацию с названием ''​%%[$локация]%%''​ БЕЗ очистки **Окна основного описания**. 
- * Пример:<​sxh qsp> +    * Пример:​ <sxh qsp> 
- ! переход на локацию "​разговор с начальником"​ +! переход на локацию "​разговор с начальником"​ 
- xgoto '​разговор с начальником'​+xgoto '​разговор с начальником'​
 </​sxh>​ </​sxh>​
- * При переходе на указанную локацию с помощью команды ''​**XGOTO**''​ происходит следующее:​ +    ​* При переходе на указанную локацию с помощью команды ''​%%XGOTO%%''​ происходит следующее:​ 
- * Очистка **Окна действий**. +      * Очистка **Окна действий**. 
- * Вывод в **Окно основного описания** текста из поля **Базовое описание** локации (поле **Описание** в **QGen**). Новое описание дополняет уже имеющееся. +      * Вывод в **Окно основного описания** текста из поля **Базовое описание** локации (поле **Описание** в **QGen**). Новое описание дополняет уже имеющееся. 
- * Вывод в **Окно действий** действий из поля **Базовые действия** +      * Вывод в **Окно действий** действий из поля **Базовые действия** 
- * Выполнение кода из поля **Выполнить при посещении** +      * Выполнение кода из поля **Выполнить при посещении** 
- * Команда ''​**XGOTO**''​ имеет краткую запись ''​**XGT**''​. Пример:<​sxh qsp> +    * Команда ''​%%XGOTO%%''​ имеет краткую запись ''​%%XGT%%''​. Пример:​ <sxh qsp> 
- xgoto "​дремучая_чаща"​ +xgoto "​дремучая_чаща"​ 
- ! эквивалентно +! эквивалентно 
- xgt "​дремучая_чаща"​+xgt "​дремучая_чаща"​
 </​sxh>​ </​sxh>​
- * При переходе,​ на локацию можно передавать до девятнадцати значений вместе с командой ''​**XGOTO**''​. Значения перечисляются по порядку через запятую после названия локации:<​sxh qsp> +    ​* При переходе,​ на локацию можно передавать до девятнадцати значений вместе с командой ''​%%XGOTO%%''​. Значения перечисляются по порядку через запятую после названия локации:​ <sxh qsp> 
- XGOTO [$локация],​[аргумент 0],​[аргумент 1], ... ,​[аргумент 18] +XGOTO [$локация],​[аргумент 0],​[аргумент 1], ... ,​[аргумент 18] 
-</​sxh>​ Передаваемые на локацию значения называются **аргументами** или **параметрами**. Эти значения плеер автоматически помещает в специальный массив ''​**ARGS[]**''​ в ячейки с нулевой по восемнадцатую. Пример:<​sxh qsp> +</​sxh>​ Передаваемые на локацию значения называются **аргументами** или **параметрами**. Эти значения плеер автоматически помещает в специальный массив ''​%%ARGS[]%%''​ в ячейки с нулевой по восемнадцатую. Пример:​ <sxh qsp> 
- ! локация "​разговор с начальником"​ +! локация "​разговор с начальником"​ 
- $вариант=$args[0] & ! первое значение помещаем в переменную вариант +$вариант = $args[0] & ! первое значение помещаем в переменную вариант 
- счётчик=args[1] & ! второе значение — в переменную счётчик +счётчик = args[1] & ! второе значение — в переменную счётчик 
- act "— Можно задать вам вопрос?":​ +act "— Можно задать вам вопрос?":​ 
- *pl 'Я: — Можно задать вам вопрос?'​ +  *pl 'Я: — Можно задать вам вопрос?'​ 
- xgoto '​разговор с начальником','​можно?',​счётчик+1 +  xgoto '​разговор с начальником',​ '​можно?',​ счётчик + 1 
- end +end 
- if $вариант='​можно?':​ + 
- if счётчик=1:​ +if $вариант = '​можно?':​ 
- '​Начальник:​ — Задавайте.'​ +  if счётчик = 1: 
- else +    '​Начальник:​ — Задавайте.'​ 
- '​Начальник:​ — Вы это уже спрашивали.'​ +  else: 
- end +    '​Начальник:​ — Вы это уже спрашивали.'​ 
- else +  end 
- '​Начальник:​ — С чем пожаловали?'​ +else: 
- end+  '​Начальник:​ — С чем пожаловали?'​ 
 +end
 </​sxh>​ </​sxh>​
  
 ===== Команды посещения локаций ===== ===== Команды посещения локаций =====
  
-Иногда нам нужно прервать выполнение определённого кода, выполнить код на другой локации,​ а затем вернуться и продолжить выполнять прерванный код. В таких случаях операторы ''​**GOTO**''​ и ''​**XGOTO**''​ нам не подходят,​ ведь они осуществляют **переход** на локацию и оставляют нас на ней.+Иногда нам нужно прервать выполнение определённого кода, выполнить код на другой локации,​ а затем вернуться и продолжить выполнять прерванный код. В таких случаях операторы ''​%%GOTO%%''​ и ''​%%XGOTO%%''​ нам не подходят,​ ведь они осуществляют **переход** на локацию и оставляют нас на ней.
  
 В **QSP** есть более подходящие для таких ситуаций команды,​ они подробно описаны в разделе [[help:​organizing|"​Пользовательские функции и процедуры"​]]. В **QSP** есть более подходящие для таких ситуаций команды,​ они подробно описаны в разделе [[help:​organizing|"​Пользовательские функции и процедуры"​]].
- 
----- 
  
 [[help:​objs|Вперёд:​ Предметы (инвентарь)]] [[help:​objs|Вперёд:​ Предметы (инвентарь)]]
  
help/goto.1672416025.txt.gz · Последние изменения: 2022/12/30 16:00 (внешнее изменение)