Перейти к содержанию

YourBunnyWrote

Администратор
  • Постов

    3 295
  • Зарегистрирован

  • Посещение

  • Победитель дней

    6

Весь контент YourBunnyWrote

  1. Ассасины - это фанатичные исламисты, наркоманы и убийцы (пруф.) С какого перепугу они стали защитниками Тамриэля?
  2. "Han", , у нас на форуме есть раздел Все о 2D, попробуйте спросить там. "onizuka077", , в редакторе высот File -> Generate LOD -> Full.
  3. Вы бы хоть сами постарались что-то написать, тут пару строк всего... ScriptName SomeScript Begin GameMode If GetItemCount Что_искать >= 2 RemoveItem Что_искать 2 AddItem На_что_заменять 1 EndIf End
  4. Не всё так просто. Activate выполняет дэфолтное действие объекта, т.е. открывает двери, в данном случае.
  5. Народ, не напрягайтесь. MessageBox и GetButtonPressed не будут работать в одном блоке - проверено электроникой В таком случае GetButtonPressed всегда возвращает -1. "Jasan", , оптимальный вариант, на мой нынешний взгляд, сделать так: ScriptName WCArchivSecretDoor01 short Button short Question short Answer short CorrectAnswers Begin OnActivate If Question == 0 MessageBox "Введите первое число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Question to Question + 1 Set Answer to 0 ; Здесь поставить номер правильного ответа -1 ElseIf Question == 1 MessageBox "Введите второе число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Question to Question + 1 Set Answer to 0 ; Здесь поставить номер правильного ответа -1 ElseIf Question == 2 MessageBox "Введите третье число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Question to Question + 1 Set Answer to 0 ; Здесь поставить номер правильного ответа -1 ElseIf Question == 3 MessageBox "Введите четвёртое число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Question to Question + 1 Set Answer to 0 ; Здесь поставить номер правильного ответа -1 ElseIf Question == 4 MessageBox "Введите пятое число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Question to Question + 1 Set Answer to 0 ; Здесь поставить номер правильного ответа -1 ElseIf Question == 5 MessageBox "Введите шестое число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Question to Question + 1 Set Answer to 0 ; Здесь поставить номер правильного ответа -1 ElseIf Question == 6 MessageBox "Введите седьмое число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Question to Question + 1 Set Answer to 0 ; Здесь поставить номер правильного ответа -1 ElseIf CorrectAnswers == Question ; Если количество вопросов совпадает с количеством правильных ответов Activate ; Активируем двери Else Cast WCArchivDoorTrap Player EndIf End Begin GameMode Set Button to GetButtonPressed If Button != -1 If Button == Answer Set CorrectAnswers to CorrectAnswers + 1 EndIf EndIf End Проверено, работает. Только нужно каждый раз использовать дверь...
  6. ScriptName Trololo Begin OnAdd Message "текст" End Появляться у кого? У игрока? Это противоречит законам физики Одними шейдерами тут не отделаться... Стандартный магический эффект "Урон холодом", по моему тебе подходит. Дополнительные скрипты не нужны.
  7. &quot;Jasan&quot;, , ещё раз перечитал твой первый пост. Ты же хочешь открыть ту же дверь, которая тебе задаёт вопросы, так? Тогда так: ScriptName WCArchivSecretDoor01 short Button short Question short Countmistakes Begin OnActivate If Countmistakes < 7 Set Question to 1 EndIf End Begin GameMode If Question == 0 Return ElseIf Question == 1 MessageBox "Введите первое число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Button to GetButtonPressed If Button == 3 ; Здесь поставить номер правильного ответа Set Question to 2 ; В случае правильного ответа переходим к следующему вопросу Set Countmistakes to countmistakes + 1 Else Set Question to 2 EndIf ElseIf Question == 2 MessageBox "Введите второе число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Button to GetButtonPressed If Button == 7 ; Здесь поставить номер правильного ответа Set Question to 3 ; В случае правильного ответа переходим к следующему вопросу Set Countmistakes to countmistakes + 1 Else Set Question to 3 EndIf ElseIf Question == 3 MessageBox "Введите третье число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Button to GetButtonPressed If Button == 5 ; Здесь поставить номер правильного ответа Set Question to 4 ; В случае правильного ответа переходим к следующему вопросу Set Countmistakes to countmistakes + 1 Else Set Question to 4 EndIf ElseIf Question == 4 MessageBox "Введите четвертое число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Button to GetButtonPressed If Button == 4 ; Здесь поставить номер правильного ответа Set Question to 5 ; В случае правильного ответа переходим к следующему вопросу Set Countmistakes to countmistakes + 1 Else Set Question to 5 EndIf ElseIf Question == 5 MessageBox "Введите пятое число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Button to GetButtonPressed If Button == 3 ; Здесь поставить номер правильного ответа Set Question to 6 ; В случае правильного ответа переходим к следующему вопросу Set Countmistakes to countmistakes + 1 Else Set Question to 6 EndIf ElseIf Question == 6 MessageBox "Введите шестое число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Button to GetButtonPressed If Button == 4 ; Здесь поставить номер правильного ответа Set Question to 4 ; В случае правильного ответа переходим к следующему вопросу Set Countmistakes to countmistakes + 1 Else Set Question to 7 EndIf ElseIf Question == 7 MessageBox "Введите седьмое число", "1", "2", "3", "4", "5", "6", "7", "8", "9" Set Button to GetButtonPressed If Button == 9 ; Здесь поставить номер правильного ответа set countmistakes to countmistakes + 1 If Countmistakes >= 7 Set Question to 0 Activate EndIf Else Cast WCArchivDoorTrap Player EndIf EndIf End
  8. Что-то на подобии Kvatch Aftermath / Кватч. Воздаяние З.Ы. Зачем создавать отдельную тему, разве поиска плагинов мало?
  9. ScriptName Ololo short Button short Question Begin OnActivate Set Question to 1 ; End Begin GameMode If Question == 0 Return ElseIf Question == 1 MessageBox "Вопрос №1", "Вариант ответа №1", "Вариант ответа №2" ; И так далее ... Set Button to GetButtonPressed If Button == 0 ; Здесь поставить номер правильного ответа Set Question to 2 ; В случае правильного ответа переходим к следующему вопросу Else Set Question to 0 ; Иначе перестаём задавать вопросы EndIf ElseIf Question == 2 MessageBox "Вопрос №2", "Вариант ответа №1", "Вариант ответа №2" ; И так далее ... Set Button to GetButtonPressed If Button == 0 ; Здесь поставить номер правильного ответа Set Question to 3 ; В случае правильного ответа переходим к следующему вопросу Else Set Question to 0 ; Иначе перестаём задавать вопросы EndIf ElseIf ; ... ; И так далее ElseIf Question == 7 MessageBox "Вопрос №7", "Вариант ответа №1", "Вариант ответа №2" ; И так далее ... Set Button to GetButtonPressed If Button == 0 ; Здесь поставить номер правильного ответа ; В случае правильного ответа активируем двери DoorRef.Activate ; Где DoorRef - ссылка на дверь Else Set Question to 0 ; Иначе перестаём задавать вопросы EndIf EndIf End
  10. &quot;seryj2&quot;, , вот список всех файлов которые должны быть чтобы всё работало, проверяй: \Oblivion\DevComponents.DotNetBar2.dll \Oblivion\GlobalInputMonitor.dll \Oblivion\lame.exe \Oblivion\obse_1_2_416.dll \Oblivion\obse_editor_1_2.dll \Oblivion\obse_loader.exe \Oblivion\obse_steam_loader.dll \Oblivion\Data\OBSE\Plugins\Construction Set Extender.dll \Oblivion\Data\OBSE\Plugins\ComponentDLLs\CSE\BatchEditor.dll \Oblivion\Data\OBSE\Plugins\ComponentDLLs\CSE\BSAViewer.dll \Oblivion\Data\OBSE\Plugins\ComponentDLLs\CSE\LipSyncPipeClient.dll \Oblivion\Data\OBSE\Plugins\ComponentDLLs\CSE\ScriptEditor.dll \Oblivion\Data\OBSE\Plugins\ComponentDLLs\CSE\ScriptEditor.Preprocessor.dll \Oblivion\Data\OBSE\Plugins\ComponentDLLs\CSE\StdPreprocDefs.txt \Oblivion\Data\OBSE\Plugins\ComponentDLLs\CSE\TagBrowser.dll \Oblivion\Data\OBSE\Plugins\ComponentDLLs\CSE\UseInfoList.dll
  11. Тогда можно сделать так, без всякого шаманства с клавишами: If MenuMode 1 == 1 CloseAllMenus EndIf
  12. Что именно активировать? А, дошло :) В смысле "Использовать", тогда код 5. А вообще вот вся таблица сканкодов, на всякий случай: 0: Forward 1: Back 2: Slide Left 3: Slide Right 4: Use 5: Activate 6: Block 7: Cast 8: Ready Item 9: Crouch/Sneak 10: Run 11: Always Run 12: Auto Move 13: Jump 14: Toggle POV 15: Menu Mode 16: Rest 17: Quick Menu 18: Quick1 19: Quick2 20: Quick3 21: Quick4 22: Quick5 23: Quick6 24: Quick7 25: Quick8 26: QuickSave 27: QuickLoad 28: Grab
  13. Без разницы, функция отключает клавишу которая назначена, будь то Tad, Enter или F10...
  14. Ничего не нужно удалять, у тебя в папке Oblivion должен быть и TESConstructionSet.exe и TESConstructionSetOld.exe
  15. Set as startup plugin - загружать выбранный плагин при запуске "Конструктора", если эта опция включена в настройках. Глядишь в главном меню Data -> CSE Prefences, в открытом окошке клацаешь по LoadPluginOnStartup и ставишь ему значение 1. Теперь при старте конструктора он автоматически загрузит плагин прописанный в поле StartupPluginName. Quick load plugin - работает только для плагинов, т.е. ESP. Выбираешь любой плагин, делаешь его активным, ставишь галочку напротив Quick load plugin и, о чудо, мастер-файлы для этого плагина не загружаются. Полезная штука, не нужно ждать пока "толстый" Oblivion.esm "залезет" в КС. В стандартном редакторе скриптов КС, после того как ты закончил работу со всеми скриптами, перед сохранением плагина, нужно было нажать кнопку "Перекомпилировать все скрипты" (красная дискетка), ибо просто сохраняя скрипт (серая дискетка) они не компилировались. В редакторе скриптов CSE, если ты сохранял скрипт кнопкой с такой пиктограммкой , он сразу же компилируются, и перекомпилировать потом все скрипты не нужно. Compile dependecies - для квестовых скриптов. Клацаешь, и то, что прописано в поле Result Script во вкладке Quest Stages будет перекомпилировано.
  16. Construction Set Extender <table border="0"><tr><td valign="top"> <div id="tit1">Введение</div> Это плагин для OBSE который, как понятно из названия, расширяет возможности стандартного редактора TESIV: ConstructionSet. Скажите, кто из вас не мечтал, чтобы это ужасное окно редактора скриптов само проставляло табуляцию? Кому из вас не мешали в работе постоянные окошки с предупреждениями от конструктора? А не приходилось ли вам сталкиваться с тем, чтобы конструктор закрывался от одного вашего небрежного действия и ваша полуторачасовая работа летела коту под хвост? Так или иначе вы не сможете не оценить вклад автора этого замечательного плагина: shadeMe, за что ему респект и уважуха большой поклон. <div id="tit2">Нововведения</div>   Теперь можно загружать мастер-файлы в "Конструктор" для редактирования Можно менять заголовочную информацию о мастер-файле: Улучшен инструмент «Поиск текста»: Дважды кликнув по выбранному результату поиска, откроется соответствующее окошко для его редактирования, или, если это ссылка на объект, то он загрузится в окне визуализатора. Теперь можно загружать плагины с отсутствующими мастер-файлами: Отныне все предупреждения не выскакиваю в диалоговых окнах, а тихо и мирно выводятся в консоль Быстрый выход из CS. Сохранения плагинов как мастер-файлов: Теперь плагин можно сохранить как ESM или как ESP, на выбор. Теперь диалоговое окно которое выскакивает при закрытии окна редактора скриптов с подтверждением о сохранении скрипта имеет кнопку "Отмена", что позволяет вернутся к редактированию скрипта, как, например, в Ворде. Улучшенная команда рекомпиляции скриптов: Теперь при вызове команды «Рекомпилировать все скрипты» они будут рекоплилированы только в активном плагине. Лог компиляции: Результаты рекомпиляции выводятся в консоль. Неизвестные записи и типы групп: Если при загрузке, в плагине, будут обнаружены неизвестные записи или типы групп, то это не вызовет ошибки и, как следствие, закрытие окна «Конструктора». Удвоен максимальный размер скомпилированного скрипта: Теперь размер байт-кода скомпилированного скрипта может быть равен 32KB. Ошибки компиляции: Теперь ошибки компиляции выводятся в соответствующую область окна редактора скриптов. Сохранение плагина при открытых окнах «Конструктора»: Теперь не обязательно закрывать все диалоговые окна перед сохранением плагина. BSA архивы больше не загружаются выборочно: Все BSA архивы в папке Data загружаются при старте «Конструктора».   <div id="tit3">Установка</div> Теперь вы можете скачать плагин с нашего сайта. Обратите внимание, что CSE и CS 10 Executable упакованы в один архив. Для установки плагина извлеките содержимое плпгина в папку Oblivion, затем откройте файлик ConstructionSet.ini, найдите в нём строку bAllowMultipleEditors и присвойте ей значение 1. </td><td valign="top"> <table border="1" style="border-collapse: collapse; border-color: black; font-family: monospace;"><tr style="background-color: silver;"><td style="text-align: center;">Содержание</td></tr> <tr><td><a href="#tit1">Введение</a> <a href="#tit2">Нововведения</a> <a href="#tit3">Установка</a> <a href="#tit4">Новый редактор скриптов</a> - <a href="#tit5">Панель инструментов редактора скриптов</a> -- <a href="#tit6">Выбор скрипта</a> -- <a href="#tit7">Меню настроек</a> -- <a href="#tit8">Назначение скрипта</a> - <a href="#tit9">Контекстное меню</a> <a href="#tit10">Препроцессор</a> - <a href="#tit11">Команды препроцессора</a> <a href="#tit12">Редактор заметок</a> <a href="#tit13">Редактор ссылок</a> <a href="#tit14">Информация о файле плагина</a> <a href="#tit15">Консоль</a> - <a href="#tit16">Консольные команды</a> <a href="#tit17">Осмотрщик BSA архивов</a> <a href="#tit18">Настройки CSE</a> </td></tr></table></td></tr></table> <div id="tit4">Новый редактор скриптов</div> <table border="0" style="vertical-align: top;"><tr><td valign="top">       "Он был написан с нуля и превосходит стандартный редактор во всех отношениях." shadeMe   Новый редактор полностью заменил старый и вплотную приблизился к редакторам кода в понимании современного человека, единственное, чего ему не хватает, на мой взгляд, так это подсветки синтаксиса, будем надеяться, что автор не забудет реализовать эту приятную мелочь в последующих версиях своего творения. <div id="tit5">Панель инструментов редактора скриптов</div>       - создать новую вкладку - создать новый скрипт. - открыть скрипт.   <div id="tit6">Выбор скрипта</div> Окошко для выбора загружаемого в редактор скрипта также стало более информативным, в перечне скриптов появилась колонка с типом скрипта, а также появился предпросмотр. Теперь можно загружать сразу несколько скриптов в редактор: к списку скриптов применимы уже привычные комбинации клавиш системы Windows - Shift и Control, внизу окошка, под перечнем скриптов, расположена текстовая строка которая служит для быстрого поиска по списку. - сохранить скрипт.   - сохранить, но не компилировать. - сохранить и скрипт и активный плагин. - загрузить предыдущий по списку скрипт. - загрузить следующий по списку скрипт. - перекомпилировать все скрипты в активном плагине. - перекомпилировать зависимые скрипты. - удалить скрипт. - сохранить скрипты во всех открытых вкладках. - вызвать меню настроек.     <div id="tit7">Меню настроек</div> Вкладка General:   Auto-Indent Script Lines ((рус.) "Авто сдвиг строк кода") - При включённой опции программа будет автоматически вставлять отступ (символ табуляции) после открытия и убирать его после закрытия следующих блоков: Begin - End If - ElseIf - EndIf While - Loop ForEach - Loop Show Editor As Child Window - если этот флажок установлен, то окно редактора скриптов будет открыто как дочерное окно главного окна CS. Вся разница заключается в том, что если этот пункт не отмечен, то открытое окно редактора скриптов будет занимать дополнительную вкладку в панели задач. Save Caret Position With Script - если этот флажок установлен, то программа будет сохранять положение курсора при переходе на новую строку таким же как оно было на начале предыдущей строки. Говоря простым языком, курсор не будет постоянно перепрыгивать на начало строки, как это было в стандартном редакторе. Close Editor With Last Tab ((рус.) "Закрыть редактор с последней вкладкой")- ну тут всё предельно ясно, когда мы закроем последнюю вкладку, то и окошко редактора закроется.     - показать или спрятать область окна редактора скриптов, куда выводятся сообщения и ошибки при компиляции скриптов. - показать или спрятать область окна редактора скриптов, куда выводятся результаты поиска и замены в тексте скрипта. - показать или спрятать область окна редактора скриптов со списком закладок. - экспортировать текущий скрипт в текстовый документ     - экспортировать все загруженные в редактор скрипты в текстовые документы (на один скрипт - один документ) - импортировать текст скрипта из текстового документа     - импортировать текст скриптов из нескольких текстовых документов (из одного документа - один скрипт, каждый будет открыт в новой вкладке) - показать или спрятать список переменых используемых в текущем скрипте. - выделяет следующие блоки отступами для читаемости кода:     Begin - End If - ElseIf - EndIf While - Loop ForEach - Loop - привязать скрипт к существующей или новой записи.     <div id="tit8">Назначение скрипта</div> В новом редакторе появилась возможность задавать скрипты существующим или новым записям в плагине, которые имеют поле "Скрипт". Для тог чтобы "прилепить" скрипт к существующей записи - просто выбираем её из разворачивающегося списка размещённого напротив переключателя Bind To Existing Form. Для того, чтобы создать новую форму - устанавливаем переключатель в позицию Bind To New Form, задаём тип, параметры и имя формы. Если вы всё сделали правильно, то будет создана новая форма с указанным именем указанного типа.       <div id="tit9">Контекстное меню</div>     Copy Paste Find Toogle Comment - закомментировать выделеные строки Toogle Bookmark - создать закладку на выбранной строке Add Message - команда позволяет написать сообщение самому себе, которое будет выведено... Где бы вы думали? Конечно же в области уведомлений, куда, например, выводит сообщения об ошибке программа при компиляции скриптов. Не знаю зачем shadeMe предусмотрел такую возможность, пожалуй он просто решил насадить лишнюю гайку на лишний болт. Copy To Edit Box - копирует текст в окошко расположенное в нижнем левом углу окна редактора скриптов. В разворачивающемся списке правее можно выбрать необходимое действие над этим фрагментом, как то искать, заменять и т.д. Look up on the Wiki Look up on the OBSE Doc Lookup on Google </td> <td>     Рис.1 Окно редактора скриптов       Рис.2 Диалоговое окно для выбора скрипта         Рис.3 Меню настроек редактора скриптов Рис.4 Меню настроек редактора скриптов Рис.5 Меню настроек редактора скриптов Рис.6 Меню настроек редактора скриптов Рис.7 Меню настроек редактора скриптов         Рис.8 Окно назначения скриптов         Рис.9 Диалоговое окно вызванное командой Toogle Bookmark         Рис.10 Диалоговое окно вызванное командой Add Message </td></tr></table> <div id="tit10">Препроцессор       "Как в лучших домах Ландона и Порижа." Остап Бендер Ещё одно новшество в CSE. Препроцессор обрабатывает данные перед компиляцией, позволяя "скармливать" последнему (этому самому, компилятору, которому) только определённую часть кода в определённых ситуациях. А зачем он нужен? Тяжело объяснить козе зачем ей баян, но согласитесь, если она баянистка, то и вопросы как-то сами отпадают. Правда?! Но давайте будем конкретнее и рассмотрим пример "на кошечках": Кто делал сам, или разбирал чужие плагины, не трусы, разумеется, тот не мог не встретить закомментированные сообщения с отладочной информацией. Допустим у вас плагин в котором не пять и не десять скриптов, в каждом из которых сотня - полторы строк, каждый из которых должен быть отлажен. Доводя до конечного пользователя вся эта информация должна быть скрыта или вычещена. И тут вы понимаете что вам нужно перелопатить добрую тыщу строк в поисках своих месседжбоксов... А можно ли это как-то... малой кровью? Ну разумеется! К чему же я тогда веду?! Но для начала ознакомимся с самим командами препроцессора: <div id="tit11">Команды препроцессора</div> Все команды препроцессора должны быть закомментированны, т.е. перед ними должна стоять точка с запятой (";"). Команды могут быть однострочными или многострочными, для отделения одних от других перед командой должен стоять символ "#" в случае, если это однострочная команда, или "@" - если многострочная.       DEFINE - определяет константу. Синтаксис: ;#DEFINE <ИМЯ_КОНСТАНТЫ> <значение_константы> Например следующая команда определяет константу с именем X и значением 3 ;#DEFINE X 3 Перед компиляцией скрипт будет пропущен через препроцессор, и всякий раз, как он встретит этот самый X, он заменит его на его значение, т.е. на 3. Например имеется следующий элементарный скрипт: ;#DEFINE X 3ScriptName PreprocessorTestingScriptshort YBegin GameModeSet Y to Y + XEnd Пропущенный через препроцессор он поступит на компиляцию уже в следующем виде: ScriptName PreprocessorTestingScriptshort YBegin GameModeSet Y to Y + 3End IMPORT - импортирует в то место, где стоит эта команда указанный скрипт, который находится в папке Oblivion\Data\Scripts\. Синтаксис: ;#IMPORT "<Название_файла>" <Название_файла> - это название текстового документа в папке Oblivion\Data\Scripts\ без расширения. Например в папке Oblivion\Data\Scripts\ лежит файлик с названием Part1.txt, пускай в нём написано: short afloat bref c А мы хотим засунуть его содержимое в наш скрипт. Пишем: ScriptName PreprocessorTestingScript;#INCLUDE "Part1"Begin GameModeSet a to 10Set b to .015Set c to GetSelfEnd Получаем: ScriptName PreprocessorTestingScriptshort afloat bref cBegin GameModeSet a to 10Set b to .015Set c to GetSelfEnd ENUM - определяет перечисление. Синтаксис: ;#ENUM <ИМЯ_ПЕРЕЧИСЛЕНИЯ> { <ПЕРВЫЙ_ЭЛЕМЕНТ_ПЕРЕЧИСЛЕНИЯ>=<значение> <ВТОРОЙ_ЭЛЕМЕНТ_ПЕРЕЧИСЛЕНИЯ>=<значение> ... <N-тый_ЭЛЕМЕНТ_ПЕРЕЧИСЛЕНИЯ>=<значение> } или ;@ENUM <ИМЯ_ПЕРЕЧИСЛЕНИЯ>;{; <ПЕРВЫЙ_ЭЛЕМЕНТ_ПЕРЕЧИСЛЕНИЯ>=<значение>; <ВТОРОЙ_ЭЛЕМЕНТ_ПЕРЕЧИСЛЕНИЯ>=<значение>; ...; <N-тый_ЭЛЕМЕНТ_ПЕРЕЧИСЛЕНИЯ>=<значение>;} В следствии того, что элементы перечисления могут принимать только численные значения, то вся польза от этой конструкции исходит на нет. По сути перечисление (ENUM), в том виде, в котором мы имеем его здесь, является более громоздкой и менее гибкой формой определения (DEFINE). Вполне возможно что автор просто не довёл её до ума, т.к. даже в официальной документации ей посвящено всего пару строк. Да, и ещё очень важное замечание: между именем элемента перечисления, знаком равенства и значением не может быть пробелов, т.к. это вызывает ошибку.   IF - условный оператор. Синтаксис: ;@IF (<условие>);{; <Последовательность_операторов>;} В условии можно применять логические операторы: [==] - Равно [!=] - Не равно [>] - Строго больше [<] - Строго меньше [>=] - Больше или равно [<=] - Меньше или равно [&&] - Логическое И [||] - Логическое ИЛИ В следующем примере показано, как избавится от отладочной информации о которой мы говорили в начале: ;#DEFINE _DEBUG_MODE 1ScriptName PreprocessorTestingScript; ...Begin GameMode; Многабукаф;@IF(_DEBUG_MODE==1);{; Message "Debug mode is ON";}End Таким образом просто присвоив константе _DEBUG_MODE значение 0 и перекомпилировав скрипт мы избавимся от ненужных частей кода. Легко и просто. <table border="0"><tr><td valign="top"> <div id="tit12">Редактор заметок</div> Редактор заметок позволяет сопровождать процесс разработки разнообразными комментариями, из которых можно ссылаться на записи плагина. Вы что-то делали, но были вынуждены это забросить на неопределённое время, потом вы об этом забыли... Теперь можно оставить себе напоминание. В левой области редактора заметок вызываем контекстное меню и выбираем пункт Add Tag и обзываем его как хотим. Для того чтобы прикрепить какой-то объект к записи в комментариях, нужно вызвать на нём контекстное меню в окне объектов и выбрать пункт Add To Active Tag. Чтобы вызвать редактор заметок, выберете пункт View -> Tag Browser в главном меню. <div id="tit13">Редактор ссылок</div> Редактор ссылок позволяет комбинировано управлять свойствами объектов помещённых в загруженную ячейку. Ничего принципиально нового тут нет, по этому особо на этом не останавливаемся. Чтобы вызвать редактор ссылок, выберете пункт World -> Batch Edit References в главном меню. <div id="tit14">Информация о файле плагина</div> Находится в Gameplay -> Use Info Listing. Тут можно более подробно ознакомится со всеми записями в плагине и проследить их связи. <div id="tit15">Консоль</div> Отныне программа выводит лог в консоль, благодаря этому элементу исчезли многочисленные навязчивые окна с предупреждением от "Конструктора". Также существует несколько консольных команд: <div id="tit16">Консольные команды</div>       LoadPlugin - загружает указанный плагин. Синтаксис: LoadPlugin string:<plugin_name.extension> bool:SetAsActive Где plugin_name.extension - название плагина, SetAsActive - Указывает, сделать ли загружаемый плагин активным. 1 - если ДА, 0 - если НЕТ. LoadForm - открывает соответствующее окно для редактирования указанной формы. Синтаксис: LoadForm string:<editorID> SavePlugin - сохраняет плагин. Команда без параметров. AutoSave - делает резервную копию плагина в каталог Data\Backup\. Команда без параметров. Exit - Выход из "Конструктора". Команда без параметров.   <div id="tit17">Осмотрщик BSA архивов</div> Решает массу проблем при работе с нераспакованными ресурсами, когда они находятся в архивах или вовсе отсутствуют. При выборе ресурсов выскакивает окошко (Рис.14), в котором мы можем выбрать:       Select Asset On Disk - если у нас ресурсы хранятся на диске в папке \Oblivion\Data\, то выбираем этот пункт. Всё как раньше. Select Asset In Archive - если ресурсы запакованы в BSA архив, то выбираем этот пункт. Вылезет окошко BSA Browser (Рис.15).   - Открыть архив. - Подняться на уровень вверх. - Изменить вид (Список/Плитка), как в проводнике Windows. Edit Asset Path - Прописать путь ручками       <div id="tit18">Настройки CSE</div> Панель настроек CSE (рис.15) находится в главном меню File -> CSE Preferences. Редактировать настройки CSE можно как с помощью этой панели, так и вручную через файл \Oblivion\Data\OBSE\Plugins\Construction Set Extender.ini. Далее привожу список параметров: <table width="100%" border="1" style="border-collapse: collapse; border-color: black; font-family: monospace; font-size: small; text-align: center;"><tr style="background-color: gray;"><td>Относится к</td><td>Имя</td><td>За что отвечает</td></tr><tr><td>Консоль</td><td>Top</td><td>Расстояние от верхнего края экрана</td></tr><tr><td>Консоль</td><td>Left</td><td>Расстояние от левого края экрана</td></tr><tr><td>Консоль</td><td>Right</td><td>Расстояние от правого края экрана</td></tr><tr><td>Консоль</td><td>Bottom</td><td>Расстояние от нижнего края экрана</td></tr><tr><td>Консоль</td><td>LogCSWarnings</td><td>Выводить ли лог ошибок "Конструктора" в консоль? 1 - ДА; 0 - НЕТ.</td></tr><tr><td>Консоль</td><td>LogAssertions</td><td>Выводить ли сообщений ошибок "Конструктора" в консоль? 1 - ДА; 0 - НЕТ.</td></tr><tr><td>Консоль</td><td>HideOnStartup</td><td>Прятать ли окно консоли при запуске? 1 - ДА; 0 - НЕТ.</td></tr><tr><td>Консоль</td><td>ConsoleUpdatePeriod</td><td>Время обновления консоли в миллисекундах.</td></tr><tr><td>CSE</td><td>LoadPluginOnStartup</td><td>Загружать ли плагин указанный в поле <b>StartupPluginName</b> при старте конструктора автоматически? 1 - ДА; 0 - НЕТ.</td></tr><tr><td>CSE</td><td>StartupPluginName</td><td>Название файла плагина, который будет загружен при старте конструктора, если установлен параметр <b>LoadPluginOnStartup</b></td></tr><tr><td>CSE</td><td>OpenScriptWindowOnStartup</td><td>Открывать ли окно редактора скриптов при старте конструктора автоматически? 1 - ДА; 0 - НЕТ.</td></tr> <tr><td>CSE</td><td>StartupScriptEditorID</td><td>Название скрипта, который будет открыт в о редакторе скриптов при старте "Конструктора". Трубует включённого параметра <b>OpenScriptWindowOnStartup</b></td></tr> <tr><td>CSE</td><td>ShowNumericEditorIDWarning</td><td> </td></tr> <tr><td>CSE</td><td>SetWorkspaseOnStartup</td><td>Выбрать рабочей директорию заданую параметром <b>DefaultWorkspasePath</b>? 1 - ДА; 0 - НЕТ.</td></tr><tr><td>CSE</td><td>DefaultWorkspasePath</td><td>Путь к рабочей директории.</td></tr><tr><td>Визуализатор</td><td>UpdatePeriod</td><td>Время обновления окна визуализатора в миллисекундах</td></tr><tr><td>Визуализатор</td><td>DisplaySelectionStats</td><td>Выводить информацию о выбранном объекте в окне визуализаторы? 1 - ДА; 0 - НЕТ.</td></tr><tr><td>Визуализатор</td><td>UpdateViewPortAsync</td><td>Разрешить обновление картинки в окне визуализатора, если оно не активно? 1 - ДА; 0 - НЕТ.</td></tr></table> </td><td valign="top">       Рис.11 Окно редактор заметок       Рис.12 Окно редактор ссылок         Рис.13 Окно информации о плагине         Рис.14         Рис.15 Окно BSA браузера         Рис.16 Окно консоли         Рис.17 Окно настроек CSE </td></tr></table>
  17. Ну так проблема и заключается в том, что ты генерируешь случайное число, оно может удовлетворять условию с первого раза, либо не удовлетворять ~50 раз (вероятность ~= 1/2), в твоём случае, отсюда и задержки. Так что если ты не знаешь сам для чего ты поставил последнее условие - рекомендую от него избавится. Добавить воду куда-либо не поднимая общий уровень оной можно только отрихтовав модель этого самого чего-либо
  18. Скорее всего там какая-то партака, покажи своё условие. Лучше оформить как заклинание. ScriptName MyScript short IWash Begin ScriptEffectStart If IWash == 1 Set IWash to 0 Return EndIf If Player.GetPos Z > 0 ; Если игрок выше уровня воды - скрипт не работает Return EndIf PlayGroup AnimGroupName 1 ; Где AnimGroupName - имя анимационной группы Set IWash to 1 End Begin ScriptEffectFinish Set IWash to 0 End Скрипт написан навскидку и не проверялся.
  19. IsSwimming - это стандартная функция скриптовог языка Обливиона. Возвращает 1 если указанный актёр плавает, или 0 - если нет. Синтаксис: [ActorID.]IsSwimming
  20. Анимация будет проиграна, как только заданное условие станет истинным. Вот условие которое соответствует тому, что игрок уселся: А это соответствует тому, что игрок плавает, думаю ты это имел ввиду:
×
×
  • Создать...