![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Level 4 ![]() ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Орк NWN: Скриптинг [PW] ![]() |
Я занимаюсь разработкой плагина для NWNX. Суть плагина состоит в том что в него встроен интерпретатор Python, что позволяет исполнять питоновские скрипты из нвн-скриптов. Предусмотрены следующие возможности:
0) выполнение строки, содержащей одну или несолько инструкций на языке Python. Передача параметров отсутствует. Результата не возвращает. 1) выполнение файла. Почти то же что и предыдущее, за исключением того, что питоновский код считывается из файла. Передача параметров отсутствует. Результата не возвращает. 2) вызов функции, содержащейся в каком либо модуле. Это полноценный вызов функции со всеми вытекающими. Функция получает параметры из нвн-скрипта и возвращает результат. Это уже кое что поинтереснее, чем предыдущие, однако недостаток налицо - посредством функции возможно выполнение какого-либо одноразового действия. 3) возможность работы с объектами питона. В нвн-скриптах взаимодействие с объектами питона реализуется следующей последовательностью действий: а) создание объекта б) взаимодействие с атрибутами объекта посредством вызова его методов( с передачей параметров и возвращением результата). в) удаление объекта Для тех кто не знаком с NWNX: обмен данными осуществляется только при помощи строк. Конечно, благодаря возможности создания плагинов для NWNX можно писать собственные модули на С++, но написание программ на питоне намного проще. К тому же ввиду отсутствия этапа компиляции намного упрощается отладка и сопровождение. Так же следует учесть, что каждый отдельный плагин к NWNX - это дллка постоянно висящая в памяти, в то время как мой плагин позволяет скриптеру самому решать вопросы создания/удаления объектов. Тема я создал для того чтобы узнать мнение модульмэйкеров - интересна вам такая разработка или нет. Подробная информация будет предоставлена мной к моменту завершения работы над плагином. Оставляйте свои отзывы и если вас заинтересовали возможности плагина я готов ответить на вопросы. |
![]()
Сообщение
#2
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Ну, я не силен в языках, но то что ты обещаешь, мне и то показалось интересным... :D
|
![]()
Сообщение
#3
|
|
Level 5 ![]() Класс: Страж Тьмы Характер: Chaotic Neutral Раса: Дракон NWN: Скриптинг [PW] ![]() |
Он будет только под винь или под линукс тоже будет версия?
|
![]()
Сообщение
#4
|
|
Level 11 ![]() Класс: Вор Характер: Neutral Evil Раса: Эльф NWN: Скриптинг [PW] Validor2 ![]() |
можно конкретно, что может твой плагин, чего не может сам тулсет ???
ну или по крайней мере, что будет выполняться быстрее и работать эффективней ??? зы простые практические примеры для шарда плз... теория меня мало интересует... Сообщение отредактировал Vanes - Jul 24 2005, 05:33 |
![]()
Сообщение
#5
|
|||||||||||
Level 4 ![]() ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Орк NWN: Скриптинг [PW] ![]() |
и под вынь и под линукс
все возможности языка Python в ваших руках. Единственное ограничение - как я уже говорил, обмен данными только ввиде строк. Например благодаря высокоуровневым типам данных ни что не мешает выбирать из базы данных не одиночные записи, а полноценные наборы данных, по которым не составит труда наладить навигацию в стиле GetFirst... GetNext... Тривиальнейший пример - чтение/запись файлов: Класс на Python:
Не буду сейчас приводить полный цикл создания и подключения к нвн питоновского модуля, ибо слишком это долгая песня( все это разумеется будет включено в документацию). Приведу пример описания нескольких конечных функций в нвн скриптах:
Добавлено в [mergetime]1122188234[/mergetime] упс - а что кавычки использовать нельзя? Добавлено в [mergetime]1122188285[/mergetime] я вот об этом
|
||||||||||
![]()
Сообщение
#6
|
|
Level 9 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [PW] ![]() |
Эх, почему питон, а не перл? :)
|
![]()
Сообщение
#7
|
|||||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Есть ведь кнопка кода...
|
||||
![]()
Сообщение
#8
|
|||
Level 4 ![]() ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Орк NWN: Скриптинг [PW] ![]() |
а почему не иначе?:) Я в перле не очень силен, так как особенно близко с ним не сталкивался. Просто в питоне практически все структуры данных( встроенные типы данных языка, модули, классы, экземпляры классов, атрибуты классов, функции) представлены как объекты. Это позволяет осуществлять управление ими с помощью единого интерфейса. Благодаря вышесказанному питон имеет великолепные возможности для встраивания его в приложения написанные на С/С++. ЗЫ: каа, ты большой поклонник перл? |
||
![]()
Сообщение
#9
|
|||
Level 9 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [PW] ![]() |
В первых двух предложениях содержится ответ, надо только заменить питон на перл :) |
||
![]()
Сообщение
#10
|
|
Level 4 ![]() ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Орк NWN: Скриптинг [PW] ![]() |
Ну тут уж как говорится - было бы желание:)
|
![]()
Сообщение
#11
|
|
Level 4 ![]() ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Орк NWN: Скриптинг [PW] ![]() |
Плагин готов.
Загрузить можно по адресу http://www.nwnxpython.narod.ru Добавлено в 18:20 Маленькое замечание. Только что заметил - в архив плагина я забыл положить ерф-ку с функциями. Если кто-то вдруг уже скачал - приношу извинения. Исправил. Сообщение отредактировал aleVandal - Aug 18 2005, 18:22 |
![]() ![]() |
Текстовая версия | Сейчас: 11th May 2025 - 18:02 |