Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия | |||
help:limits [2023/01/03 15:19] aleks_versus |
help:limits [2024/10/14 13:20] (текущий) aleks_versus обновление 5.9.0 |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
====== Ограничения QSP ====== | ====== Ограничения QSP ====== | ||
- | + | **Актуализировано для плеера версии 5.9.0** | |
- | **Актуализировано для плеера версии 5.8.0** | + | |
При написании игр на QSP необходимо учитывать следующие ограничения: | При написании игр на QSP необходимо учитывать следующие ограничения: | ||
- | * Максимальное число одновременно видимых действий на локации: 50 | + | * Максимальное число одновременно видимых действий на локации: 50 |
- | * Максимальное число подключаемых файлов QSP ([[help:modules|модулей]]): 100 | + | * Максимальное число подключаемых файлов QSP ([[help:modules|модулей]]): 100 |
- | * Максимальное число передаваемых функции аргументов: 20\\ Например, функции ''**MAX**'' можно передать 20 чисел:<sxh qsp> | + | * Максимальное число передаваемых функции аргументов: 20\\ |
- | max(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) | + | Например, функции ''%%MAX%%'' можно передать 20 чисел: <sxh qsp> |
- | </sxh> Нужно помнить, что при работе с локациями, имя локации так же является аргументом, поэтому при использовании таких операторов и функций, как ''**GOTO**'', ''**GOSUB**'', ''**FUNC**'', на локацию можно передавать только девятнадцать аргументов.\\ При работе с оператором ''**DYNAMIC**'' одним из аргументов является код, передаваемый оператору, поэтому в код тоже можно передавать не больше 19 аргументов. То же касается и функции ''**DYNEVAL**''. | + | max(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) |
- | * Максимальная вложенность выражений: 30 | + | </sxh> Нужно помнить, что при работе с локациями, имя локации так же является аргументом, поэтому при использовании таких операторов и функций, как ''%%GOTO%%'', ''%%GOSUB%%'', ''%%FUNC%%'', на локацию можно передавать только девятнадцать аргументов.\\ |
- | * Максимальное число операторов в выражении (на одном уровне вложенности): 100 | + | При работе с оператором ''%%DYNAMIC%%'' одним из аргументов является код, передаваемый оператору, поэтому в код тоже можно передавать не больше 19 аргументов. То же касается и функции ''%%DYNEVAL%%''. |
- | * Максимальное число пунктов всплывающего пользовательского меню: 100 | + | * Максимальная вложенность выражений (открытые скобки): 30 |
- | * Максимальное число предметов в инвентаре: 1000 | + | * Максимальное число операций в выражении (на одном уровне вложенности): 100 |
- | * Максимальное число одновременно проигрываемых звуков: 500 | + | * Максимальное число пунктов всплывающего пользовательского меню: 100 |
+ | * Максимальное число предметов в инвентаре: 1000 | ||
+ | * Максимальное число одновременно проигрываемых звуков: 500 | ||
+ | |||
+ | Длина строки теоретически ограничена только объемом доступной оперативной памяти, либо размером типа "int": 2 гигабайта текста. | ||
- | Длина строки теоретически ограничена только объемом доступной оперативной памяти, либо размером типа "int": 2 гигабайта текста. | + | Как и в строках, предел объёмов данных для кортежа 2 Гигабайта или **2147483648** элементов. Величина кортежа не может превысить объём оперативной памяти. |
Числовые переменные принимают значения от **-2147483647** до **2147483647**. Превышение предела уводит число к противоположному знаку. | Числовые переменные принимают значения от **-2147483647** до **2147483647**. Превышение предела уводит число к противоположному знаку. | ||
Строка 29: | Строка 32: | ||
Количество переменных ограничено 12800, при этом не допускается более 50 переменных с одинаковым [[https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%D1%81%D1%83%D0%BC%D0%BC%D0%B0|хэшем]] имени. | Количество переменных ограничено 12800, при этом не допускается более 50 переменных с одинаковым [[https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%D1%81%D1%83%D0%BC%D0%BC%D0%B0|хэшем]] имени. | ||
- | Количество элементов массива ограничено размерностью "int", в зависимости от того, как собрана библиотека, 32768 или **2147483648** соответственно. | + | Количество элементов массива ограничено размерностью "int", в зависимости от того, как собрана библиотека, 32768 или **2147483648** соответственно (то есть максимальный возможный номер ячейки массива ''%%2147483647%%''.). |
Количество локаций ограничено размером типа "int". В зависимости от того, как собрана библиотека, "int" будет ограничивать либо 32768, либо **2147483648** локаций. | Количество локаций ограничено размером типа "int". В зависимости от того, как собрана библиотека, "int" будет ограничивать либо 32768, либо **2147483648** локаций. | ||
Строка 35: | Строка 38: | ||
===== F.A.Q. по ограничениям ===== | ===== F.A.Q. по ограничениям ===== | ||
- | * [[https://aleksversus.github.io/howdo_faq/pages/podkljuchaemye_fajly_0170.html#faq_23_01|Видел в справке ограничение на 100 подключаемых файлов. Это что, я не смогу использовать более ста файлов картинок и музыки?]] | + | * [[https://aleksversus.github.io/howdo_faq/docs/howdo/contents/restriction/inclib_numbers/|Видел в справке ограничение на 100 подключаемых файлов. Это что, я не смогу использовать более ста файлов картинок и музыки?]] |
- | * [[https://aleksversus.github.io/howdo_faq/pages/vyvodimye_dejstvija_0171.html|Хочу разместить на локации около 100 действий. Это вообще возможно?]] | + | * [[https://aleksversus.github.io/howdo_faq/docs/howdo/contents/restriction/actions_numbers|Хочу разместить на локации около 100 действий. Это вообще возможно?]] |
- | * [[https://aleksversus.github.io/howdo_faq/pages/imena_peremennyh_0172.html|Генерирую переменные с помощью оператора dynamic, и вдруг выходит ошибка 123. Что это, и как с этим бороться?]] | + | * [[https://aleksversus.github.io/howdo_faq/docs/howdo/contents/restriction/varnames|Генерирую переменные с помощью оператора dynamic, и вдруг выходит ошибка 123. Что это, и как с этим бороться?]] |