Ограничения QSP
Максимальное количество одновременно видимых действий на локации: 50
Максимальное количество подключаемых файлов: 100
Максимальное количество аргументов: 10
Максимальная вложенность выражений: 30
Максимальное количество операторов в выражении(на одном уровне вложенности): 100
Максимальное количество пунктов пользовательского меню: 100
Максимальное количество предметов в инвентаре: 1000
Максимальное количество одновременно проигрываемых звуков: 500
Длина строки теоретически ограничена только объемом доступной оперативной памяти, либо размером типа “int”: 2 гигабайта текста.
Числовые переменные принимают значения от -2147483647 до 2147483647.
О_о Мне бы хоть это заполнить…
Dirit:
О_о Мне бы хоть это заполнить…
Уже есть успешные примеры :)
А есть ли явные ограничения на число переменных, число элементов массива?
Количество переменных ограничено 12800, при этом не допускается более 50 переменных с одинаковым хэшем имени.
Количество элементов массива ограничено размерностью “int”, в зависимости от того, как собрана библиотека, 32768 или 2147483648 соответственно.
Nex:
одинаковым хэшем имени
у переменных с именами rpp, prp и ppr одинаковый хэш?
Вот код библиотеки, который отвечает за переменные. http://svn2.assembla.com/svn/qsp/trunk/qsp/variables.c
В функции qspVarReference подсчитывается хэш по имени переменной. Хэшей всего 256.
Совпадение хэшей может быть только случайным, от того что в имени переменной меняется порядок букв, меняется и хэш.
Подробнее на пальцах я объяснить не смогу, вникай в код.
Ох ты ж ёлки палки.
Ладно. Без кода. Сложно разбираться, похоже на ООП, а у меня в нём довольно таки поверхностные знания. 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.
А я как раз уже и понял что к чему.
Хеши видимо как то “самоорганизуются”, раз так аккуратно укладываются в это число.