На что способна эта система крафта – одному автору известно. И потому было решено начать ликбез по 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
|