• Добро пожаловать, Гость. Войдите или зарегистрируйтесь.

Автор Тема: Oblivion Script Studio  (Прочитано 4460 раз)

Описание:

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MymIgor

  • *
  • Сообщений: 4
  • Репутация: 0
    • Просмотр профиля
Oblivion Script Studio
« : 23 Январь, 2007, 14:37:26 »
0
Oblivion Script Studio
Многооконный редактор скриптов для Oblivion



Брать пока здесь http://user.rol.ru/~passer/oss.rar (386 кб)

Возможности:

- многооконный редактор скриптов с настраиваемой синтаксической подсветкой
- проверка синтаксиса скрипта непосредственно при наборе
- технология handSense® (см. ниже)
- структура скрипта (все блоки begin) с быстрым переходом между ними
- вывод подсказки с кратким описанием комманд и функций при перемещении мыши над кодом
- форматирование отступами кода скрипта (пока по команде из меню)
- просмотр скриптов прямо из модов

Требования:

Net 2.0.

Остальное:

handSense - выпадающий список с вариантами продолжения кода (пока там все сразу: функции, типы блоков и переменные).
Появляется автоматически после пробела или точки. Ручной вызов ctrl+пробел.

Подсказка выводится не для всех функции. Описание функций взято их ScriptMaster'а с разрешения группы товарищей OSFM.

Проверка синтаксиса вроде работает, постарался учесть все известные мне правила.
НЕ ПРОВЕРЯЮТСЯ типы и количество переменных, передаваемых функции. Сделать планируется, но нужно описание всех функций. Его пока нету.

Также появляются ошибки, связанные с многочисленными синонимами функций. Такие ошибки проявляются в следующих ситуациях: 1) ref.ФУНКЦИЯ, 2) ФУНКЦИЯ в начале строки. Для устранения ошибки добавьте имя функции в конец файла Data/Functions.list. И желательно сообщить мне.

НЕ ГАРАНТИРУЕТСЯ работоспособность скрипта в обратной ситуации, т.е. скрипт, верный с точки зрения моей программы, вполне может не заработать в TES. Такой скрипт мне хотелось бы увидеть для исправления моего синтаксического анализатора. Хотя бы пару-тройку строк выше-ниже строки с ошибкой, если считаете свой скрипт коммерческой тайной.

Все пожелания сюда: OblivionSS@mail.ru.

0.1 beta 2
добавлена функциональность: просмотр скриптов прямо из модов
изменен стиль подсказки по коду
окно handSense стало появляться автоматически
добавлены новые сининомы функций в functions.list
правлены ошибки по редактору и по синтаксическому анализатору

0.1 beta 1
начальная версия

Оффлайн Garin

  • *
  • Сообщений: 1564
  • Репутация: 5
  • Пол: Мужской
    • ICQ клиент - 244260055
    • Просмотр профиля
    • tiarum.com
Oblivion Script Studio
« Ответ #1 : 23 Январь, 2007, 15:20:30 »
0
Цитировать (выделенное)
0.1 beta 2
добавлена функциональность: просмотр скриптов прямо из модов
изменен стиль подсказки по коду
окно handSense стало появляться автоматически
добавлены новые сининомы функций в functions.list
иправлены ошибки по редактору и по синтаксическому анализатору

1) Не совсем понятно выражение:
"просмотр скриптов прямо из модов"
Подробнее, пожалуйста.

2) Я считаю, что чем больше хороших программ, тем лучше.
Какая помощь нужна?

3) Каким ты видишь "идеальный" редактор скриптов?

3) И насколько твоя версия приблизится к идеалу?
Т.е., какая главная концепция программы?
Во что она превратится в конечном релизе?
Награды За огромный вклад в развитие Румора

Оффлайн MymIgor

  • *
  • Сообщений: 4
  • Репутация: 0
    • Просмотр профиля
Oblivion Script Studio
« Ответ #2 : 23 Январь, 2007, 15:22:11 »
0
Garin писал (правда не здесь :)):
Цитировать (выделенное)
> Oblivion Script Studio я скачал. Пока что не вижу в ней ничего особенного.
> Читай на этом форуме тему с обсуждением ScriptMaster, может, найдешь там полезные для себя идеи.
Читал до того, как начал писать свой редактор.
В общем-то при написании редактора я ориентировался на возможности ScriptMaster'а, пытаясь добавить к нему синтаксический анализатор.
Прочитал тему второй раз. В этот раз очень внимательно.

Что просили у Суфира и есть у меня.
1) синтаксическая проверка текста. Неточная цитата из темы "хотя бы основные синтаксические конструкции". У меня работает не всегда корректно, но begin - end - if - .. - endif  - set - to отслеживает без проблем.
2) хелп по функциям при движении мыши по коду. Есть.

Нашел пару-тройку мыслей, которые не реализованы у меня.

1. Вставка конструкций с отступами.
В принципе планируется, но пока не сделал. Garin, если не стер архив с редактором, то посмотри файл Constructions.list в папке Data. Там те конструкции, которые будут добавлены в окно handSense. Что между "|", то будет выделено после вставки. Символ "/" - перевод строки. Может что-то еще добавить?

2. Форматирование кода.
У меня можно отформатировать весь код. Пока только отступами. Есть мысль сделать форматирование в процессе набора кода. Например, после end отформатировать все вверх до begin. Также при endif.

3. При вставке в текст конструкций/функций, проводить анализ, что можно в текущую позицию ставить, что нельзя.
Тоже планируется. Но с использованием того варианта синтаксического анализатора, что работает сейчас, этот анализ сделать невозможно. Но анализатор я все равно буду переделывать, т.к. я ориентировался на то, что у разработчиков скриптового языка oblivion'а был здравый смысл при его разработке. А оказывается, зря я так думал. Garin, посмотри вопросы ниже.

Теперь далее.
Про разные типы скриптов. Цитата из темы про ScriptMaster "Но есть еще скрипты в поле "Result" диалогов. Есть еще и квестовые. Есть магические". Как и Суфир, не знаю точно различий. Из wiki понял, что существует 2 типа скриптов: в одном есть scriptname, можно секции begin. В другом нельзя, но обязательно для функций указывать объект, к которому приложена функция (например, player.ФУНКЦИЯ). Вот и все, на что хватило моего английского.

Также на мой взгляд неточность в теме по ScriptMaster'у. Опять цитата. "Заметьте, что " || " рассматривается раньше " && ", также как " * " рассматривается раньше " + " в обычной алгебре." Насколько я понимаю "||" это "ИЛИ OR", т.е. логическое сложение, а "&&" это "И AND", т.е. умножение. И соответственно, "&&" вычисляется раньше, чем "||".

Теперь вопросы и необходимость подтверждения некоторых предположений.

1. ПРЕДПОЛОЖЕНИЕ. Имя скрипта и переменных.
Может начинаться с цифры? В oblivion.esm таких скриптов нету, а вот в 000 1.3 есть.
Да и TES допускает создать такой скрипт с такими переменными.
Однако если или имя скрипта, или имя переменной начинается с цифры, то не дает в дальнейшем обратиться к переменнй из других скриптов.
Хотя в пределах скрипта TES все в норме.

Например, такой скрипт не дает ошибок
scn 6gh
short 7hg
begin onadd
set 7hg to 0
end

2. ПРЕДПОЛОЖЕНИЕ. Имя переменной может совпадать с именем функции или командой. Только подтвердить. Видел раз 20 в разных скриптах.

3. ПРЕДПОЛОЖЕНИЕ. Каждому if по endif. elseif не требует endif. Лишние endif игнорируются.

4. ВОПРОС. Многочисленные синонимы функций. Где-нибудь есть собранная таблица таких синонимов?
Из того, что попалось мне GetBaseAV SetAV ModAV Evp pms SCAOnactor forceav pme pcb saa sms. Если оканчивающиеся на AV понятны, то вот остальные. В вашем учебнике они собраны в кучу?

5. ПРЕДПОЛОЖЕНИЕ. Текст после end и else и endif игнорируются. В теме про ScriptMaster сказано, что игнорируется только для else.

6. ВОПРОС. Что происходит при повторном объявлении секции begin того же типа? В MS10UlrichScript вообще 4 раза. Выполняется первый/последний/все?

7. ВОПРОС. Повторные объявления переменных допускаются. Это я понял. Но если повторно объявлена другого типа, то какая она будет: по первому объявлению, или по последнему?

8. ПРЕДПОЛОЖЕНИЕ. Имя функции не сразу после ссылки. В скрипте MS09ArnorasChestScript строка if ( IsActionRef Player == 1 ) && ( GetLocked == 1 ) && ( Player. GetItemCount ArnoraChestKey == 1 ) С пробелом между Player. и GetItemCount.

В ближайшее время планируется переделывать синтаксический анализатор, чтоб учесть все эти ненормальности.
А также составлять список пожеланий.

Оффлайн MymIgor

  • *
  • Сообщений: 4
  • Репутация: 0
    • Просмотр профиля
Oblivion Script Studio
« Ответ #3 : 23 Январь, 2007, 15:41:57 »
0
Цитировать (выделенное)
1) Не совсем понятно выражение:
"просмотр скриптов прямо из модов"
Подробнее, пожалуйста.
Файл -> Открыть мод. Выбираем oblivion.esm. Ждем секунд 20 и видим окно со списком скриптов. Вибираем скрипт и видим его с подсветкой и подсказками по коду (по желанию). Сюда же в перспективе предполагаю добавить фильтрование по именам функций. Набираешь имя функции и видишь те скрипты, где применяется эта функция. Тоже помощь программисту, если он не знаком с функцией.

Цитировать (выделенное)
2) Я считаю, что чем больше хороших программ, тем лучше.
Какая помощь нужна?
3) Каким ты видишь "идеальный" редактор скриптов?
3) И насколько твоя версия приблизится к идеалу?
Т.е., какая главная концепция программы?
Во что она превратится в конечном релизе?
[snapback]9641[/snapback]
Пока я писал вопросы, ты уже ответил на предыдущее сообщение. А в качестве идеала я вижу каждый раз Microsoft Visual Studio 2005. Но идеал недостижим. В качестве ближайшей цели - доделать анализатор скрипта, чтобы он не выдавал ошибки на существующих скриптах. + проверка параметров функций в этом анализаторе. Правда нужно хелп по функциям и типам их параметров. Но насколько я понял, он на подходе.
А потом добавить ту функциональность, что в моем втором сообщении в этой теме.
1. Вставка конструкций с отступами.
2. Форматирование кода.
3. При вставке в текст конструкций/функций, проводить анализ, что можно в текущую позицию ставить, что нельзя.
4. Ну и по мелочи поиск/замену прикрутить.

А какая главная концепция у редактора.
Как и всех редакторов. Сделать простым и удобным освоение языка.
Я например на С# пишу первую такую крупную программу и особых проблем из-за перехода с Delphi не испытываю. Все благодаря редактору.

На сегодня все. Я домой.

Оффлайн Garin

  • *
  • Сообщений: 1564
  • Репутация: 5
  • Пол: Мужской
    • ICQ клиент - 244260055
    • Просмотр профиля
    • tiarum.com
Oblivion Script Studio
« Ответ #4 : 24 Январь, 2007, 04:44:14 »
0
Отлично. Коли так, то синтаксический анализатор поможет лучше разобраться с нюансами написания скриптов и синтаксиса. Думаю, что это пойдет на пользу и учебнику, и программе...
Награды За огромный вклад в развитие Румора

Оффлайн MymIgor

  • *
  • Сообщений: 4
  • Репутация: 0
    • Просмотр профиля
Oblivion Script Studio
« Ответ #5 : 24 Январь, 2007, 16:42:03 »
0
Так, по первому своему вопросу кажется разобрался сам.
Проблема была в недостаточном понимании ангельского языка.
К переменным в другом скрипте можно обратиться только если этот скрипт связан с каким-то объектом. Следующим образом "имя объекта.имя переменной". И имена переменных можно с цифры начинать без проблем.
Надеюсь в учебнике это прописано.

И еще надо бы описать наличие OnPackageEnd. На wiki всего в одном месте упоминается при описании OnPackageDone, но очень часто используется в скриптах.

Жду ответов/потверждений по другим вопросам.

Теги:
 

Oblivion Tes 4 Construction Set.

Автор GarinРаздел Мастерская TES IV

Ответов: 115
Просмотров: 43634
Последний ответ 08 Декабрь, 2012, 08:01:59
от Svinec
Tes 4 Oblivion

Автор WizarDРаздел Архив TES IV: Oblivion

Ответов: 111
Просмотров: 49587
Последний ответ 25 Январь, 2008, 20:14:38
от LiLu
Чего мы ждем от Tes4 Oblivion?

Автор GaiDРаздел Архив TES IV: Oblivion

Ответов: 68
Просмотров: 29119
Последний ответ 20 Март, 2006, 08:05:17
от dreemer
Учебники и туториалы для Tes 4: Oblivion

Автор GarinРаздел Туториалы по TES 4 Oblivion

Ответов: 4
Просмотров: 10718
Последний ответ 13 Май, 2009, 19:02:56
от Garin
The Elder Scrolls 4: Oblivion: Прохождение игры

Автор TiaraРаздел TES IV: Oblivion, Shivering Isles, Knights of the Nine

Ответов: 3
Просмотров: 14813
Последний ответ 17 Май, 2006, 06:58:00
от Tiara
TES 4: Oblivion. Скрипты - Анимация и Al

Автор GarinРаздел Туториалы по анимации

Ответов: 1
Просмотров: 10313
Последний ответ 21 Май, 2006, 02:47:59
от Garin
Программы и утилиты для TES 4 Oblivion

Автор GarinРаздел Программы и утилиты для TES IV

Ответов: 38
Просмотров: 45524
Последний ответ 12 Ноябрь, 2011, 13:45:56
от Garin
Life Forms Studio 4.0.0.8

Автор TyRunРаздел Программы для анимации

Ответов: 4
Просмотров: 6794
Последний ответ 16 Октябрь, 2007, 12:09:55
от Keter Sephiroth
Озвучивание плагинов в Tes 4 Oblivion

Автор GarinРаздел Мастерская TES IV

Ответов: 13
Просмотров: 9773
Последний ответ 14 Ноябрь, 2007, 01:13:04
от Garin
Вопросы о Программах и Утилитах для Tes 4 Oblivion.

Автор GarinРаздел Программы и утилиты для TES IV

Ответов: 62
Просмотров: 15268
Последний ответ 26 Октябрь, 2013, 12:29:16
от Luna

Поиск

 
Top
SimplePortal 2.3.5 © 2008-2012, SimplePortal