Вверх Вниз


Модератор форума: Клариэль  
Форум » Dragon Age » Dragon Age: Origins » Изучаем создание модов (Рано или поздно мы начнём делать свои плагины.)
Изучаем создание модов
nicksnerg  Offline Сообщение №451 написано: 01 Июня 2017 в 07:01



198
Скажите, а персонажей из дополнений можно переодевать только через оверриде? Суть вот в чем. Взял я перса из Пика солдата. Переодел его в шмот из мода и закинул его файл в оверриде. Все файлы вещей с него в аддинсе оставил. Захожу  в игру - перс голый, сет-бонус не работает. Перекидываю файлы обмундирования в оверриде - перс одетый, сет-бонус включается. Но отключается tlk-файл. Проще говоря вместо новых названий и описаний - пусто...

FalconRR  Offline Сообщение №452 написано: 01 Июня 2017 в 09:00 | Отредактировано: FalconRR - Четверг, 01 Июня 2017, 09:10


Толстожопый жиробас


190
Цитата nicksnerg ()
Скажите, а персонажей из дополнений можно переодевать только через оверриде? Суть вот в чем. Взял я перса из Пика солдата. Переодел его в шмот из мода и закинул его файл в оверриде. Все файлы вещей с него в аддинсе оставил. Захожу  в игру - перс голый, сет-бонус не работает. Перекидываю файлы обмундирования в оверриде - перс одетый, сет-бонус включается. Но отключается tlk-файл. Проще говоря вместо новых названий и описаний - пусто...
Не до конца понял суть вопроса... но, могу сказать, что папка Override имеет наивысший приоритет, видимо, когда файлы не в Override, то движок, согласно приоритету, пытается одеть перса обратно, но так-как файлы обмундирования заменены, он этого сделать не может, по этому перс голый. Насчет отключения tlk, а что мешает и tlk тоже в Override перенести?
И вообще, такие вещи, как переодевание, добавление персонажей, placeable предметов, изменение статов ванильных вещей, создание новых дверей и т.д. в обязательном порядке интегрируются в игру, через PRCSCR систему, иначе неизбежны глюки, баги шмаги, конфликты с очень многими модами и вообще всё плохо и печально. Вопросов мне, по поводу работы этой системы, можно не задавать, я пока в процессе расковыривания всего этого механизма, по этому, пока сам пользуюсь дуболомным методом, прямого редактирования.

Не рой другому яму... пусть сам роет.
Apriley  Offline Сообщение №453 написано: 02 Июня 2017 в 11:59 | Отредактировано: Apriley - Пятница, 02 Июня 2017, 12:02





121
FalconRR, можно вопрос к спецу - с чего начинать работу со скриптами? Для чайника, который вообще с этим разделом дела не имел, в общем. А то во все гайды и иже с ними написаны, похоже, для тех, кто уже знает, откуда эти скрипты берутся и как правильно редактируются.

FalconRR  Offline Сообщение №454 написано: 02 Июня 2017 в 17:17 | Отредактировано: FalconRR - Пятница, 02 Июня 2017, 17:19


Толстожопый жиробас


190
Цитата Apriley ()
FalconRR, можно вопрос к спецу - с чего начинать работу со скриптами? Для чайника, который вообще с этим разделом дела не имел, в общем. А то во все гайды и иже с ними написаны, похоже, для тех, кто уже знает, откуда эти скрипты берутся и как правильно редактируются
Я бы с удовольствием, только спец из меня... У нас со скриптами взаимное послание друг другу сходить в лес. Я в принципе понимаю, как и что я делаю, многое получается, но чтобы без глюков... это редко. Вообще, если хотите хорошо разбираться в скриптах ДАО, да и многих других игр, что даст Вам возможность, буквально пилить игру под себя, почти любые хотелки будут возможны, тогда начните изучать язык С, достаточно самых самых основ, в дебри лезть не стоит. Затем, начните осваивать язык DAScript, тут обзор языка, а детальная информация в файле "dascript.chm" по адресу : "Dragon Age\packages\core", предварительное изучение основ С, в разы облегчит Вам понимание DAScript. Ну и немножко страничек накидаю, по скриптам ДАО, если не хотите учить С. Можно в принципе и так разобраться:
Основная информация о скриптахПримеры скриптовСистема PRCSCRPRCSCR.xlsШаблоны скриптов PRCSCRСистема Plot-файловОпределение события и его обработкаПодмена обработки событий ну и там, по ссылками переходите. Вот, советую начать с этого видео (в конце поста) и просто повторить и сделать такой же квест, потом постепенно пытаться делать простенькие скрипты, не просто читать, а именно пытаться делать, со временем будете все глубже понимать механику и будет всё легче и легче.

Не рой другому яму... пусть сам роет.
Apriley  Offline Сообщение №455 написано: 02 Июня 2017 в 19:52





121
FalconRR, благодарю, буду разбираться.
Мне по сути и нужны-то самые простые скрипты - новый предмет в инвентарь добавить, в сундук, или торговцу какому.

FalconRR  Offline Сообщение №456 написано: 02 Июня 2017 в 21:46 | Отредактировано: FalconRR - Пятница, 02 Июня 2017, 22:08


Толстожопый жиробас


190
Цитата Apriley ()
Мне по сути и нужны-то самые простые скрипты - новый предмет в инвентарь добавить, в сундук, или торговцу какому.
Это проще простого. Быстро научитесь. Я вот пытаюсь одновременно создать новую область, с новыми объектами, с переходом, с карты мира, новое существо/существ и еще целую цепочку событий, с заданиями, диалогами и кодексами, и всё это с помощью PRCSCR, чтобы конфликтов и багов не было на 99%, но все время, где-то в цепочке происходит сбой, блин, умаялся уже. Есть более простой путь, но глупый, поскольку конфликты с другими модами, гарантированы, это напрямую в тулсете редактировать персонажей, объекты, добавлять новых существ, так же прямо в тулсете, можно открыть инвентарь любого торговца и ящика и добавить туда нужный предемет, но поскольку мир игры управляется скриптами, то от малейшего изменения событий или установки мода, каким то образом затрагивающего этого торговца, или даже область, где он стоит, сразу наступят последствия такого метода. Почти все вещи, неписи, сундуки, существа и т.д и т.д в игре, добавляются, убираются, в общем управляются скриптами. По этому, это единственно верный путь, для изменения игры, не трогать основные ресурсы, создать модуль, расширяющий Single Player и уже в нем творить, но добавлять все следует, через скрипты. Что-то много накалякал, пойду дальше головой ап стену биться.
ЗЫЫ По сути PRCSCR довольна простая систем, её смысл, написать свой скрипт для управления определенными событием, можно с кучей схем (PLOT-файлов), перехватить управление событием у главного скрипта и направить его в свой обработчик и сделав своё дело, вернуть управление обратно, главному скрипту, хотя возвращать не обязательно, зависит от события и от многих других факторов. Также можно последовательно передавать управление из одного скрипта, другому, потом третьему и до бесконечности.

Не рой другому яму... пусть сам роет.
Apriley  Offline Сообщение №457 написано: 02 Июня 2017 в 23:03





121
Ну... это пока совсем не про меня :D  Я пока останавливаюсь на визуальной части игры и минимальном балансе вещей (под себя, естессно). За глаза хватает, чтобы забыть непосредственно об игре и убивать все время в тулсете))
А торговцам напрямую в магазины добавлять - вообще ужасть получится. Во-первых грузится только один раз, а во-вторых, конфликтует со всем на свете. Если utc файлы в этом плане намного менее конфликтны (ну сколько может быть изменений для одного конкретного персонажа?), то с utm, конечно, кошмар. 
Научусь привязывать скрипт выдачи предмета к определенному событию или диалогу - и счастью моему не будет предела  lol

FalconRR  Offline Сообщение №458 написано: 02 Июня 2017 в 23:25 | Отредактировано: FalconRR - Пятница, 02 Июня 2017, 23:33


Толстожопый жиробас


190
Цитата Apriley ()
Научусь привязывать скрипт выдачи предмета к определенному событию или диалогу - и счастью моему не будет предела
 Не очень сложно  в проверку "условия" можно вписать, например: событие "ARCHDEMON_EVENT_ONE", это первый кошмар с архидемоном, или можно сооздать условие с событием убийства, какого-нибудь монстра и только после этого выдавать предмет. Вообще можно любое условие придумать, какое в голову взбредет, даже если изначально, этого события нет (а есть практически всё, на все случаи жизни), то это событие, можно определить самому. Тут только нужно создать схему (PLOT) с проверками на событие и чтобы выдавал только один раз или наоборот, постоянно. Если нужна выдача в диалоге, то посмотрите ролик, который я оставил выше, могу еще роликов накидать, но они все на английском, без субтитров.

ЗЫ Тэг любого контейнера и AreaListName, думаю Вы без проблем найдете, поскольку всё время в тулсете сидите

Не рой другому яму... пусть сам роет.
Apriley  Offline Сообщение №459 написано: 03 Июня 2017 в 16:26





121
FalconRR, буду надеяться, что разберусь  :) С тегами-то просто, а вот нужные события придется поискать.

nicksnerg  Offline Сообщение №460 написано: 04 Июня 2017 в 19:37



198
Цитата Ауранг ()
после разговора с ним,покажи свой товар, не появляется окно товара, и так пару раз. Не открывается магазин.

Я понял в чем ваша пробдема. У меня тоже так пару раз было, но не с Боданом, а с торговцем в таверне Лотеринга и Горимом а Денериме. Просто у них инвентарь переполнился. Когда сильно много им вещей продашь - перестает открываться магазин. Вот поэтому я не очень приветствую вложение всех модовских вещей многострадальному Бодану.

Ауранг  Offline Сообщение №461 написано: 04 Июня 2017 в 20:03


Злодей


1122
nicksnerg, то есть, если я правильно Вас понял просто надо "разгрузить телегу" Бодану? Ну в моем случаи скорее слишком много вещей (модов) было добавлено ему.

Покой — это ложь. Есть только страсть.
Через страсть я получаю силу.
Через силу я получаю мощь.
Через мощь я получаю победу.
Через победу мои оковы будут разрушены.
Сила освободит меня.
LicimeR  Offline Сообщение №462 написано: 08 Июня 2017 в 18:52 | Отредактировано: LicimeR - Четверг, 08 Июня 2017, 18:52


Странник


1
Всем Доброго времени суток !!! Уважаемые Мододелы (ну или как то так), не могли бы вы мне чуть чуть помочь ? Я бы хотел вот в этот Сет Брони http://modgames.net/load/1/bronja/pervonachalnaja_bronja_dunkana/63-1-0-219 добавить статы, но не знаю как. Какие добавить статы я написал бы в личку. Буду очень вам благодарен. Хочу сделать чисто для себя, а то пока в отпуске, решил пройти. Красивые доспехи нашёл, а вот статы там не найс (((

nicksnerg  Offline Сообщение №463 написано: 10 Июня 2017 в 21:04



198
LicimeR, гляжу никто не хочет вам помочь... напишите мне в личку что вы хотите поменять.

FalconRR  Offline Сообщение №464 написано: 16 Июня 2017 в 21:05 | Отредактировано: FalconRR - Пятница, 16 Июня 2017, 21:08


Толстожопый жиробас


190
Цитата nicksnerg ()
гляжу никто не хочет вам помочь... напишите мне в личку что вы хотите поменять.
Уже давно помог))

Добавлено (16 Июня 2017, 21:05)
---------------------------------------------
Nalia, Помните, у нас с Вами был разговор, насчет, один меш и две ткстуры, кажется была куртка и штаны? На самом деле движок такое поддерживает, главное чтобы была не мультитекстура. Для примера: сейчас работаю над одним мечом (уел он меня уже), так вот, у меня в одной моделе и меше, используется 5 разных текстур. Так что, если все грамотно в максе сделать, то на одни сапоги, можно использовать хоть 10-ок разных текстур, не обязательно объединять все в одну.
ЗЫ И в том же разговоре зашла речь о скининге, двольно простая процедура, главное четко понимать, что ты делаешь, гораздо легче той же развертки, если её делать по всем правилам.

Не рой другому яму... пусть сам роет.
Nalia   Сообщение №465 написано: 22 Июня 2017 в 15:08



FalconRR, да ну его это моделирование, короче говоря lol Может быть, когда-нибудь, но сейчас не охота совсем) Кстати, песик зачетный good Небось, все жители будут прятаться от такого)))
А вот у меня вопрос по диалогам. Чисто теоретический. Можно лишь одни диалоги создать отдельно в Тулсете от всего остального винегрета? Чтобы текст в них вбить, и пусть в базе такими полупустыми валяются. Или это дело сильно взаимосвязано, что лучше ничего не трогать? :) Сорри, я в создании модов сильно не заглядывала))

Lavallet   Сообщение №466 написано: 22 Июня 2017 в 18:17 | Отредактировано: Lavallet - Четверг, 22 Июня 2017, 18:37



Nalia,
Конечно, диалог - это просто файл .dlg, который ты потом прикрепляешь к выбранному существу (.utc) или любому другому объекту (двери, сундуку и т.д.) через поле «Conversation» в списке всех свойств этого объекта. Тут ничего не поменялось за сто лет ещё со времен первого NWN :) Создается диалог через стандартное меню (New -> Conversation), как и любой файл. Разумеется, нужно дать этому файлу уникальное имя, чтобы он не конфликтовал с каким-нибудь другим диалогом, который уже есть в игре или другом моде. И пусть себе потом лежит в базе и ждёт своего часа.

FalconRR  Offline Сообщение №467 написано: 22 Июня 2017 в 18:56


Толстожопый жиробас


190
Цитата Nalia ()
FalconRR, да ну его это моделирование, короче говоря  Может быть, когда-нибудь, но сейчас не охота совсем) Кстати, песик зачетный  Небось, все жители будут прятаться от такого)))
Спасибо, но уж больно тяжело ему оснастку делать, создание костей и риггинг я почти осилил,  а вот заскинить его... Умаялся вес с вертексов перекидывать и перераспределять, но уже вырисовывается.
Цитата Nalia ()
А вот у меня вопрос по диалогам. Чисто теоретический. Можно лишь одни диалоги создать отдельно в Тулсете от всего остального винегрета? Чтобы текст в них вбить, и пусть в базе такими полупустыми валяются. Или это дело сильно взаимосвязано, что лучше ничего не трогать?  Сорри, я в создании модов сильно не заглядывала))
Ну в принципе, тебе уже ответили, я просто добавлю. В диалогах, почти на каждую фразу вешается plot или script, а с твоими условиями для компаньона будет такое дерево диалога, что если его сейчас пустым создать, просто с репликами, то потом трудно будет вспомнить, на какую фразу, что повесить и ещё немножко дегтя) для диалогов нужно делать сцены, с жестами, позами, сменой позиций камеры, выражениями эмоций, а если участников разговора несколько, то вообще ахтунг, также нужно на диалог сделать VO а потом FaceFX, чтобы губы в такт шевелились, тонкостей много, чем-то похоже на создание катсцены, нужно переводить камеру на говорящего или перевести на какой-то объект, так что я считаю, лучше сразу делать, как нужно, сами фразы пишутся легко и быстро, а вот оформить всё это, привязать к условиям, это кхм довольно трудоемко.

Не рой другому яму... пусть сам роет.
Lavallet   Сообщение №468 написано: 22 Июня 2017 в 19:15 | Отредактировано: Lavallet - Четверг, 22 Июня 2017, 20:02



Цитата FalconRR ()
то потом трудно будет вспомнить, на какую фразу, что повесить
Для этой цели и придумали комментарии, которые заносятся в секцию «Scripting Comments» к каждой реплике. Сценарист просто сообщает словами скриптеру, что от него требуется и при каких условиях эта реплика «выстреливает». Со скриптами пока лучше не заморачиваться, это дело комплексное, лучше доверить человеку, который в этом действительно хорошо разбирается, иначе работа вообще с места не сдвинется, да и потом править ошибки будет сложнее. С кат-сценами не работал (в NWN2 в это плане всё по-другому и несколько примитивнее), но видимо да, из того что слышал, с ними придётся повозиться.
Цитата FalconRR ()
с жестами, позами, сменой позиций камеры, выражениями эмоций, а если участников разговора несколько, то вообще ахтунг
Я, конечно, не специалист во всё этом, но не думаю, что тут что-то сильно поменялось со времен NWN2. У каждого диалогового узла (реплики) в dlg-файле просто есть настройки, где выставляются эмоции и жесты говорящего при произнесении этой конкретной фразы (информацию об этом тоже нужно не забыть сообщить скриптеру). Камеру в простых диалогах tet-a-tet менять приходится в исключительных только случаях, дефолтная сама подбирает нужные ракурсы и со своими задачами справляется нормально. С несколькими участниками тоже ничего сложного не должно быть, у каждой реплики можно задавать её «хозяина» (speaker)... Но я могу ошибаться, пока что руки не дошли до всего этого.

FalconRR  Offline Сообщение №469 написано: 22 Июня 2017 в 20:17 | Отредактировано: FalconRR - Четверг, 22 Июня 2017, 20:18


Толстожопый жиробас


190
Цитата Lavallet ()
Для этой цели и придумали комментарии, которые заносятся в секцию «Scripting Comments» к каждой реплике.
Согласен, можно так поступить.
Цитата Lavallet ()
У каждого диалогового узла (реплики) в dlg-файле просто есть настройки, где выставляются эмоции и жесты говорящего при произнесении этой конкретной фразы (информацию об этом тоже нужно не забыть сообщить скриптеру). Камеру в простых диалогах tet-a-tet менять приходится в исключительных только случаях, дефолтная сама подбирает нужные ракурсы и со своими задачами справляется нормально. С несколькими участниками тоже ничего сложного не должно быть, у каждой реплики можно задавать её «хозяина» (speaker)... Но я могу ошибаться, пока что руки не дошли до всего этого.
А здесь не согласен, жесты, позиции настраиваются в редакторе сцены. И дефолтная камера ничего сама не подбирает, вообще не двигается и не переводит камеру ни на кого, всё-время в одном положении, тут тоже редактор сцены задействуется и выставляется несколько камер, а то и несколько десятков камер. Премерно вот так выглядит первый разговор с Затрианом, с участием сопартийцев, в данном случае 11 камер с настройками, и здесь еще не показаны настройки жестов и поз, эмоции согласен, выставляются в настройках к диалогу, но всё равно не работают, пока не сделаешь VO и FaceFX.

Не рой другому яму... пусть сам роет.
Nalia   Сообщение №470 написано: 22 Июня 2017 в 20:43



Цитата FalconRR ()
а с твоими условиями для компаньона будет такое дерево диалога,
Это ты еще не все диалоги и текст видел, вот там точно жесть :D 
Цитата Lavallet ()
Конечно, диалог - это просто файл .dlg, который ты потом прикрепляешь к выбранному существу (.utc) или любому другому объекту
Спасибо, надо будет хотя бы попробовать с чего-то малого. Может, с того же диалога вербовки, который уже есть в игре, только новые варианты добавить. Строение приблизительно представляю, все-таки другой мод на компаньона переводила. Но надо еще в интернете посмотреть)
Цитата FalconRR ()
чем-то похоже на создание катсцены, нужно переводить камеру на говорящего или перевести на какой-то объект,
Ну, это не обязательно, у Гилмора вообще все примитивно: камера никогда на морду лица ГГ не переключалась. Онли Гилмор - ближе, дальше :D Но это я именно про диалоговые кат-сцены, а не всякие обнимашки-целовашки. Думала, я и про кат-сцены. Если это поможет, может, взять какие-то настройки из кат-сцен разговоров Огрена со Стражем-гномом? Да, я мало что в этом понимаю, но всегда ищу способ облегчить работу)))
Цитата Lavallet ()
У каждого диалогового узла (реплики) в dlg-файле просто есть настройки, где выставляются эмоции и жесты говорящего при произнесении этой конкретной фразы
Только что проверила. Все так. В диалоге выбирается эмоция и анимация к фразе, ну, и, конечно, скрипты, плот-файлы.
Цитата FalconRR ()
нужно на диалог сделать VO а потом FaceFX
Вот это мой кошмарный сон :D Возможно, все не так страшно, Лирух обещал научить, как только я актера для Гилмора найду, но достойных пока нет, да вообще никаких нет. Раньше были, но то микрофон был ужасен, то голос совсем не тот. Но-таки я надеюсь и верю)))

FalconRR  Offline Сообщение №471 написано: 23 Июня 2017 в 00:22


Толстожопый жиробас


190
Цитата Nalia ()
Только что проверила. Все так. В диалоге выбирается эмоция и анимация к фразе, ну, и, конечно, скрипты, плот-файлы.
Всё так, только любая поза или действие или смена вида камеры, настраивается через Stage. Кстати, можно автоматически сгенерировать эмоции и жесты на весь узел диалога, иногда неплохо получается, очень иногда... но всегда можно подредактировать.
Цитата Nalia ()
Вот это мой кошмарный сон  Возможно, все не так страшно, Лирух обещал научить, как только я актера для Гилмора найду, но достойных пока нет, да вообще никаких нет. Раньше были, но то микрофон был ужасен, то голос совсем не тот. Но-таки я надеюсь и верю)))
Вот уж проблема, тоже мне. Главное озвучку запиши, а VO и FaceFX я тебя сам научу, да там и учить особо нечему. Вообще, лично я собираюсь, при добавлении компаньона или просто диалога для квеста, найти подходящий источник, например игру или фильм и нарезать оттуда нужные фразы, можно даже из ДАО нарезать нужные фразы, там у многих голоса повторяются, естественно надо диалог построить таким образом, чтобы не попадались особо специфичные фразы.
Вот я делаю квест для своего проекта, так у меня в катсцене дракон, говорит голосом Смауга, просто нарезал нужные фразы и наложил на музыку, довольно эпично получается, правда у меня и модель дракона, тоже Смауг. Вообще планирую построить квест с минимальным участием голосовой озвучки, будем говорить с предметами, инфу получать из кодексов и описаний, а где понадобится озвучка, ну прям край, я уже говорил, нарежу подходящую откуда-нибудь и подстрою диалог под неё.

ЗЫЫ Я честно говоря не в теме, но знаю точно, что школота в CS говорит своим мужским голосом, а на выходе получается женксий голос, причем очень похож. Может, кто просветит, что это и если это так, то можно и тембр и интонации тогда синтезировать.  Вот, даже что-то нарыл, интересно насколько всё это плохо/хорошо получается...

Не рой другому яму... пусть сам роет.
Nalia   Сообщение №472 написано: 30 Июня 2017 в 17:06



FalconRR, эх, я, наверное, надоедаю со своими "спасибо", но, действительно, спасибо!
А вот теперь мне нужно консультация по скриптам :D В общем, после перевода "Усмиренная София", обнаружила ее с английским именем, но я все сделала правильно, начала рыться в файлах, в файле gda обнаружила ссылку на скрипт "bp_sophia_scr", хорошо, что автор заложил(а) исходники в мод. Открываю исходник NotePad++, получаю код:

Код
// This script is triggered on entry to the mages tower, level 2
// The generic elven female tranquil is given a name
// and the Sophia plot is started.

#include "wrappers_h"
#include "plt_bp_sophia_plot"

void main()

// Start quest, if not already started
    if (!WR_GetPlotFlag(PLT_BP_SOPHIA_PLOT, FIND_SOPHIA))
    {
        WR_SetPlotFlag(PLT_BP_SOPHIA_PLOT, FIND_SOPHIA, TRUE);
    }
// Sophia's name doesn't seem to be retained in save games, so it needs to be set every time
    object oSophia = GetObjectByTag("bhm200cr_f_e_tranquil");
    SetName(oSophia,"Sophia");
}

Вот оно: SetName(oSophia,"Sophia");. И вот как мне теперь поступить? Если впишу имя на русском, наверняка, будут кракозябры. Не говоря уже о том, что русское "о" просто не вписывается :D Просто стереть, наверное, тоже нельзя, судя по комментарию к скрипту. Или можно? Но ведь локализаторы как-то переводили имена персонажам над головами! Если глянуть в сохранение с переведенным именем будет так: 73579 (то есть, просто ID, без букв), а если взять мод, то будет так: 7284956429:Sophia (к примеру). Что делать, подскажите кто-нибудь, плиз ^_^ 
И еще, я чисто ради любопытства все-таки стерла имя Софии в скрипте и попыталась его компилировать, вылезла эта ошибка:
Код
E: 16:37:32 - bp_sophia_scr.nss - bp_sophia_scr.nss(11): Variable defined without type (while compiling var_constants_h.nss)


Фиг знает, что Тулсету не так. Не переведенный файл plt_bp_sophia_plot.plo, предварительно стерев приставку plt_, находится по адресу: C:\Users\Admin\Documents\BioWare\Dragon Age\modules\Single Player\override\toolsetexport. Работаю из-под модуля Single Player. Знаю, что лучше свой модуль создать, но это же я :D

Lavallet   Сообщение №473 написано: 30 Июня 2017 в 20:26 | Отредактировано: Lavallet - Суббота, 01 Июля 2017, 00:12



Nalia,
Замени
Код
SetName(oSophia,"Sophia");
на
Код
SetLocName(oSophia, 73579);
и перекомпилируй скрипт.

73579 - это ID строки с именем Софии в файле .TLK? Если нет, поищи сама нужную строку и вставь её номер. Можешь ещё попытать удачи с 7284956429.
У меня DAO не установлен, к сожалению. Если у мода свой TLK-файл, там номер по какой-то хитрой формуле высчитывается, скорее всего. smile2
По поводу ошибки: если не убирать эту строчку, компилируется нормально? Если нет, убедись, что у тулсета есть доступ ко всем тем скриптам, на которые ссылается твой скрипт выше и те сами в свою очередь. Если они находятся внутри какого-то модуля, то нужно предварительно открыть этот модуль (ну или просто вытащить нужные файлы и положить рядом с твоим файлом, но лучше так не делать) и затем уже компилировать скрипт.
Цитата Nalia ()
Не переведенный файл plt_bp_sophia_plot.plo, предварительно стерев приставку plt_
Так, а зачем стирать приставку, поясни?

P.S. Ничего, что я на «ты»? Привычка с англоязычных форумов, там с этим попроще.

Nalia   Сообщение №474 написано: 01 Июля 2017 в 16:39



Цитата Lavallet ()
Если у мода свой TLK-файл, там номер по какой-то хитрой формуле высчитывается, скорее всего.
К сожалению, у мода нет .tlk файла, пришлось его самой наполнять. Но я подумала, что подойдет и ID, который прописан в файле bp_sophia.utc. Вообще, это оно и есть, и если такой катавасии со скриптами нет, то игра берет значения из этих файлов (имя над башкой).
Цитата Lavallet ()
По поводу ошибки: если не убирать эту строчку, компилируется нормально?
Было дело в этой строчке скрипта:
   
Код
if (!WR_GetPlotFlag(PLT_BP_SOPHIA_PLOT, FIND_SOPHIA))
Тулсету не нравилась вторая скобка, я ее убрала, но теперь другая ошибка вылазит:

Код
E: 16:10:16 - bp_sophia_scr.nss - bp_sophia_scr.nss(12): No right bracket on expression
Теперь ему не нравится 12-ая строка, то есть вот это "{". Без понятия, как это по-научному называется :D В общем, потрепала немного Гугл, пока ничего спасительного для себя не нашла, буду еще искать. Если бы я хоть чуть-чуть язык скриптов DAO знала.
Цитата Lavallet ()
Так, а зачем стирать приставку, поясни?

Тоже ошибка вылезала, не помню, какая именно. Но что-то про то, что невозможно то ли открыть, то ли прочитать данный тип .plo файла. Оно ж по правилам (по моему мнению))) нужно сначала создать файл .plo (без приставки plt_), расставить там флаги, файл экспортировать, потом написать к нему скрипт. А вот в скрипте уже дописать приставку, в моем случае это:
Код
#include "plt_bp_sophia_plot"
Может, мыслю или делаю что-то не так, но этой ошибки не стало и то хорошо.
Цитата Lavallet ()
P.S. Ничего, что я на «ты»? Привычка с англоязычных форумов, там с этим попроще.
Я не против :) Правда, в английском все на "вы", но действительно проще - всего один вариант :D

Lavallet   Сообщение №475 написано: 01 Июля 2017 в 18:38 | Отредактировано: Lavallet - Воскресенье, 02 Июля 2017, 17:26



Скобку убирать нельзя, он по делу ругается :)

Это обычный блок кода с условным оператором IF: «если какое-то условие истинно, сделай то-то». «Какое-то условие» здесь это «!WR_GetPlotFlag(PLT_BP_SOPHIA_PLOT, FIND_SOPHIA)». Давай разберём его по полочкам. Функция WR_GetPlotFlag(...) смотрит, установлен ли для квеста с Софией флаг «plot» и возвращает либо TRUE (истина), если установлен, либо FALSE (ложь) в противном случае. Восклицательный знак перед этой функцией означает логическое отрицание. Собирая всё вместе, мы видим, что условие целиком будет возвращать TRUE, если флаг установлен, и FALSE, если установлен. Теперь насчёт «сделай то-то»: оно заключено в фигурные скобки, иначе компилятор не поймёт, какой конкретно код относится к IF (если там несколько строк, например), и в данном случае на его месте стоит одна строка WR_SetPlotFlag(PLT_BP_SOPHIA_PLOT, FIND_SOPHIA, TRUE), которая выражает действие: установи флаг «plot» для квеста с Софией. Т.е. целиком этот блок с IF говорит следующее: «если для квеста с Софией не установлен флаг «plot», установи его». Если «какое-то условие» даёт FALSE, код в фигурных скобках просто не выполняется и скрипт идёт дальше.
Код
if (какое-то условие)
{
     сделай то-то
}

Если ошибка и есть где-то, то она не в этом скрипте, тут с точки зрения синтаксиса всё правильно написано. Потому и посоветовал обратить внимание на другие скрипты. Ему не нравится, похоже, что в функцию WR_GetPlotFlag(...) подставляется переменная неизвестного типа. Переменные PLT_BP_SOPHIA_PLOT и FIND_SOPHIA определяются в других скриптах, на которые он ссылается и из которых он должен их подцепить при компиляции. Возможно, он просто не может найти их, вот и спотыкается на этой строчке.

Цитата Nalia ()
Правда, в английском все на "вы", но действительно проще - всего один вариант
Это как посмотреть. В английском you не несёт такого преднамеренно уважительного и формального оттенка как «вы» в русском. И к незнакомому человеку, и к брату\сестре\мужу\любому родственнику ты всегда обращаешься одинаково как you, независимо от степени вашей близости. И при переводе мы уже сами должны решать, в зависимости от контекста, какую лучше форму использовать: «ты» или «вы». Учитывая неформальный стиль общения на подавляющем большинстве форумов, это всё-таки русское «ты». И вообще я сторонник мнения, что форму «вы» в интернете нужно использовать только в формальной переписке или когда есть твёрдая уверенность, что собеседник намного старше тебя :)

Nalia   Сообщение №476 написано: 02 Июля 2017 в 19:26 | Отредактировано: Nalia - Воскресенье, 02 Июля 2017, 19:27



Lavallet, спасибо большое, да, недосмотрела :) Ну, тогда не знаю, в чем причина. Буду искать на тему "WR_GetPlotFlag", ведь Тулсет ругается именно на эту, 11-ую, строку. Даже если ничего в скрипте не менять, а просто попытаться компилировать исходный текст. Тулсет всегда запускается от имени администратора, полноценный доступ к базе есть. А вот этот скрипт "var_constants_h.nss", который указывается в ошибке, он один из главных, его скомпилировать нельзя, да это и не нужно.

Добавлено (02 Июля 2017, 19:26)
---------------------------------------------
В общем, крутила, гуглила, экспериментировала, предыдущую проблему поборола, убрав фигурную скобку, КАРЛ! lol   Но Тулсет посчитал, что так просто я не отделаюсь. Поэтому сейчас застряла на данном этапе, на скрине видно и ошибку, и подсказку от Тулсета, которая мне почти ничего не дает. Думаю, ошибка уже не такая серьезная, сейчас нужно отойти и искать дальше. Для меня это все дается тяжело, даже с подсказками от Тулсета и интернета)))

Lavallet   Сообщение №477 написано: 02 Июля 2017 в 19:55 | Отредактировано: Lavallet - Воскресенье, 02 Июля 2017, 20:51



Nalia,
О господи... :D Говорю же, там с синтаксисом всё нормально. Это так не работает... Ты убрала скобку, и вот что получилось в итоге: для IF это не критично, т.к. если «сделай-то» состоит из одной строчки, то фигурные скобки можно опустить, т.е.

Код
if (какое-то условие)
     сделай то-то

даёт тот же эффект, что и

Код
if (какое-то условие)
{
     сделай то-то
}
в данном случае.

НО компилятор теперь думает, что вторая фигурная скобка, которую ты не удалила, относится к void main(). А поскольку за этой скобкой следует ещё какой-то непонятный код (с точки зрения компилятора), которого там не должно быть, и к тому же у последней закрывающей фигурной скобки нет открывающей точно такой же скобки, поэтому он и выдаёт ошибку... Удали вторую фигурную скобку, оставшуюся от IF, и ты получишь ту же самую ошибку в строчке с WR_GetPlotFlag(...), с которой начинала. Я тебе даже дал подсказку: проверь переменные, они должны быть в одном из скриптов, которые подключаются к твоему скрипту через #include в начале (это специальные скрипты, которое содержат только вспомогательную информацию для других скриптов, их компилировать не нужно). Если этих переменных там нет, он никогда не скомпилируется.

И ещё, убери void перед SetLocName. Это ошибка. Долго объяснять, но void используется при создании функции с нуля, при вызове он не нужен.
Код должен выглядеть так:


А ещё лучше скинь сюда текст plt_bp_sophia_plot.nss.

FalconRR  Offline Сообщение №478 написано: 04 Июля 2017 в 19:14 | Отредактировано: FalconRR - Вторник, 04 Июля 2017, 19:19


Толстожопый жиробас


190
Nalia, Скинь пожалуйста ссылку на этот мод. И создай уже свой модуль, это раз. PLOT-файлы по умолчанию не являются скриптами и чтобы скрипт смог взаимодействовать с ними и ставится префикс plt_, если его просто стереть, то скрипт не сможет взаимодействовать с этими файлами, даже, если это убирает ошибку. На последнем скрине, тулсет четко тебе говорит, что неправильно записано имя. И вообще, для общего развития, всё что находится в папке module действует именно на этот модуль, то есть из-под другого модуля его тулсет не увидит, всё что находится в папке core, действует на всё и будет видно из-под любого модуля. Мой совет, создай правильно новый модуль, расширяющий Single Player, в строке Script при создании модуля, замени "Core Script" на "none", далее в Manage Module, жмякни Hierarchy и сними галку с Single Player, скомпилируй plot-файл из этого модуля, чтобы он был виден, обрабатывающему скрипту из любого места, он попадет в папку Documents\Bioware\Dragon Age\AddIns\имя модуля\core\override\toolsetexport\. Дальше верни галку на Single Player в Hieararchy на место и попробуй скомпилировать скрипт, если всё нормально, он попадет в папку \имя модуля\module\override\toolsetexport\. А с именем надо что-то решать.
Прошу прощения, я не очень внимательно читал тему, голова плохо варит (болею), так что, если что не так, думаю Lavallet меня поправит. А вообще конечно лучше всего самому посмотреть на этот мод.

Не рой другому яму... пусть сам роет.
Nalia   Сообщение №479 написано: 04 Июля 2017 в 19:31



Цитата Lavallet ()
О господи...
Да хоть господи, боже мой. Писала же, что я полный нубяра, еще и невнимательная, поэтому давай без этого, плес. Можно подумать, мне нравится, что Тулсет непонятные ошибки выдает даже при компиляции исходного скрипта. А изучать и ошибаться совсем не зазорно, никто не рождается с готовыми знаниями в голове ^_^ 
Цитата FalconRR ()
Скинь пожалуйста ссылку на этот мод.
Пожалуйста. Но ошибка с именем - это мои совсем неудачные эксперименты. Там Тулсету непонятна 11-ая строка. Вылазит эта ошибка:
Код
E: 16:37:32 - bp_sophia_scr.nss - bp_sophia_scr.nss(11): Variable defined without type (while compiling var_constants_h.nss)
Это получается, мне нужно заново самой создать plot файл? Ну, и танцы с бубном. Я сильно в тему не вникала, но в NWN2, вроде, можно прямо в скрипте переводить. А в DAO после этого кракозябры полезут.

FalconRR  Offline Сообщение №480 написано: 05 Июля 2017 в 01:59 | Отредактировано: FalconRR - Среда, 05 Июля 2017, 02:04


Толстожопый жиробас


190
Nalia, Ну имя у меня получилось сразу сменить и скрипт скомпилировать, с помощью небольшой хитрости. Осталось 2 проблемы, имя я могу сменить только на латиницу или цифры и перестали работать скрипты запуска квеста с Софией. Похоже правда придется заново писать plot со всеми диалогами и развитием событий. В принципе я уже начал, там не так много, посмотрим, что из этого получится.
Цитата Nalia ()
Ну, и танцы с бубном. Я сильно в тему не вникала, но в NWN2, вроде, можно прямо в скрипте переводить.
Ну если базу данных тулсета русифицировать, то я думаю возможно.

Добавлено (05 Июля 2017, 01:59)
---------------------------------------------
Nalia, Переписал заново PLOT, скомпилировал скрипт, заменил все UID во всех DLG, всё работает, скрипт компилируется, имя меняется, София разговаривает, но на русском сделать её имя никак и похоже, судя по вики, таким способом, это сделать невозможно. Я вижу 2 варианта, это русификация базы данных тулсета или стирание этой строки в скрипте и перевод обычным способом, с переносом в TLK и удалением англ. названия в UTI, но тогда новое имя присвоится, только с началом новой игры.
Вот, что пишет Вики:

SetName

Sets an object's non-localized name.
void SetName(
object oObject,
string sName
);

Description

"Overrides an object's name with non-localized text. Non-localized names have a higher priority than localized names."
То есть, SetName переписывает имена объектов, нелокализованным текстом, нелокализованный текст имеет приоритет выше, что локализованный, соответственно... дудки, SetName всегда будет перебивать, перевод в TLK.
Единственное, что я могу сделать, поскольку уже сделал)) это перевести обычным способом, то есть в TLK, но работать будет, только с началом новой игры, как то так. Русифицировать БД я не собираюсь))
Возможно, кто-то другой, сможет это изменить, к сожалению моих знаний не хватает.

Не рой другому яму... пусть сам роет.
Форум » Dragon Age » Dragon Age: Origins » Изучаем создание модов (Рано или поздно мы начнём делать свои плагины.)
Поиск: