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