1. NWNX2
Штука, бесценная для любого шарда. С помощью NWNX можно сделать практически всё. Вот список основных плагинов:
- NWNX ODBC - соединение с базой данных MySQL/SQLite. Позволяет сохранять и забирать данные любых типов, включая объекты целиком.
- NWNX Events - добавляет новые события для обработки скриптами.
- NWNX Chat - обработка чата. Аналогично нему сделали событие OnPlayerChat в 1.69. Но этот плагин всё равно мощнее, чем встроенное событие.
- NWNX Fixes - некоторые твики (например, для сохранения переменных при продаже предмета или для возможности инициации диалога в режиме скрытности)
- NWNX Functions / NWNX Funcs - два плагина со схожим функционалом. Добавляют множество новых функций
- NWNX ResMan - позволяет добавить/заменить любой ресурс (например, поправить скрипт) прямо на лету, без перезагрузки модуля.
- NWNX Profiler - засекает время выполнения скриптов. Помогает, когда нужно оптимизировать скрипты и уменьшить лаги сервера.
- NWNX Reset - рестарт по запросу из скрипта.
- NWNX Areas - инстансинг локаций: позволяет создать копию любой локации.
Пожалуй, самый главный из них - ODBC, потому что без внешней базы данных невозможно было бы сделать половины вкусностей, о которых я расскажу позже.
Кроме перечисленных, мы используем и специфичные:
- NWNX Ruby - возможность исполнять скрипты на языке Ruby с доступом ко всем функциям NWScript
- Dynamic Names - сокрытие реальных имён персонажей игроков. Каждый игрок задаёт то имя, под которым он будет видеть персонажа другого игрока. До этого он для него "незнакомец". Пара скриншотов:
http://data.virusman.ru/nwn/names_party.jpg
http://data.virusman.ru/nwn/nwnx_names1.jpg
2. Сборщик хакпака
Когда количество единичных хакпаков, из которых собирается общий шардовый хакпак, достигло сотни - возникла необходимость автоматизировать сборку и сделать её более гибкой, чтобы было удобнее изменять содержимое.
Информация о каждом хаке занесена в базу:
Нажмите для просмотра прикрепленного файла
А все файлы, соответственно, распределены по папкам:
Нажмите для просмотра прикрепленного файла
Внутри файлы тоже разложены по категориям для удобства:
Нажмите для просмотра прикрепленного файла
Папка 501_master содержит 2da, itp и set файлы, общие для всех.
Перед сборкой запускается проверка всех ресурсов на повторения и на превышение ресурсов в файлах (лимит по ресурсам на каждый .hak-файл - 16384).
Наконец, все эти файлы из папок компилируются в набор .hak-файлов: один с шаблонами для палитры, остальные - в соответствии с тем, как всё распределено в БД.
