![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]() ![]()
Сообщение
#1
|
|||||||||||||||||
Level 10 ![]() ![]() ![]() Класс: Воин Характер: Lawful Neutral Раса: Человек NWN: Скриптинг [PW] ![]() |
На что способна эта система крафта – одному автору известно. И потому было решено начать ликбез по CNR. А начать я бы его хотел с ответа на вопрос Balrog’а – Как написать свой рецепт?! Мало того, мы еще затронем то – как написать рецепт при этом внеся новый типа материала для крафтинга и дележку крафтовых вещей по типу. А все начиналось с тулсета и модуля CNR… Задача урока – Создать раздел спец оружия. Создать подраздел клинков. Написать рецепт на клинок. Открываем модуль CNR в тулсете. Так… Ищем скрипт наковальни. Он называется «cnrAnvilPublic». А вот теперь уже начинаем творить! Создадим новый раздел в наковальне – «Специальное оружие». Для этого найдем строчки:
Добавим ниже строку:
Ниже идут строки:
Добавим сюда наш пункт:
Прокручиваем скрипт ниже… Эта команда подсчитывает рецепты. Смотрим:
Добавляем:
Так дальше идет уже дележка на типы и рецепты. Крутим в самый низ, там где заканчивается строчками:
И начинаем монстрячить свой раздел:
Ну и кончено, с шансом 65% у меня сделать свой меч получилось ;) Результат показан на рис.6 и 7. Картинка результатов: (IMG:http://saigh.nm.ru/text/images/CNR1.jpg) Если не видно - жми сюда Думаю все должно быть понятно. Удачи вам!:) Спрашивайте если что. Сообщение отредактировал Аваддон - Nov 15 2004, 20:13 |
||||||||||||||||
![]() |
![]() ![]()
Сообщение
#2
|
|||||||||||||||||||||||||
Level 10 ![]() ![]() ![]() Класс: Воин Характер: Lawful Neutral Раса: Человек NWN: Скриптинг [PW] ![]() |
Продолжу свою тему :dirol: Я думаю если так дальше пойдет можно будет книжки издавать хе хе... ВНИМАНИЕ! Данный урок не представляет из себя пособия по NWNX2 итп. Он так же не расчитан на опытных мастеров. Урок предназначен для людей впервые столкнувшихся с MySQL+NWNX2 (таких как я). Здесь я делюсь опытом (грабли собираю сам :yes: ) полученным мною в процессе своей работы с CNR 3.05, дабы людям было проще разобраться. :this: Ликбез по CNR - УРОК №3: :buba: Тема сегодняшнего урока: - Как перевести CNR 3.05 с DataBase Bioware на MySQL? Цели сегодняшнего урока: - Получить первичные навыки работы с MySQL - Получить первичные навыки работы с APS/NWNX 2 - Уменьшить количество лагов в CNR за счет перведения оного на MySQL Необходимый софт: - MySQL - MyODBC: Драйвер odbc для MySQL - APS/NWNX 2 - PHP My Admin или SQLyog Примечание: Сразу скажу - данное действо происходило на OS: Windows XP (Professional Edition) и в качестве софта был установлен пакет Apache+PHP+MySQL. Часть 1 - МуСКУЛ
Если у вас есть MySQL это хорошо. Если его нет - отправляйтесь по ссылке и качайте. У меня уже был MySQL версии 4.0.16-nt, поэтому я данной процедуре время не уделял. Установка тоже довольно таки простая - это сделать будет легко и без моей помощи. А вот теперь начинается самое интересное. После того как мы установили MySQL нам надо настроить его связь с ODBC.
Сейчас нам надо бы зайти в Панель Управления -> Администрирование -> Источники Данных (ODBC) -> Системный DSN -> Добавить... , НО (!) там нет типа базы данных MySQL есть только SQL сервер, а это нам не подходит. Да еще к тому же MySQL пишет : My ODBC Driver Not Found.... В таком случае еще раз отправляемся по ссылке и скачаиваем MyODBC: Драйвер odbc для MySQL. Распаковывайте скачанный архивчик и запускайте setup. Устанавливается легко и безболезненно. В итоге у нас появится драйвер MySQL в Системном DSN. Так, все установили? Опять идем в Панель Управления -> Администрирование -> Источники Данных (ODBC) -> Системный DSN -> Добавить... Вуаля! У нас появился драйвер MySQL (IMG:http://saigh.fatal.ru/text/images/cnr_3_2.gif) Выбираем этот драйвер и появляется окно настроек: (IMG:http://saigh.fatal.ru/text/images/cnr_3_3.gif) Потом нажимаем ОК и получаем:
Жмем везде OK и закрываем окна. Часть 2я - APS/NWNX 2 и Создаем базу данных "nwn" в MySQL при помощи PHP My Admin Скачиваем APS/NWNX 2 по ссылке на nwvailt'е. Распаковываем архив. Файлы: NWNX2.exe, madCodeHookLib.dll, nwnx-module.dll, nwnx_odbc.dll(находится в папке "modules") копируем в директорию с NWN'ом (это там где у нас находится nwmain.exe и nwserver.exe). Все, на это с APS/NWNX 2 пока что закончили - мы это "установили". Устанавливаем Php My Admin и создаем с помощью него базу данных nwn. Действия должны быть такими: (IMG:http://saigh.fatal.ru/text/images/cnr_3_4.gif) Часть 3я - "Заставляем модуль работать с тем, что мы сотворили" или "Не все скрипты одинаково полезны" Откроем модуль CNR 3.05 RUS в редакторе Aurora Toolset. Сейчас предстоят глобальные изменения: Шаг 1. В скрипте cnr_config_inc меняем переменную CNR_BOOL_RECIPE_DATA_IS_PERSISTENT_IN_SQL_DATABASE с FALSE на TRUE
Шаг 2. Откройте скрипт cnr_persist_inc и ЗАкоментируйте строчки для Bioware DataBase и РАСкоментируйте строчки для APS. ПРИМЕР(!это только пример - там их больше!!)
Шаг 3. Проверьте скрипт cnr_module_oml. Там должны быть закоментированы строчки для MS Access и раскоментированы для MySQL. Если это так - то все нормально. Если нет - раскоментируйте строчки "dor MySQL" Шаг 4. Если вы действительно глянули в скрипт cnr_module_oml, то должны были увидеть с самого начала функцию:
. Хм...хм... Если вы посмотрите в списке скриптов модуля, то не найдете этого самого скрипта aps_onload. Видимо автор так устал, что совсем забыл его добавить в модуль. Чтож, вам придется самим создать скрипт с именем aps_onload и содержанием:
Слава богу, инклюд aps_include в модуле присутствует. Если нет то оба скрипта можно взять в erf архиве который поставляется вместе с NWNX 2. Все сделали? Теперь сохраняем модуль, и с полной ответственностью жмем Build Module. Ошибок нет? Тогда еще разок сохраняем. Шаг 5. Запускаем тот NWNX2.exe который мы с остальными файлами скопировали в директорию с NWN. У вас должно открыться окошко NWNX2 и буквально следом автоматическии окошко сервера. Запускаете наш модуль. Как только он загрузится (в состоянии будет написано Running, login at will) выключаете сначала NWNX2, затем NWSERVER.EXE. Не спрашивайте зачем - так нужно. Теперь откройте с помощью Php My Admin базу данных "nwn". Там раньше было "nwn (-)", а теперь "nwn (5)". Сервер при загрузке модуля созда 5(!) таблиц:
Щелкните на cnr_misc и прокрутите окно немного вниз. Там должно быть окошко: Выполнить SQL запрос(ы) на БД И у меня(!) там по умолчанию написано: SELECT * FROM `cnr_misc` WHERE 1. Сотрите это, и напишите строчку:
Где MODULE - это ТЭГ модуля. Затем нажмите Go(Пошел) ну или как у вас там будет:). Запрос в SQL должен выполнится без ошибок и в таблице cnr_misc появится строчка:
Закрываем базу данных и еще раз запускаем NWNX2 и загружаем модуль. Чувствуете? Теперь он грузится чуть дольше чем в первый раз - это записываются рецепты в базу данных "nwn". Шаг 6. Дополнение Как утверждает автор - вы можете перезагружать рецепты "on-the-fly". Для этого следует перезарузить крафтоый аппарат к которыму добавленные рецепты относятся. Крафтовые аппараты перезагружаются при помощи SQL запроса в базу даных "nwn". Шаблон SQL запроса:
Где XXX - это аппарат. В пример он приводит Наковальню для доспехов
И после того запроса, когда игрок будет использоваться Наковальню для доспехов - рецепты для нее будут перезагружены. В заключении... Можете зайти и проверить количество рецептов CNR выдает игроку при входе(их должно быть 1214 чтоль по умолчанию). Зайдите в базы данных. Теперь вы можете просмотреть остальные 4 таблицы, которые до этого момента просмотреть было нельзя. :yahoo: Все. Теперь, когда рецепты загружены, при каждома запуске модуля сервер будет считывать их их нашей базы данных на MySQL. P.S. ВНИМАНИЕ!!! :buba: С этого момента модуль запускать только при помощи NWNX! В противном случае данные измененные в течении игры (рецепты, опыт, скиллы) в базу данных записаны не будут. Урок №3 объявляю завершенным :sleep: И пока прощаюсь с вами до новых постов и (надеюсь) последующих уроков... ® Avaddon 15.11.2004 Сообщение отредактировал Аваддон - Nov 19 2004, 21:31 |
||||||||||||||||||||||||
![]() ![]() |
Текстовая версия | Сейчас: 29th April 2025 - 22:31 |