Скажите, а персонажей из дополнений можно переодевать только через оверриде? Суть вот в чем. Взял я перса из Пика солдата. Переодел его в шмот из мода и закинул его файл в оверриде. Все файлы вещей с него в аддинсе оставил. Захожу в игру - перс голый, сет-бонус не работает. Перекидываю файлы обмундирования в оверриде - перс одетый, сет-бонус включается. Но отключается tlk-файл. Проще говоря вместо новых названий и описаний - пусто...
Изменение репутации для пользователя FalconRR
FalconRROffline
Сообщение №452
написано: 1 июня 2017, 06:00
| Отредактировано: FalconRR - 1 июня 2017, 06:10
Скажите, а персонажей из дополнений можно переодевать только через оверриде? Суть вот в чем. Взял я перса из Пика солдата. Переодел его в шмот из мода и закинул его файл в оверриде. Все файлы вещей с него в аддинсе оставил. Захожу в игру - перс голый, сет-бонус не работает. Перекидываю файлы обмундирования в оверриде - перс одетый, сет-бонус включается. Но отключается tlk-файл. Проще говоря вместо новых названий и описаний - пусто...
Не до конца понял суть вопроса... но, могу сказать, что папка Override имеет наивысший приоритет, видимо, когда файлы не в Override, то движок, согласно приоритету, пытается одеть перса обратно, но так-как файлы обмундирования заменены, он этого сделать не может, по этому перс голый. Насчет отключения tlk, а что мешает и tlk тоже в Override перенести? И вообще, такие вещи, как переодевание, добавление персонажей, placeable предметов, изменение статов ванильных вещей, создание новых дверей и т.д. в обязательном порядке интегрируются в игру, через PRCSCR систему, иначе неизбежны глюки, баги шмаги, конфликты с очень многими модами и вообще всё плохо и печально. Вопросов мне, по поводу работы этой системы, можно не задавать, я пока в процессе расковыривания всего этого механизма, по этому, пока сам пользуюсь дуболомным методом, прямого редактирования.
Overview PRCSCR (Post Release Content Script) is a sytem that executes custom scripts on entry into a game area in a manner that is fully compatible with existing campaign resources and 3rd party mods. The custom script can add the necessary hooks for new content to the existing area; placing items on vendors/in containers, adding map waypoints, spawning NPCs, adding doors/transitions to new areas, etc. This system is used by Bioware's DLC to add new content hooks, and it is the preferred option for integrating new content because it does not modify or change any existing campaign resources (e.g. it is not necessary to modify and override existing areas, which is not compatible with other mods trying to affect the same area). PRCSCR M2DAThe system works by using an M2DA to specify a custom script to run when entering an area list (alternately, the script can be told to run on entering ANY area list). If multiple M2DAs specify a script to run for the same area list, ALL of these defined scripts will be run, preventing any compatibility issues and allowing for everyone's custom scripts to get a chance to run and do their thing. The M2DA override for the PRCSCR system is PRCSCR.xls. ScriptsThe usefulness of PRCSCR is that it can run ANY custom script you want. Anything that you can add to the game via scripting can therefore be compatibly added to an existing area. There is a collection of PRCSCR Script Templates that provide PRCSCR scripts for several common tasks. Note: The script will be run every time the player enters the specified area list, so plot flags or similar methods are needed in the script to ensure that changes are only made once to the area. Note: A limitation on scripts is that you cannot add merchants or stages via scripting. To add a merchant to an area with PRCSCR, a workaround would be necessary (e.g. creating the merchant in a custom area attached to the same area list that is deployed with the mod, then moving the merchant with PRCSCR to the existing area). Note: An area list can have several areas. You can't predict which area the player will be in when the area list loads. Fortunately, GetObjectByTag can be used to refer to any object in the current area list (even if it isn't in the current area). Note: You can have a different script for each area list. If you prefer to have one script for all area lists, you may need to test which area list has loaded. A neat way of doing that is IsObjectValid(GetObjectByTag("area-tag")). Usage ScenariosWhere it applies:
You have made a new area and need to add a door to an existing location that transitions to your new area. With PRCSCR you can spawn an entrance door in an existing area without having to modify the area resources directly.
You have made a new item. With PRCSCR you can add the new item to an existing vendor or an existing container without having to edit the vendor/container resource or the area that contains that resource.
You have made a new map pin on the world map for a new area. With PRCSCR, you can "spawn" the map pin when the player next enters the game, or in response to certain plot or area conditions, including conditions based on main campaign plot flags (e.g. only after Lothering has been destroyed).
Where it doesn't apply:
You have made a new interior area and are placing items or NPCs in this area. Because the new area is unique content for your mod, you do not need to use PRCSCR to modify it. However, you would still probably use PRCSCR to provide a link to your new area from an existing area/world map.
Не рой другому яму... пусть сам роет.
Изменение репутации для пользователя Apriley
AprileyOffline
Сообщение №453
написано: 2 июня 2017, 08:59
| Отредактировано: Apriley - 2 июня 2017, 09:02
FalconRR, можно вопрос к спецу - с чего начинать работу со скриптами? Для чайника, который вообще с этим разделом дела не имел, в общем. А то во все гайды и иже с ними написаны, похоже, для тех, кто уже знает, откуда эти скрипты берутся и как правильно редактируются.
Изменение репутации для пользователя FalconRR
FalconRROffline
Сообщение №454
написано: 2 июня 2017, 14:17
| Отредактировано: FalconRR - 2 июня 2017, 14:19
FalconRR, можно вопрос к спецу - с чего начинать работу со скриптами? Для чайника, который вообще с этим разделом дела не имел, в общем. А то во все гайды и иже с ними написаны, похоже, для тех, кто уже знает, откуда эти скрипты берутся и как правильно редактируются
Я бы с удовольствием, только спец из меня... У нас со скриптами взаимное послание друг другу сходить в лес. Я в принципе понимаю, как и что я делаю, многое получается, но чтобы без глюков... это редко. Вообще, если хотите хорошо разбираться в скриптах ДАО, да и многих других игр, что даст Вам возможность, буквально пилить игру под себя, почти любые хотелки будут возможны, тогда начните изучать язык С, достаточно самых самых основ, в дебри лезть не стоит. Затем, начните осваивать язык DAScript,тут обзор языка, а детальная информация в файле "dascript.chm" по адресу : "Dragon Age\packages\core", предварительное изучение основ С, в разы облегчит Вам понимание DAScript. Ну и немножко страничек накидаю, по скриптам ДАО, если не хотите учить С. Можно в принципе и так разобраться: Основная информация о скриптах, Примеры скриптов, Система PRCSCR, PRCSCR.xls, Шаблоны скриптов PRCSCR, Система Plot-файлов, Определение события и его обработка, Подмена обработки событий ну и там, по ссылками переходите. Вот, советую начать с этого видео (в конце поста) и просто повторить и сделать такой же квест, потом постепенно пытаться делать простенькие скрипты, не просто читать, а именно пытаться делать, со временем будете все глубже понимать механику и будет всё легче и легче.
FalconRR, благодарю, буду разбираться. Мне по сути и нужны-то самые простые скрипты - новый предмет в инвентарь добавить, в сундук, или торговцу какому.
Изменение репутации для пользователя FalconRR
FalconRROffline
Сообщение №456
написано: 2 июня 2017, 18:46
| Отредактировано: FalconRR - 2 июня 2017, 19:08
Мне по сути и нужны-то самые простые скрипты - новый предмет в инвентарь добавить, в сундук, или торговцу какому.
Это проще простого. Быстро научитесь. Я вот пытаюсь одновременно создать новую область, с новыми объектами, с переходом, с карты мира, новое существо/существ и еще целую цепочку событий, с заданиями, диалогами и кодексами, и всё это с помощью PRCSCR, чтобы конфликтов и багов не было на 99%, но все время, где-то в цепочке происходит сбой, блин, умаялся уже. Есть более простой путь, но глупый, поскольку конфликты с другими модами, гарантированы, это напрямую в тулсете редактировать персонажей, объекты, добавлять новых существ, так же прямо в тулсете, можно открыть инвентарь любого торговца и ящика и добавить туда нужный предемет, но поскольку мир игры управляется скриптами, то от малейшего изменения событий или установки мода, каким то образом затрагивающего этого торговца, или даже область, где он стоит, сразу наступят последствия такого метода. Почти все вещи, неписи, сундуки, существа и т.д и т.д в игре, добавляются, убираются, в общем управляются скриптами. По этому, это единственно верный путь, для изменения игры, не трогать основные ресурсы, создать модуль, расширяющий Single Player и уже в нем творить, но добавлять все следует, через скрипты. Что-то много накалякал, пойду дальше головой ап стену биться. ЗЫЫ По сути PRCSCR довольна простая систем, её смысл, написать свой скрипт для управления определенными событием, можно с кучей схем (PLOT-файлов), перехватить управление событием у главного скрипта и направить его в свой обработчик и сделав своё дело, вернуть управление обратно, главному скрипту, хотя возвращать не обязательно, зависит от события и от многих других факторов. Также можно последовательно передавать управление из одного скрипта, другому, потом третьему и до бесконечности.
Ну... это пока совсем не про меня Я пока останавливаюсь на визуальной части игры и минимальном балансе вещей (под себя, естессно). За глаза хватает, чтобы забыть непосредственно об игре и убивать все время в тулсете)) А торговцам напрямую в магазины добавлять - вообще ужасть получится. Во-первых грузится только один раз, а во-вторых, конфликтует со всем на свете. Если utc файлы в этом плане намного менее конфликтны (ну сколько может быть изменений для одного конкретного персонажа?), то с utm, конечно, кошмар. Научусь привязывать скрипт выдачи предмета к определенному событию или диалогу - и счастью моему не будет предела
Изменение репутации для пользователя FalconRR
FalconRROffline
Сообщение №458
написано: 2 июня 2017, 20:25
| Отредактировано: FalconRR - 2 июня 2017, 20:33
Научусь привязывать скрипт выдачи предмета к определенному событию или диалогу - и счастью моему не будет предела
Не очень сложно в проверку "условия" можно вписать, например: событие "ARCHDEMON_EVENT_ONE", это первый кошмар с архидемоном, или можно сооздать условие с событием убийства, какого-нибудь монстра и только после этого выдавать предмет. Вообще можно любое условие придумать, какое в голову взбредет, даже если изначально, этого события нет (а есть практически всё, на все случаи жизни), то это событие, можно определить самому. Тут только нужно создать схему (PLOT) с проверками на событие и чтобы выдавал только один раз или наоборот, постоянно. Если нужна выдача в диалоге, то посмотрите ролик, который я оставил выше, могу еще роликов накидать, но они все на английском, без субтитров.
ЗЫ Тэг любого контейнера и AreaListName, думаю Вы без проблем найдете, поскольку всё время в тулсете сидите
после разговора с ним,покажи свой товар, не появляется окно товара, и так пару раз. Не открывается магазин.
Я понял в чем ваша пробдема. У меня тоже так пару раз было, но не с Боданом, а с торговцем в таверне Лотеринга и Горимом а Денериме. Просто у них инвентарь переполнился. Когда сильно много им вещей продашь - перестает открываться магазин. Вот поэтому я не очень приветствую вложение всех модовских вещей многострадальному Бодану.
nicksnerg, то есть, если я правильно Вас понял просто надо "разгрузить телегу" Бодану? Ну в моем случаи скорее слишком много вещей (модов) было добавлено ему.
Изменение репутации для пользователя LicimeR
LicimeROffline
Сообщение №462
написано: 8 июня 2017, 15:52
| Отредактировано: LicimeR - 8 июня 2017, 15:52
Всем Доброго времени суток !!! Уважаемые Мододелы (ну или как то так), не могли бы вы мне чуть чуть помочь ? Я бы хотел вот в этот Сет Брони https://modgames.net/load/1/bronja/pervonachalnaja_bronja_dunkana/63-1-0-219 добавить статы, но не знаю как. Какие добавить статы я написал бы в личку. Буду очень вам благодарен. Хочу сделать чисто для себя, а то пока в отпуске, решил пройти. Красивые доспехи нашёл, а вот статы там не найс (((
гляжу никто не хочет вам помочь... напишите мне в личку что вы хотите поменять.
Уже давно помог))
Добавлено (16 Июня 2017, 21:05) --------------------------------------------- Nalia, Помните, у нас с Вами был разговор, насчет, один меш и две ткстуры, кажется была куртка и штаны? На самом деле движок такое поддерживает, главное чтобы была не мультитекстура. Для примера: сейчас работаю над одним мечом (уел он меня уже), так вот, у меня в одной моделе и меше, используется 5 разных текстур. Так что, если все грамотно в максе сделать, то на одни сапоги, можно использовать хоть 10-ок разных текстур, не обязательно объединять все в одну. ЗЫ И в том же разговоре зашла речь о скининге, двольно простая процедура, главное четко понимать, что ты делаешь, гораздо легче той же развертки, если её делать по всем правилам.
FalconRR, да ну его это моделирование, короче говоря Может быть, когда-нибудь, но сейчас не охота совсем) Кстати, песик зачетный Небось, все жители будут прятаться от такого))) А вот у меня вопрос по диалогам. Чисто теоретический. Можно лишь одни диалоги создать отдельно в Тулсете от всего остального винегрета? Чтобы текст в них вбить, и пусть в базе такими полупустыми валяются. Или это дело сильно взаимосвязано, что лучше ничего не трогать? Сорри, я в создании модов сильно не заглядывала))
Изменение репутации для пользователя Lavallet
Lavallet
Сообщение №466
написано: 22 июня 2017, 15:17
| Отредактировано: Lavallet - 22 июня 2017, 15:37
Nalia, Конечно, диалог - это просто файл .dlg, который ты потом прикрепляешь к выбранному существу (.utc) или любому другому объекту (двери, сундуку и т.д.) через поле «Conversation» в списке всех свойств этого объекта. Тут ничего не поменялось за сто лет ещё со времен первого NWN Создается диалог через стандартное меню (New -> Conversation), как и любой файл. Разумеется, нужно дать этому файлу уникальное имя, чтобы он не конфликтовал с каким-нибудь другим диалогом, который уже есть в игре или другом моде. И пусть себе потом лежит в базе и ждёт своего часа.
А вот у меня вопрос по диалогам. Чисто теоретический. Можно лишь одни диалоги создать отдельно в Тулсете от всего остального винегрета? Чтобы текст в них вбить, и пусть в базе такими полупустыми валяются. Или это дело сильно взаимосвязано, что лучше ничего не трогать? Сорри, я в создании модов сильно не заглядывала))
Ну в принципе, тебе уже ответили, я просто добавлю. В диалогах, почти на каждую фразу вешается plot или script, а с твоими условиями для компаньона будет такое дерево диалога, что если его сейчас пустым создать, просто с репликами, то потом трудно будет вспомнить, на какую фразу, что повесить и ещё немножко дегтя) для диалогов нужно делать сцены, с жестами, позами, сменой позиций камеры, выражениями эмоций, а если участников разговора несколько, то вообще ахтунг, также нужно на диалог сделать VO а потом FaceFX, чтобы губы в такт шевелились, тонкостей много, чем-то похоже на создание катсцены, нужно переводить камеру на говорящего или перевести на какой-то объект, так что я считаю, лучше сразу делать, как нужно, сами фразы пишутся легко и быстро, а вот оформить всё это, привязать к условиям, это кхм довольно трудоемко.
Не рой другому яму... пусть сам роет.
Изменение репутации для пользователя Lavallet
Lavallet
Сообщение №468
написано: 22 июня 2017, 16:15
| Отредактировано: Lavallet - 22 июня 2017, 17:02
Цитата FalconRR
с жестами, позами, сменой позиций камеры, выражениями эмоций, а если участников разговора несколько, то вообще ахтунг
Я, конечно, не специалист во всё этом, но не думаю, что тут что-то сильно поменялось со времен NWN2. У каждого диалогового узла (реплики) в dlg-файле просто есть настройки, где выставляются эмоции и жесты говорящего при произнесении этой конкретной фразы (информацию об этом тоже нужно не забыть сообщить скриптеру). Камеру в простых диалогах tet-a-tet менять приходится в исключительных только случаях, дефолтная сама подбирает нужные ракурсы и со своими задачами справляется нормально. С несколькими участниками тоже ничего сложного не должно быть, у каждой реплики можно задавать её «хозяина» (speaker)... Но я могу ошибаться, пока что руки не дошли до всего этого.
Изменение репутации для пользователя FalconRR
FalconRROffline
Сообщение №469
написано: 22 июня 2017, 17:17
| Отредактировано: FalconRR - 22 июня 2017, 17:18
У каждого диалогового узла (реплики) в dlg-файле просто есть настройки, где выставляются эмоции и жесты говорящего при произнесении этой конкретной фразы (информацию об этом тоже нужно не забыть сообщить скриптеру). Камеру в простых диалогах tet-a-tet менять приходится в исключительных только случаях, дефолтная сама подбирает нужные ракурсы и со своими задачами справляется нормально. С несколькими участниками тоже ничего сложного не должно быть, у каждой реплики можно задавать её «хозяина» (speaker)... Но я могу ошибаться, пока что руки не дошли до всего этого.
А здесь не согласен, жесты, позиции настраиваются в редакторе сцены. И дефолтная камера ничего сама не подбирает, вообще не двигается и не переводит камеру ни на кого, всё-время в одном положении, тут тоже редактор сцены задействуется и выставляется несколько камер, а то и несколько десятков камер. Премерно вот так выглядит первый разговор с Затрианом, с участием сопартийцев, в данном случае 11 камер с настройками, и здесь еще не показаны настройки жестов и поз, эмоции согласен, выставляются в настройках к диалогу, но всё равно не работают, пока не сделаешь VO и FaceFX.
Вот это мой кошмарный сон Возможно, все не так страшно, Лирух обещал научить, как только я актера для Гилмора найду, но достойных пока нет, да вообще никаких нет. Раньше были, но то микрофон был ужасен, то голос совсем не тот. Но-таки я надеюсь и верю)))
Вот это мой кошмарный сон Возможно, все не так страшно, Лирух обещал научить, как только я актера для Гилмора найду, но достойных пока нет, да вообще никаких нет. Раньше были, но то микрофон был ужасен, то голос совсем не тот. Но-таки я надеюсь и верю)))
Вот уж проблема, тоже мне. Главное озвучку запиши, а VO и FaceFX я тебя сам научу, да там и учить особо нечему. Вообще, лично я собираюсь, при добавлении компаньона или просто диалога для квеста, найти подходящий источник, например игру или фильм и нарезать оттуда нужные фразы, можно даже из ДАО нарезать нужные фразы, там у многих голоса повторяются, естественно надо диалог построить таким образом, чтобы не попадались особо специфичные фразы. Вот я делаю квест для своего проекта, так у меня в катсцене дракон, говорит голосом Смауга, просто нарезал нужные фразы и наложил на музыку, довольно эпично получается, правда у меня и модель дракона, тоже Смауг. Вообще планирую построить квест с минимальным участием голосовой озвучки, будем говорить с предметами, инфу получать из кодексов и описаний, а где понадобится озвучка, ну прям край, я уже говорил, нарежу подходящую откуда-нибудь и подстрою диалог под неё.
ЗЫЫ Я честно говоря не в теме, но знаю точно, что школота в CS говорит своим мужским голосом, а на выходе получается женксий голос, причем очень похож. Может, кто просветит, что это и если это так, то можно и тембр и интонации тогда синтезировать. Вот, даже что-то нарыл, интересно насколько всё это плохо/хорошо получается...
FalconRR, эх, я, наверное, надоедаю со своими "спасибо", но, действительно, спасибо!А вот теперь мне нужно консультация по скриптам В общем, после перевода "Усмиренная София", обнаружила ее с английским именем, но я все сделала правильно, начала рыться в файлах, в файле 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.
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");. И вот как мне теперь поступить? Если впишу имя на русском, наверняка, будут кракозябры. Не говоря уже о том, что русское "о" просто не вписывается Просто стереть, наверное, тоже нельзя, судя по комментарию к скрипту. Или можно? Но ведь локализаторы как-то переводили имена персонажам над головами! Если глянуть в сохранение с переведенным именем будет так: 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. Знаю, что лучше свой модуль создать, но это же я
Изменение репутации для пользователя Lavallet
Lavallet
Сообщение №473
написано: 30 июня 2017, 17:26
| Отредактировано: Lavallet - 30 июня 2017, 21:12
Nalia, Замени
Код
SetName(oSophia,"Sophia");
на
Код
SetLocName(oSophia, 73579);
и перекомпилируй скрипт.
73579 - это ID строки с именем Софии в файле .TLK? Если нет, поищи сама нужную строку и вставь её номер. Можешь ещё попытать удачи с 7284956429. У меня DAO не установлен, к сожалению. Если у мода свой TLK-файл, там номер по какой-то хитрой формуле высчитывается, скорее всего. По поводу ошибки: если не убирать эту строчку, компилируется нормально? Если нет, убедись, что у тулсета есть доступ ко всем тем скриптам, на которые ссылается твой скрипт выше и те сами в свою очередь. Если они находятся внутри какого-то модуля, то нужно предварительно открыть этот модуль (ну или просто вытащить нужные файлы и положить рядом с твоим файлом, но лучше так не делать) и затем уже компилировать скрипт.
Цитата Nalia
Не переведенный файл plt_bp_sophia_plot.plo, предварительно стерев приставку plt_
Так, а зачем стирать приставку, поясни?
P.S. Ничего, что я на «ты»? Привычка с англоязычных форумов, там с этим попроще.
P.S. Ничего, что я на «ты»? Привычка с англоязычных форумов, там с этим попроще.
Я не против Правда, в английском все на "вы", но действительно проще - всего один вариант
Изменение репутации для пользователя Lavallet
Lavallet
Сообщение №475
написано: 1 июля 2017, 15:38
| Отредактировано: Lavallet - 2 июля 2017, 14: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
Nalia
Сообщение №476
написано: 2 июля 2017, 16:26
| Отредактировано: Nalia - 2 июля 2017, 16:27
Lavallet, спасибо большое, да, недосмотрела Ну, тогда не знаю, в чем причина. Буду искать на тему "WR_GetPlotFlag", ведь Тулсет ругается именно на эту, 11-ую, строку. Даже если ничего в скрипте не менять, а просто попытаться компилировать исходный текст. Тулсет всегда запускается от имени администратора, полноценный доступ к базе есть. А вот этот скрипт "var_constants_h.nss", который указывается в ошибке, он один из главных, его скомпилировать нельзя, да это и не нужно.
Добавлено (02 Июля 2017, 19:26) --------------------------------------------- В общем, крутила, гуглила, экспериментировала, предыдущую проблему поборола, убрав фигурную скобку, КАРЛ! Но Тулсет посчитал, что так просто я не отделаюсь. Поэтому сейчас застряла на данном этапе, на скрине видно и ошибку, и подсказку от Тулсета, которая мне почти ничего не дает. Думаю, ошибка уже не такая серьезная, сейчас нужно отойти и искать дальше. Для меня это все дается тяжело, даже с подсказками от Тулсета и интернета)))
Изменение репутации для пользователя Lavallet
Lavallet
Сообщение №477
написано: 2 июля 2017, 16:55
| Отредактировано: Lavallet - 2 июля 2017, 17:51
Nalia, О господи... Говорю же, там с синтаксисом всё нормально. Это так не работает... Ты убрала скобку, и вот что получилось в итоге: для IF это не критично, т.к. если «сделай-то» состоит из одной строчки, то фигурные скобки можно опустить, т.е.
Код
if (какое-то условие) сделай то-то
даёт тот же эффект, что и
Код
if (какое-то условие) { сделай то-то }
в данном случае.
НО компилятор теперь думает, что вторая фигурная скобка, которую ты не удалила, относится к void main(). А поскольку за этой скобкой следует ещё какой-то непонятный код (с точки зрения компилятора), которого там не должно быть, и к тому же у последней закрывающей фигурной скобки нет открывающей точно такой же скобки, поэтому он и выдаёт ошибку... Удали вторую фигурную скобку, оставшуюся от IF, и ты получишь ту же самую ошибку в строчке с WR_GetPlotFlag(...), с которой начинала. Я тебе даже дал подсказку: проверь переменные, они должны быть в одном из скриптов, которые подключаются к твоему скрипту через #include в начале (это специальные скрипты, которое содержат только вспомогательную информацию для других скриптов, их компилировать не нужно). Если этих переменных там нет, он никогда не скомпилируется.
И ещё, убери void перед SetLocName. Это ошибка. Долго объяснять, но void используется при создании функции с нуля, при вызове он не нужен. Код должен выглядеть так:
А ещё лучше скинь сюда текст plt_bp_sophia_plot.nss.
Изменение репутации для пользователя FalconRR
FalconRROffline
Сообщение №478
написано: 4 июля 2017, 16:14
| Отредактировано: FalconRR - 4 июля 2017, 16:19
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 меня поправит. А вообще конечно лучше всего самому посмотреть на этот мод.
Пожалуйста. Но ошибка с именем - это мои совсем неудачные эксперименты. Там Тулсету непонятна 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
FalconRROffline
Сообщение №480
написано: 4 июля 2017, 22:59
| Отредактировано: FalconRR - 4 июля 2017, 23:04
Nalia, Ну имя у меня получилось сразу сменить и скрипт скомпилировать, с помощью небольшой хитрости. Осталось 2 проблемы, имя я могу сменить только на латиницу или цифры и перестали работать скрипты запуска квеста с Софией. Похоже правда придется заново писать plot со всеми диалогами и развитием событий. В принципе я уже начал, там не так много, посмотрим, что из этого получится.
Цитата Nalia
Ну, и танцы с бубном. Я сильно в тему не вникала, но в NWN2, вроде, можно прямо в скрипте переводить.
Ну если базу данных тулсета русифицировать, то я думаю возможно.
Добавлено (05 Июля 2017, 01:59) --------------------------------------------- Nalia, Переписал заново PLOT, скомпилировал скрипт, заменил все UID во всех DLG, всё работает, скрипт компилируется, имя меняется, София разговаривает, но на русском сделать её имя никак и похоже, судя по вики, таким способом, это сделать невозможно. Я вижу 2 варианта, это русификация базы данных тулсета или стирание этой строки в скрипте и перевод обычным способом, с переносом в TLK и удалением англ. названия в UTI, но тогда новое имя присвоится, только с началом новой игры. Вот, что пишет Вики:
SetName Sets an object's non-localized name. voidSetName( objectoObject, stringsName ); Description "Overrides an object's name with non-localized text. Non-localized names have a higher priority than localized names." То есть, SetName переписывает имена объектов, нелокализованным текстом, нелокализованный текст имеет приоритет выше, что локализованный, соответственно... дудки, SetName всегда будет перебивать, перевод в TLK. Единственное, что я могу сделать, поскольку уже сделал)) это перевести обычным способом, то есть в TLK, но работать будет, только с началом новой игры, как то так. Русифицировать БД я не собираюсь)) Возможно, кто-то другой, сможет это изменить, к сожалению моих знаний не хватает.