Здесь показаны различия между двумя версиями данной страницы.
Следущая версия | Предыдущая версия | ||
help:limits [2017/09/06 19:48] aleks_versus создано |
help:limits [2024/10/14 13:20] (текущий) aleks_versus обновление 5.9.0 |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | =====Ограничения QSP===== | + | [[help:analyzer|Назад: Анализатор кода]] |
+ | |||
+ | ====== Ограничения QSP ====== | ||
+ | |||
+ | **Актуализировано для плеера версии 5.9.0** | ||
При написании игр на QSP необходимо учитывать следующие ограничения: | При написании игр на QSP необходимо учитывать следующие ограничения: | ||
- | * Максимальное число одновременно видимых действий на локации: 50 | + | * Максимальное число одновременно видимых действий на локации: 50 |
- | * Максимальное число подключаемых файлов QSP ([[help:modules|модулей]]): 100 | + | * Максимальное число подключаемых файлов QSP ([[help:modules|модулей]]): 100 |
- | * Максимальное число аргументов: 10 | + | * Максимальное число передаваемых функции аргументов: 20\\ |
- | * Максимальная вложенность выражений: 30 | + | Например, функции ''%%MAX%%'' можно передать 20 чисел: <sxh qsp> |
- | * Максимальное число операторов в выражении(на одном уровне вложенности): 100 | + | max(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) |
- | * Максимальное число пунктов всплывающего пользовательского меню: 100 | + | </sxh> Нужно помнить, что при работе с локациями, имя локации так же является аргументом, поэтому при использовании таких операторов и функций, как ''%%GOTO%%'', ''%%GOSUB%%'', ''%%FUNC%%'', на локацию можно передавать только девятнадцать аргументов.\\ |
- | * Максимальное число предметов в инвентаре: 1000 | + | При работе с оператором ''%%DYNAMIC%%'' одним из аргументов является код, передаваемый оператору, поэтому в код тоже можно передавать не больше 19 аргументов. То же касается и функции ''%%DYNEVAL%%''. |
- | * Максимальное число одновременно проигрываемых звуков: 500 | + | * Максимальная вложенность выражений (открытые скобки): 30 |
+ | * Максимальное число операций в выражении (на одном уровне вложенности): 100 | ||
+ | * Максимальное число пунктов всплывающего пользовательского меню: 100 | ||
+ | * Максимальное число предметов в инвентаре: 1000 | ||
+ | * Максимальное число одновременно проигрываемых звуков: 500 | ||
- | Длина строки теоретически ограничена только объемом доступной оперативной памяти, либо размером типа "int": 2 гигабайта текста. | + | Длина строки теоретически ограничена только объемом доступной оперативной памяти, либо размером типа "int": 2 гигабайта текста. |
- | Числовые переменные принимают значения от **-2147483647** до **2147483647**. | + | Как и в строках, предел объёмов данных для кортежа 2 Гигабайта или **2147483648** элементов. Величина кортежа не может превысить объём оперативной памяти. |
+ | |||
+ | Числовые переменные принимают значения от **-2147483647** до **2147483647**. Превышение предела уводит число к противоположному знаку. | ||
+ | |||
+ | <sxh qsp> | ||
+ | *pl (2147483647+22) | ||
+ | </sxh> | ||
Количество переменных ограничено 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** локаций. | ||
+ | |||
+ | ===== F.A.Q. по ограничениям ===== | ||
+ | |||
+ | * [[https://aleksversus.github.io/howdo_faq/docs/howdo/contents/restriction/inclib_numbers/|Видел в справке ограничение на 100 подключаемых файлов. Это что, я не смогу использовать более ста файлов картинок и музыки?]] | ||
+ | * [[https://aleksversus.github.io/howdo_faq/docs/howdo/contents/restriction/actions_numbers|Хочу разместить на локации около 100 действий. Это вообще возможно?]] | ||
+ | * [[https://aleksversus.github.io/howdo_faq/docs/howdo/contents/restriction/varnames|Генерирую переменные с помощью оператора dynamic, и вдруг выходит ошибка 123. Что это, и как с этим бороться?]] |