×
Меню
Индекс

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