[[help:analyzer|Назад: Анализатор кода]] ====== Ограничения QSP ====== **Актуализировано для плеера версии 5.9.0** При написании игр на QSP необходимо учитывать следующие ограничения: * Максимальное число одновременно видимых действий на локации: 50 * Максимальное число подключаемых файлов QSP ([[help:modules|модулей]]): 100 * Максимальное число передаваемых функции аргументов: 20\\ Например, функции ''%%MAX%%'' можно передать 20 чисел: max(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) Нужно помнить, что при работе с локациями, имя локации так же является аргументом, поэтому при использовании таких операторов и функций, как ''%%GOTO%%'', ''%%GOSUB%%'', ''%%FUNC%%'', на локацию можно передавать только девятнадцать аргументов.\\ При работе с оператором ''%%DYNAMIC%%'' одним из аргументов является код, передаваемый оператору, поэтому в код тоже можно передавать не больше 19 аргументов. То же касается и функции ''%%DYNEVAL%%''. * Максимальная вложенность выражений (открытые скобки): 30 * Максимальное число операций в выражении (на одном уровне вложенности): 100 * Максимальное число пунктов всплывающего пользовательского меню: 100 * Максимальное число предметов в инвентаре: 1000 * Максимальное число одновременно проигрываемых звуков: 500 Длина строки теоретически ограничена только объемом доступной оперативной памяти, либо размером типа "int": 2 гигабайта текста. Как и в строках, предел объёмов данных для кортежа 2 Гигабайта или **2147483648** элементов. Величина кортежа не может превысить объём оперативной памяти. Числовые переменные принимают значения от **-2147483647** до **2147483647**. Превышение предела уводит число к противоположному знаку. *pl (2147483647+22) Количество переменных ограничено 12800, при этом не допускается более 50 переменных с одинаковым [[http://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%D1%81%D1%83%D0%BC%D0%BC%D0%B0|хэшем]] имени. Количество элементов массива ограничено размерностью "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. Что это, и как с этим бороться?]]