MSFD Ограничения редактора скриптов
Символьное ограничение: Есть предел количества символов в скрипте.
Это где-то около 30000 символов
(настоящий предел, скорее всего, равен 32767, который является максимумом для 16-битного целого числа, с помощью которого длина скрипта хранится в .esp файле – спасибо Horatio за эту информацию).
(поправочка, 65535 придел для 16бит - т.е. либо тут ошибка, либо скрипты принимают 8-битное число)
Если это количество достигается, то вы больше не сможете печатать в окне редактора.
Для сохранения свободного места можно попробовать следующее:
-
-
Использовать более короткие имена переменных
-
Посмотреть, можно ли разделить скрипт на части, вынести какую либо его часть в глобальный скрипт или повесить на разные объекты, как разные скрипты.
Строковое ограничение: Стоит отметить также лимит строк.
Похоже, максимальное количество строк варьируется от 900 до 1500 строк кода, возможно, это лимит скомпилированных строк, а не всех строк, так что пустые строки и комментарии не в счет. Это выдаст ошибку во время сохранения скрипта.
(скорее 1024)
Ограничение на If-elseif: Есть предел на максимальное количество конструкций if-elseif , которые могут быть использованы в скрипте.
Я не уверен в точном значении (я слышал и 127, и 256).
Также есть максимальная “глубина” вложенных if команд, это примерно 10 (спасибо Riiak) и максимальное количество линий скрипта внутри блока if - endif.
Максимум 9-10 кнопок на один скрипт.
Больше будет сообщать ошибку.
Т.е. не более 10 кнопок в одном скрипте.
Если не уместились в 10 кнопок, создайте последовательный скрипт.
Begin AAA011_INFO1
; инфо о свершениях Неревара.
;*****************************************************************
Short Doonce
;*****************************************************************
If ( doonce == 44 )
if ( OnActivate == 1 )
;MessageBox "РЕСЕТ!"
Set Doonce to 0
return
endif
endif
;*************************************************
If ( doonce == 43 )
if ( OnActivate == 1 )
MessageBox "Которым мы, уже многие века, можем благодарно наслаждаться, лишь с трепетом вспоминая те Ужасающие Времена - от которых были избавлены Тем, кто изображен в этом Знаменитом, по всей вселенной, Обелиске. Ощутительно Прикасаясь к живым древностям и памяти тех мест собранных воедино в этом Загадочном Месте, пребывающим вне времени и вне всех известных Пространств и Планов Бытия!" "К началу!"
Set Doonce to 44
return
endif
endif
[.........]
[.........]
[.........]
If ( doonce == 1 )
if ( OnActivate == 1 )
MessageBox "Неревар Восседающий. Статуя изображает Неревара Господствующего, восседающего на троне составленного из различных архитектур Морровинда, в окружении артефактов принадлежавших местным божествам и, как бы попирающего их статуи Своим Величием." "Продолжить."
Set Doonce to 2
return
endif
endif
If ( doonce == 0 )
if ( OnActivate == 1 )
MessageBox "Неревар Восседающий. Неревар Владеющий. Неревар Совершенный. Воспоминание первых подвигов и Достигнутого Величия. Яшма, мрамор, граниты, базальт, эбонит, стекло, золото, драгоценные камни. Автор не известен. Изображает все стороны Его Личности. Тернистый и кровавый путь, Могущество и Славные Победы, наиболее знаменитые трофеи и артефакты." "Готово."
Set Doonce to 1
return
endif
endif
End