Здесь показаны различия между двумя версиями данной страницы.
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|Вперёд: Предметы (инвентарь)]] | ||