Создание дополнения для компании, предача предмета игроку |
Здравствуйте, гость ( Вход | Регистрация )
Создание дополнения для компании, предача предмета игроку |
Nov 19 2009, 21:43
Сообщение
#1
|
|
Level 2 Класс: Некромант Характер: Neutral Evil Раса: Человек |
Перевод и редакция DeKaVi
Источники: A Start: Creating a Module to Give Your Player an Item Автор: John Vanderbeck От редактора: Я далеко не профессионал в деле перевода и оформления статей и тем более в DA toolset. Взялся я за это нелегкое дело т.к. нет альтернативных русскоязычных источников. Сам разбираюсь и не прочь другим помочь. Потому прошу воспринимать мои труды адекватно. Буду рад если подскажете или иными способами поможете исправить неточности. Спасибо за понимание. Поехали! В этой статье мы создадим новый модуль, который будет дополнять основную компанию игры. В модуле добавим новый предмет и дадим его игроку. Модуль не будет изменять объекты компании и его легко включить/отключить. (прим. ред.: не используйте кириллицу в названиях, в скриптах вообще нигде. на предметах текст будет квадратами в игре отображаться, скрипты не будут компилиться даже если текст на русском будет в комментариях.) Если вы уже экспериментировали с модулем Single Player, Вы могли что-нибудь сломать в основной компании. Никогда не работаете в модуле Single Player! Да и нет в этом никакой необходимости. Если это случилось, нужно отменить все изменения для модуля. Для этого выберите в меню Tools->Export->Empty Export Dirictories (Очистить дирекотрию для экспорта). Создание модуля Для начала нам нужно создать наш собственный модуль. File->Manage Modules->New... 1. Задайте имя модуля. Латиницей, пробелы допустимы. 2. UID т.е. идентификатор модуля и он должен быть уникальным. Тем более латиница и пробелы не допустимы. Используйте знак подчеркивания если нужно. 3. В поле Extended Module указываем, что мы расширяем модуль Single Player, т.е. основную компанию. (IMG:http://dekavi.ucoz.ru/_fr/0/3417407.jpg) Нажмите ОК. Теперь снова вернитесь в менеджер модулей и выделив ваш модуль нажмите кнопку Hierarchy... поставьте галку на Single Player. Примечание: Если все модули серого цвета, и вы не можете выбрать ни одного из них, значит не открыт ни один модуль. Создание предмета Если вы хотите дать игроку предмет, который уже существует в игре, вы можете пропустить этот раздел. В этом уроке мы собираемся создать лук. В меню выбираем File->New->Item 1. Задаем имя объекта 2. папку (прим. ред.: только для внутренней организации, как я понял) 3. Далее следует модуль. Это важный момент! Т.к. мы хотим дополнить основную игру, мы должны установить модуль Core Game Resources. Наш объект будет физически помещен в ресурсы игры. В таком случае главный модуль игры и другие модули смогут получить доступ к этому объекту. Жмите Ок. http://dekavi.ucoz.ru/_fr/0/8646509.jpg Перед нами палитра свойств нового объекта и его представление в 3D виде. По умолчанию это будет меч. Давайте зададим некоторые настройки. 1. Base Item Type: weapon - Longbow. Тип объекта "оружие - лук". 2. Description(описание предмета): 3. Icon (картинка для инвентаря): ico_longbow (как вариант) 4. Inventory Subgroup(инвентарная подгруппа): 13666. (Прим. ред.: Как я понял это признак для группировки объектов в инвентаре. Хорошо когда одинаковые объекты складываются в одну кучку.) 5. Item Variation(вариант вида предмета): какой хотите. 6. MaterialProgression и MaterialType... Выберите "Bow,horn" Заметьте! В Dragon Age есть такое понятие как объект, например, bow. По нему прописаны характеристики, такие как повреждения, шанс крита и прочее. Различные материалы для предметов изменяют базовые характеристики на определенный материалу множитель. Например, лук Elm имеет множитель 1.0, а лук Dragonthorn имеет множитель 1.6. Эти базовые и другие данные находятся в 2da (об этом в другом руководстве). 7. Name. Не забываем задать имя. 8. тег создается автоматом. Он может быть использован в скриптах. 9. В Item Properties [...] можно задать до пяти дополнительных свойств объекта. Сохраните новый предмет. http://dekavi.ucoz.ru/_fr/0/0234980.jpg теперь нужно проверить наш объект. Для этого мы можем в правом окне, дереве элементов выбрать наш лук правой кнопкой и выбрать в меню Chek In. Комментарии к операции можно не оставлять. После этого объект становится недоступным для редактирования. Чтобы редактировать выберите Check OUT. Это очень важно! (Прим. ред.: это механизм контроля версий. Лучше его отдельно описать.) Создадим скрипт чтобы дать наш предмет игроку Мы почти все сделали! теперь нам нужен способ дать наш предмет игроку. Мы собираемся сделать это с помощью событий модуля основного сценария. Некоторые события, происходящие в игре, отлавливаются в модуле. Мы будем использовать событие загрузки модуля. Скрипты в Dragon Age пишутся на Си подобном языке. Я просто предоставляю вам для изучения готовый скрипт с комментариями. Для начала нам нужно создать новый скрипт File->New->Script. Назовем его module_core_bowathena. На этот раз модуль Модуль-владелец являются нашим модулем, а не Core Game Resource т.к. скрипт не должен быть доступным только в нашем модулей. (Прим. ред.: лично я не понял почему мы предмет помещаем в главные ресурсы, а скрипт объекта держим во внешнем модуле. Сделаем как сказали, потом разберемся.) (Прим. ред.: редактор скриптов не любит кириллицу и отказывается компилировать сценарии с русскими комментариями. т.е. далее идущий скрипт нужно вставлять в редактор без комментариев. Я сначала перевел, потом на тесте ошибку понял.) Neverwinter Script // All module events #include "utility_h" #include "wrappers_h" #include "events_h" void main() { event ev = GetCurrentEvent(); int nEvent = GetEventType(ev); Log_Events("", ev); switch (nEvent) { //////////////////////////////////////////////////////////////////////// // Sent by: The engine // When: срабатывает при загрузке с сохранения или когда запущено в первый раз // Может вызываться несколько раз //////////////////////////////////////////////////////////////////////// case EVENT_TYPE_MODULE_LOAD: { // Делаем проверку, чтобы запускался только один раз. Если ниже лежащий код уже выполнялся, //повторять нам его не надо и пропускаем это событие. int iModuleLoaded = GetLocalInt(OBJECT_SELF, "aga_bowathena"); if (iModuleLoaded == 1) break; // Получим объект игрока object oPlayer = GetHero(); // проверяем, нет ли уже этого объекта в рюкзаке игрока. // Мы же не хотим создавать новый лук при очередной загрузке? Хотя можно это назвать системой крафтинга =) (прим. ред.) int iItemCount = CountItemsByTag(oPlayer, "aga_bowofathena"); // Если это 0, тогда давайте дадим его. // Обратите внимание на формат R"resource_file_name" // "R" является важной частью и определяет его в качестве ресурса. Просто имя ресурса. Его можно увидеть в дереве объектов (справа) // Дадим только одну штуку if (iItemCount == 0) UT_AddItemToInventory(R"aga_bowofathena.uti",1); // добавляет предмет в инвентарь активного игрока // сохраняем ранее определенную переменную как локальную в объекте SetLocalInt(OBJECT_SELF, "aga_bowathena", 1); break; } default: { break; } } } Сохраняем скрипт. Теперь его мы должны назначить модулю.Для этого мы должны зайти в менеджер модулей, затем выбрать свойства модуля и вместо значения поля script выбрать наш новый сценарии. Экспорт модуля Нам остался заключительный шаг. Мы должны экспортировать новые ресурсы и модуль, чтобы они стали действовать в игре. Перейдите к дереву объектов, выберите новый предмет правой кнопкой мыши. выберите Export->Export without... (экпорт без зависимых ресурсов). Тоже самое сделайте для сценария. Наконец, чтобы экспортировать модуль перейдите в меню Tools->Export->Generate module XML. Затем там же Generate Mainfest XML. Теперь можем тестировать в игре. Просто загрузитесь или начните игру заново. Смотрите в инвентарь! Сообщение отредактировал DeKaVi - Nov 20 2009, 15:58 |
Nov 20 2009, 19:48
Сообщение
#2
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Молодец (IMG:style_emoticons/kolobok_light/good.gif) (IMG:style_emoticons/kolobok_light/offtopic.gif)
|
Nov 21 2009, 12:09
Сообщение
#3
|
|
Level 2 Класс: Страшный Пират Характер: Chaotic Neutral Раса: Человек |
Если предмет надоест, прийдется модуль удалять, иначе он будет в инвентаре вечно.
ИМХО, можно просто сделать скрипт добавления предмета в void main(){} . А сам скрипт запускать из дев. консоли командой "runscript имяскрипта". Чтобы включить консоль, нужно запускать игру с ключом -enabledeveloperconsole. Типа так: Neverwinter Script #include "utility_h" #include "wrappers_h" /* наверно лишний */ void main() { // Получим объект игрока object oPlayer = GetHero(); // Обратите внимание на формат R"resource_file_name" // "R" является важной частью и определяет его в качестве ресурса. Просто имя ресурса. Его можно увидеть в дереве объектов (справа) UT_AddItemToInventory(R"aga_bowofathena.uti",1); // добавляет предмет в инвентарь активного игрока } Может есть команды в консоли для непосредственной манипуляции инвентарем... Сообщение отредактировал Narren - Nov 21 2009, 12:32 |
Dec 1 2009, 14:18
Сообщение
#4
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Человек |
Есть вопрос. А как теперь можно удалить эти модули? Я пытался экспериментировать, и у меня осталось много не нужных модулей. Есть ли способ их почистить?
И да, кстати, DeKaVi, молодец=) |
Dec 19 2009, 16:47
Сообщение
#5
|
|
Level 1 Класс: Маг Характер: Chaotic Good Раса: Человек |
DeKaVi,спасибо тебе большое (IMG:style_emoticons/kolobok_light/good.gif)
я, благодаря тебе, создал свою робу и посох... (IMG:style_emoticons/kolobok_light/yahoo.gif) но у меня к вам небольшая просьба (IMG:style_emoticons/kolobok_light/unsure.gif) пожалуйста расскажите и покажите, как мне создать сет вещей в одном модуле... т.к. я так понял один модуль - один итем... (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) если нет, то очень прошу показать, как всунуть еще одну вещь в созданный уже модуль пожалуйста, себе места не нахожу (IMG:style_emoticons/kolobok_light/unsure.gif) (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) |
Dec 22 2009, 20:47
Сообщение
#6
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек |
DeKaVi, Narren - респект и уважуха! ;)
Только у меня, видать, ручки-то кривоваты. Отсюда вопросцы... 1) Сделал доспех, вставил в игру скриптом Narren'а. В игре доспех появляется - но сразу 57 штук (откуда вообще такая цифра??). И при КАЖДОМ заходе в инвентарь их становится больше и больше. Как это обойти? 2) Уже спрашивали, присоединяюсь - как добавить в скрипт еще одну (2,3,4,5 и тд) вещь? Например, делаю две вещи: aga_epicwinsword.uti и aga_bigfuckingarmor.uti Создаю скрипт: Neverwinter Script #include "utility_h" #include "wrappers_h" void main() { object oPlayer = GetHero(); UT_AddItemToInventory(R"aga_epicwinsword.uti",1); } { object oPlayer = GetHero(); UT_AddItemToInventory(R"aga_bigfuckingarmor.uti",1); } Потом забиваю в консоли "runscript aga_bigfuckingarmor", получаю epicwinsword, да и то коряво (см пункт 1) Где ошибки? Заранее спасибо!
Причины изменения: nss
|
Dec 22 2009, 22:56
Сообщение
#7
|
|
Level 12 Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] |
1) Использовать НСС тэг - так скрипты понятнее.
2) Две вещи создаются обе в теле мейн, если два раза тупо её написать ничего путного не выйдет, надо каждую вещь внутри блока повторить. Neverwinter Script ... // проверяем, нет ли уже этого объекта в рюкзаке игрока. // Мы же не хотим создавать новый лук при очередной загрузке? Хотя можно это назвать системой крафтинга =) (прим. ред.) int iItemCount = CountItemsByTag(oPlayer, "aga_bowofathena"); // Если это 0, тогда давайте дадим его. // Обратите внимание на формат R"resource_file_name" // "R" является важной частью и определяет его в качестве ресурса. Просто имя ресурса. Его можно увидеть в дереве объектов (справа) // Дадим только одну штуку if (iItemCount == 0) UT_AddItemToInventory(R"aga_bowofathena.uti",1); // добавляет предмет в инвентарь активного игрока // DOUBLE OWNAGE // int не пишем, т.к. такая переменная уже есть iItemCount = CountItemsByTag(oPlayer, "ВТОРАЯ ВЕСЧ"); if (iItemCount == 0) UT_AddItemToInventory(R"ВТОРАЯ ВЕСЧ.uti",1); // добавляет предмет в инвентарь активного игрока ... И вставлять в скрипт DeKaVi, ибо тут видимо какая-то хитрая система запуска скриптов. |
Dec 23 2009, 16:47
Сообщение
#8
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек |
Спасиб! (IMG:style_emoticons/kolobok_light/smile.gif) )
|
Dec 25 2009, 00:11
Сообщение
#9
|
|
Ушедший на войну Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент |
Цитата Примечание: Если все модули серого цвета, и вы не можете выбрать ни одного из них, значит не открыт ни один модуль. И что тогда делать ? (IMG:style_emoticons/kolobok_light/unsure.gif) |
Dec 27 2009, 22:26
Сообщение
#10
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек |
Цитата И что тогда делать ? - выделить свой модуль и нажать "Open". Затем продолжить по инструкции.- выделить свой модуль и нажать "Open". Затем продолжить по инструкции. А кто подскажет - как переслать другому созданный модуль (предметы и тп)? И как скачавшему его установить? |
Jan 11 2010, 07:48
Сообщение
#11
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек |
Спасибо большое,пригодится,сам в этом деле ломо,пригодится.
|
Jan 23 2010, 00:35
Сообщение
#12
|
|
Level 2 Класс: Воин Характер: Neutral Evil Раса: Человек |
Бли, у меня предмет не выводится в игре, дайте нормал скрипт для вывода, т.к. ни один из тех что здесь не риводит к нормальному исходу, а в итоге выводится это :"W: 23:33:03 - No starting area specified for campaign." - это хрень выводится как и при Экспорте фала .юти, так и .нсс
т.е. выложите кто-нибудь оригинальный скрипт с англисскими комментами Я всё делаю как здесь, заря попробую снова, но только как у вас, если опять, тогда либо у меня что-то не так, либо у вас... Нет, всё равно ни чего не работает, всё равно одна и таже ошибка "W: 23:33:03 - No starting area specified for campaign.", блин BioWare игру сделали хорошую, а редактор какой-то долбаный, невозможно работать, один раз всего смог заставить предмет работать, второй раз этот предмет уже не выводился в игре, я тут наверно все баги этого чёртового редактора открою, предмет создать можно быстро, но его в игру запихнуть и заставить игру читать этот предмет можно задолбаться, а заставить редактор всё сделать правило можно свихнуться. Люд, если у кого есть идеи по решению этой проблемы, или встречался с ней на каком-нибудь сайте, плиз выложите решение, может там скрипт какой-нибудь нужен или в игре дело, из-за того, что пиратская, поэтому ошибка выходит такая...Если этот редактор и будут улучшать, то надеюсь они узнают об этой ошибке и исправят. Если кто-то поможет мне решить эту проблему, что у меня будет выводиться предмет в игре, то этого человека, можно сразу выдвигать в элиту этого сайта... |
Jan 23 2010, 08:12
Сообщение
#13
|
|
Level 9 Класс: Фея Характер: Chaotic Evil Раса: Фея |
Цитата No starting area specified for campaign. Не задана стартовая позиция для кампании Ты ТОЧНО выполнил 3 шаг в сабжевом гайде? |
Jan 23 2010, 15:01
Сообщение
#14
|
|
Level 2 Класс: Воин Характер: Neutral Evil Раса: Человек |
У меня там так же Extended Module : Single Player
Вот как у меня: всё по вашим, кстати, у меня всего один раз получилось вывести предмет в игру и это было тогда, когда я имел проблему с исчезновением сохранений, ну т.е. красной линией вместо зелёной... А вот, как выглядит мой редактор: (IMG:http://s43.radikal.ru/i101/1001/ad/2f4faf11abd1.jpg) Сообщение отредактировал KrAiZ - Jan 23 2010, 15:03 |
Feb 19 2010, 13:45
Сообщение
#15
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек |
а как добавить собственные , нарисованые текстуры?
|
Mar 6 2010, 21:26
Сообщение
#16
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек |
Здравствуйте. У меня маленькая проблема. Все делал по инструкции, предмет появляется, все как надо...Но:
1) Не воспринимает русский язык в названии и описании, в ретранслейте (поле ниже названия) стоит True. Однако при входе в игру вместо названия и описания квадраты. Прошу помощи. 2) Как сделать подарок, который работал не как стандартный (+1), а +5 определенному? |
Mar 9 2010, 12:03
Сообщение
#17
|
|
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
1) Не воспринимает русский язык в названии и описании, в ретранслейте (поле ниже названия) стоит True. Однако при входе в игру вместо названия и описания квадраты. Прошу помощи. боюсь что пока нам не видать нормального русского языка через тулсет (IMG:style_emoticons/kolobok_light/sad.gif) Сам тоже недоволен, но решения не нашел. надо пробовать через tlk |
Mar 21 2010, 05:45
Сообщение
#18
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек |
Огромная просьба подсказать в чем проблема..
Все первые пункты делаю по данной инструкции (раз 10 проверил), но по созданию предмета редактировать его невозможно. В чем может быть прикол? Ось висата, админская учетка. И как вообще избавиться от этого ридонли в общем случае? PS Пока мучался с итемом, наплодил модулей разных.. Как бы их стереть теперь? |
Mar 22 2010, 10:27
Сообщение
#19
|
|
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
нельзя редактировать - ты его лочишь сразу:
Цитата Для этого мы можем в правом окне, дереве элементов выбрать наш лук правой кнопкой и выбрать в меню Chek In. Комментарии к операции можно не оставлять. После этого объект становится недоступным для редактирования.
|
Mar 28 2010, 19:20
Сообщение
#20
|
|
Level 19 Класс: Рейнджер Характер: Lawful Neutral Раса: Эльф |
Для тех кто мучается удалением модулей. В My Documents\Bioware\Dragon Age\AddIns находите папку с названием своего модуля и удаляете. Однако через тулсет модуль будет всё ещё виден (так как в бд записан), оттуда удалять чуток сложнее:
Цитата * Open Sql Server Management Studio Express. I'm not sure if the default installation installs this or not. If not, it can be downloaded from Microsoft. * Connect to the BWDATOOLSET server, assuming that you kept the default options. * Expand Databases * Expand bw_dragonage_content * Expand Tables * Right click and select open table on the dbo.Module table * This will bring up an excell-like window. Find your module, right-click on the row, and select delete. Say ok to the confirmation. * Module is now PERMANENTLY removed. Absolutely no way of recovering it. Все выходные сражался с нежеланием игры воспринимать русский язык. Потерпел поражение. ТЛК файлы послушно экспортируются но создается впечатление что впоследствии модуль к ним не обращается (редактирование оных вне тулсета ни к чему не привело). "Разбирание" официальных длц не смогло прояснить картину (мб я что то пропустил (IMG:style_emoticons/kolobok_light/sad.gif) ). А у вас господа какие успехи в этом плане (если кто этим занимается)? |
Mar 29 2010, 12:25
Сообщение
#21
|
|
Level 18 Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D |
А у вас господа какие успехи в этом плане (если кто этим занимается)? Пока ни чем не могу похвастаться - не получил ни одного ответа в теме на оф форуме, ни ответа на пм Аллану Смиту. (IMG:style_emoticons/kolobok_light/sad.gif) P.S. Только предположение - может проблема в том, что тулс не локализован? Ведь не зря же он прописан для скачивания как Toolset 1.01 (English) |
Mar 29 2010, 14:38
Сообщение
#22
|
|
Level 19 Класс: Рейнджер Характер: Lawful Neutral Раса: Эльф |
Натыкался на твою тему на офф форуме. (IMG:style_emoticons/kolobok_light/smile.gif)
Нашел вчера это. Действовал по инструкции. Результата таки не было. Тут обсуждение локализованных тлк пришло к тому что для удачной работы требуется экспортировать предмет без имени и с пустым описанием. Пробовал. Результат нулевой. Как я говорил выше айтем к тлк не хочет обращаться (пустое имя он заменяет на тег, а описание берёт дефолтное для типа предмета). Если тулз не локализован, как они умудрились сделать русскую версию? (IMG:style_emoticons/kolobok_light/sad.gif) |
Mar 29 2010, 14:41
Сообщение
#23
|
|
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Если тулз не локализован, как они умудрились сделать русскую версию? (IMG:style_emoticons/kolobok_light/sad.gif) это разные сферы. |
Mar 30 2010, 14:23
Сообщение
#24
|
|
Level 18 Класс: Страж Тьмы Характер: True Neutral Раса: Человек МАСТЕР D&D |
Если тулз не локализован, как они умудрились сделать русскую версию? (IMG:style_emoticons/kolobok_light/sad.gif) Перевели тлк, диалоги, имена, озвучили и все. Тулс ведь к игре отношения не имеет. У меня, кстати, были ляпы локализации когда имена оранжевых боссов прописаны на английском. (IMG:style_emoticons/kolobok_light/biggrin.gif) |
Mar 30 2010, 14:44
Сообщение
#25
|
|
Level 19 Класс: Рейнджер Характер: Lawful Neutral Раса: Эльф |
Перевели тлк, диалоги, имена, озвучили и все. Тулс ведь к игре отношения не имеет. У меня, кстати, были ляпы локализации когда имена оранжевых боссов прописаны на английском. (IMG:style_emoticons/kolobok_light/biggrin.gif) Не, пардон, а ТЛК они чем открывали? Блокнотом? 0_о (шутк) Меня интересует то чем они добавляли русский текст в ТЛК файл (что бы в итоге не показывались квадраты вместо текста) и каким образом игра "видит" этот файл. (IMG:style_emoticons/kolobok_light/sad.gif) |
Текстовая версия | Сейчас: 1st November 2024 - 02:21 |