RU

Ограничения QSP

Nex Moderator 26.10.2011 07:38 17 comments 21773 views

Максимальное количество одновременно видимых действий на локации: 50
Максимальное количество подключаемых файлов: 100
Максимальное количество аргументов: 10
Максимальная вложенность выражений: 30
Максимальное количество операторов в выражении(на одном уровне вложенности): 100
Максимальное количество пунктов пользовательского меню: 100
Максимальное количество предметов в инвентаре: 1000
Максимальное количество одновременно проигрываемых звуков: 500

Длина строки теоретически ограничена только объемом доступной оперативной памяти, либо размером типа “int”: 2 гигабайта текста.

Числовые переменные принимают значения от -2147483647 до 2147483647.

Edited at 19.03.2014 04:42 (11 years ago)

О_о Мне бы хоть это заполнить…

Dirit:

О_о Мне бы хоть это заполнить…

Уже есть успешные примеры :)

А есть ли явные ограничения на число переменных, число элементов массива?

Количество переменных ограничено 12800, при этом не допускается более 50 переменных с одинаковым хэшем имени.
Количество элементов массива ограничено размерностью “int”, в зависимости от того, как собрана библиотека, 32768 или 2147483648 соответственно.

Aleks Versus Moderator 08.11.2011 14:24 (14 years ago)

Nex:

одинаковым хэшем имени

у переменных с именами rpp, prp и ppr одинаковый хэш?

Вот код библиотеки, который отвечает за переменные. http://svn2.assembla.com/svn/qsp/trunk/qsp/variables.c
В функции qspVarReference подсчитывается хэш по имени переменной. Хэшей всего 256.
Совпадение хэшей может быть только случайным, от того что в имени переменной меняется порядок букв, меняется и хэш.
Подробнее на пальцах я объяснить не смогу, вникай в код.

Aleks Versus Moderator 08.11.2011 20:34 (14 years ago)

Ох ты ж ёлки палки.
Ладно. Без кода. Сложно разбираться, похоже на ООП, а у меня в нём довольно таки поверхностные знания. 12800 значений переменных. 256 значений хэша. 50 переменных с одинаковым хэшем * 256 значений = 12800 переменных. Ок.
Если в процессе игры переменная вводится, потом удаляется с помощью killvar, её хэш будет считаться среди этих 50?

Aleks Versus,
не будет.

А запишите всё это в хелпник плиз.

Я уже добавил ссылку на эту тему в “FAQ для разработчиков”. В справку добавить конечно хорошо бы, но кто бы этим занялся? У меня времени на это нет.
Справку, кстати, давно уже надо целиком переписать. Как минимум переделать структурно.

А есть ли ограничения на количество локаций в игре?

Mr.Crazzyr,
насколько я могу судить, количество локаций ограничено размером типа “int”. В зависимости от того, как собрана библиотека, “int” будет ограничивать либо 32768, либо 2147483648 локаций. Тут уж скорее оперативная память закончится, чем будет превышен лимит.

Aleks Versus:

50 переменных с одинаковым хэшем * 256 значений = 12800 переменных.

:(
Как это понимать? Это ваобще верно? Переменная может быть строковой, числовой и массивом, но как к этому применяется 50 хешей и 256 их значений?

Baz,
не заморачивайся на хэши, просто считай что количество переменных ограничено числом 12800.

А я как раз уже и понял что к чему.
Хеши видимо как то “самоорганизуются”, раз так аккуратно укладываются в это число.

Log in or Register to post comments.