Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> Ликбез по CNR, Изучаем систему крафта...
Аваддон
сообщение Oct 14 2004, 17:03
Сообщение #1


Level 10
***

Класс: Воин
Характер: Lawful Neutral
Раса: Человек
NWN: Скриптинг [PW]



На что способна эта система крафта – одному автору известно. И потому было решено начать ликбез по CNR. А начать я бы его хотел с ответа на вопрос Balrog’а – Как написать свой рецепт?! Мало того, мы еще затронем то – как написать рецепт при этом внеся новый типа материала для крафтинга и дележку крафтовых вещей по типу.

А все начиналось с тулсета и модуля CNR…
Задача урока – Создать раздел спец оружия. Создать подраздел клинков. Написать рецепт на клинок.

Открываем модуль CNR в тулсете. Так… Ищем скрипт наковальни. Он называется «cnrAnvilPublic». А вот теперь уже начинаем творить! Создадим новый раздел в наковальне – «Специальное оружие». Для этого найдем строчки:
Neverwinter Script Source
void ProcessMenuWeaponsCopp(string sMenuWeaponsCopp);
void ProcessMenuWeaponsBron(string sMenuWeaponsBron);
void ProcessMenuWeaponsIron(string sMenuWeaponsIron);

Добавим ниже строку:
Neverwinter Script Source
void ProcessMenuWeaponsSpec(string sMenuWeaponsSpec);

Ниже идут строки:
Neverwinter Script Source
string sMenuWeaponsCopp = CnrRecipeAddSubMenu("cnrAnvilPublic", "Медное Оружие");
  string sMenuWeaponsBron = CnrRecipeAddSubMenu("cnrAnvilPublic", "Бронзовое Оружие");
  string sMenuWeaponsIron = CnrRecipeAddSubMenu("cnrAnvilPublic", "Железное Оружие");

Добавим сюда наш пункт:
Neverwinter Script Source
string sMenuWeaponsSpec = CnrRecipeAddSubMenu("cnrAnvilPublic", "Специальное Оружие");

Прокручиваем скрипт ниже… Эта команда подсчитывает рецепты. Смотрим:
Neverwinter Script Source
CnrIncrementStackCount(OBJECT_SELF);
  AssignCommand(OBJECT_SELF, ProcessMenuWeaponsCopp(sMenuWeaponsCopp));

  CnrIncrementStackCount(OBJECT_SELF);
  AssignCommand(OBJECT_SELF, ProcessMenuWeaponsBron(sMenuWeaponsBron));

  CnrIncrementStackCount(OBJECT_SELF);
  AssignCommand(OBJECT_SELF, ProcessMenuWeaponsIron(sMenuWeaponsIron));

Добавляем:
Neverwinter Script Source
CnrIncrementStackCount(OBJECT_SELF);
  AssignCommand(OBJECT_SELF, ProcessMenuWeaponsSpec(sMenuWeaponsSpec));


Так дальше идет уже дележка на типы и рецепты. Крутим в самый низ, там где заканчивается строчками:
Neverwinter Script Source
CnrDecrementStackCount(OBJECT_SELF);
}


И начинаем монстрячить свой раздел:
Neverwinter Script Source
void ProcessMenuWeaponsSpec(string sMenuWeaponsSpec) //добавим раздел «Специальное оружие» в диалог наковальни. Результат показан на рис.1
{
  string sKeyToRecipe;
  string sMenuSpecBladed = CnrRecipeAddSubMenu(sMenuWeaponsSpec, "Клинки"); //добавим под-раздел Специальное оружие > Клинки. Результат показан на рис.2

//пишем рецепт
sKeyToRecipe = CnrRecipeCreateRecipe(sMenuSpecBladed, "Меч Лорда Аваддона", "spec_avaddon_sword", 1); //Начала рецепта. Выбираем в каком под-разделе будет данный предмет. Далее – Название. Потом Тэг предмета. И количество. Результат показан на рис.3
  CnrRecipeAddComponent(sKeyToRecipe, "cnrIngotIron", 3); // первый ингрдиент. , "cnrIngotIron" – тэг железных слитков, 3-необходимое количество.
  CnrRecipeAddComponent(sKeyToRecipe, "cnrMoldLarge", 1); //второй ингрдиент-тэг Большой литейной формочки. Ингридиентов может быть много Результат показан на рис.4
  CnrRecipeSetRecipeLevel(sKeyToRecipe, 4); //Средний уровень игрока в ремесле.
  CnrRecipeSetRecipeXP(sKeyToRecipe, 84, 84); //При удачном крафте опыта дадут  84 – игрового, и 84 ремесленного. Результат показан на рис.5
  CnrRecipeSetRecipeBiproduct(sKeyToRecipe, "spec_avaddon_fool", 0, 1);//Вторичный продукт при крафте.(например метал. стружка) "spec_avaddon_fool"- Тэг вторичного продукта, 0 - количество при удачном крафте, 1 – количество при неудачном крафте.
  CnrRecipeSetRecipeAbilityPercentages(sKeyToRecipe, 70, 30, 0, 0, 0, 0); //характеристики персонажа влиЯющие на процент удачного крафта. Сила, Ловкость, Телосложение,Интеллект, Мудрость, Харизма.

  CnrDecrementStackCount(OBJECT_SELF);//подводим итог количеству рецептов и заканчиваем функцию.
}


Ну и кончено, с шансом 65% у меня сделать свой меч получилось ;) Результат показан на рис.6 и 7.

Картинка результатов:
(IMG:http://saigh.nm.ru/text/images/CNR1.jpg)

Если не видно - жми сюда

Думаю все должно быть понятно. Удачи вам!:) Спрашивайте если что.

Сообщение отредактировал Аваддон - Nov 15 2004, 20:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20th May 2024 - 05:46