Вис691 664 Опубликовано 31 июля, 2021 8 часов назад, RaggaL сказал: Привел в нормальный вид, скрипт сохраняется. Но НПС по прежнему выкрикивает только первый топик. А у тебя между if и endif ничего нет. Команды-то надо внутрь заносить, а не после) if RGLstreetCrier2REF.GetDead == 0 if RGLstreetCrier2REF.IsTalking == 0 if RGLstreetCrier2REF.IsInCombat == 0 if RGLvar == 0 RGLstreetCrier2REF.Say RGLstcr0 set RGLvar to 1 endif if RGLvar == 1 RGLstreetCrier2REF.Say RGLstcr1 set RGLvar to 2 endif ... endif endif endif Но такой вариант тоже неправильный. Смотри, как будет идти скрипт. Считаем, что внешние 3 условия выполняются. Переменная 0? Да, она изначально 0, значит выполняем 2 команды внутри. Одна из команд переводит переменную в 1. Следующее условие - переменная 1? Да, мы её только что на 1 поставили. И вновь код внутри выполнится. И т.д. Т.е. он как бы за 1 проход активирует все реплики, а это неверно. В таком случае надо изучить, что конструкция if-endif может расширяться до if-elseif-endif. Взгляни вот на такой вариант: if RGLvar == 0 RGLstreetCrier2REF.Say RGLstcr0 set RGLvar to 1 elseif RGLvar == 1 RGLstreetCrier2REF.Say RGLstcr1 set RGLvar to 2 ... endif При таком подходе, у нас не много if-endif конструкций, а всего одна. Скрипт при проходе будет искать первое условие, которое выполнится. Как только он его найдёт, он выполнит команды внутри, и выйдет из конструкции (даже если дальнейшие условия тоже выполнялись бы). При такой схеме мы за 1 проход активируем всего одну реплику. P.S. Я обратил внимание, что среди внешних условий есть RGLstreetCrier2REF.IsTalking == 0, поэтому теперь вновь верю, что этот скрипт должен работать) Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 522 Опубликовано 1 августа, 2021 В 21.07.2021 в 09:43, NIGER_7777 сказал: Всем доброго времени суток. Может кто поможет. В GECKе создал реплейсер для Вероники (новая раса под андроида, меши дефолтные, замена текстур на свои), установил в игру, предварительно Fallout Mod Manager провёл инвалидацию и с помощью Wrye Bash FNV создал патч, в Wrye Bash FNV установил теги для мода Invent.Add, Invent.Remove, NPC.Eyes, NPC.FaceGen, NPC.Hair, NPC.Race. В игре мод стал нормально, но появился баг, при разговоре с Вероникой у неё нет анимации губ. Отключаю мод, анимация есть. Пробовал отключать теги по одному, как только отключил NPC.Race, анимация появилась, но голова стала с дефолтными текстурами. Что это может быть, и как исправить, чтобы мод стал рабочим на все 100%. Возможно, меш все-таки другой, и раса андроида не имеет анимации. В этом случае, нужно переделывать меш головы. Если же все-таки новые только текстуры, возможно, что-то изменено в неписе Вероники (VoiceType например), но тогда бы и озвучка пропадала. В 30.07.2021 в 15:29, vlad8599 сказал: Народ, я походу тупой, но вы можете объяснить мне, как работает система "апгрейда" схем для создания вещей в Ф3 и SFW, какие скрипты за это отвечают? Дело в том, что я, положив болт на все запреты автора мода(SImply Uncut для Вегаса) пытался адаптировать его под SFW - автор сделал дубликаты оружия из Ф3 и схем, и когда поднимаешь схему, то тебе добавляется не оригинальная заметка, а созданная автором мода. Из-за этого апгрейд схем не работает(т.е. улучшается качество создаваемых вещей) Я пытался удалить его заметки и схемы, но это ничего не дало. Что я сделал не так? Может, удалить заметки, схемы, рецепты и оружие? Смысл этих дублей. В SFW в зависимости от количества найденных чертежей добавляется соответствующая заметка, и в соответствии с ней включается один из трех рецептов. Отличаются они, по-моему, количеством необходимых ингредиентов. Поделиться сообщением Ссылка на сообщение
vlad8599 31 Опубликовано 1 августа, 2021 26 минут назад, MagnuMspec сказал: Возможно, меш все-таки другой, и раса андроида не имеет анимации. В этом случае, нужно переделывать меш головы. Если же все-таки новые только текстуры, возможно, что-то изменено в неписе Вероники (VoiceType например), но тогда бы и озвучка пропадала. Может, удалить заметки, схемы, рецепты и оружие? Смысл этих дублей. В SFW в зависимости от количества найденных чертежей добавляется соответствующая заметка, и в соответствии с ней включается один из трех рецептов. Отличаются они, по-моему, количеством необходимых ингредиентов. А будет ли это работать, если сделать отдельный файл-патч для SFW, как я пытался сделать? Или надо только редактировать уже существующий файл мода? P.S. Мне, походу, понадобится твоя помощь, потому что часть этих дублей размещены на локациях Вегаса. Я пытался их удалить, но пока что как-то не понимаю, как заменить один лежачий предмет на другой(у меня с редактированием локаций та еще беда). Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 522 Опубликовано 1 августа, 2021 11 минут назад, vlad8599 сказал: А будет ли это работать, если сделать отдельный файл-патч для SFW, как я пытался сделать? Или надо только редактировать уже существующий файл мода? P.S. Мне, походу, понадобится твоя помощь, потому что часть этих дублей размещены на локациях Вегаса. Я пытался их удалить, но пока что как-то не понимаю, как заменить один лежачий предмет на другой(у меня с редактированием локаций та еще беда). Патчем можно. Будет немного корявенько, но работать будет. Рецептам можно прописать невыполнимое условие, вроде GetIsID Equel to Полковник Отем. А записки и оружие просто поудалять из локаций. Можно это все в FNVEdit. Находим записку/оружие, идем на вкладку Referenced By, там список мест, где оно есть, двойной клик по одному, ПКМ- copy as override - в свой патч, добавляем флаг Deleted. И так с каждым объектом на локации для каждого предмета. Еще можно в ГЕККе, но там чуть иначе, нужно будет грузить локацию, выделять объект- Delete. Поделиться сообщением Ссылка на сообщение
vlad8599 31 Опубликовано 1 августа, 2021 35 минут назад, MagnuMspec сказал: Патчем можно. Будет немного корявенько, но работать будет. Рецептам можно прописать невыполнимое условие, вроде GetIsID Equel to Полковник Отем. А записки и оружие просто поудалять из локаций. Можно это все в FNVEdit. Находим записку/оружие, идем на вкладку Referenced By, там список мест, где оно есть, двойной клик по одному, ПКМ- copy as override - в свой патч, добавляем флаг Deleted. И так с каждым объектом на локации для каждого предмета. Еще можно в ГЕККе, но там чуть иначе, нужно будет грузить локацию, выделять объект- Delete. Не-не-не, это все я понимаю. Дело в том, что я хотел заменить дубликаты, раскиданные по локациям, на те варианты, которые используются в SFW. Видимо, это надо делать через FNVEdit(удалить в GECK я и сам могу, с размещением не разобрался)? Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 522 Опубликовано 1 августа, 2021 12 минут назад, vlad8599 сказал: Дело в том, что я хотел заменить дубликаты, раскиданные по локациям, на те варианты, которые используются в SFW. Видимо, это надо делать через FNVEdit(удалить в GECK я и сам могу, с размещением не разобрался)? Можно в FNVEdit, также находя запись и меняя ее через либо ПКМ - edit, либо через повторный клик после выделения строки EditorID. В первом случае нужно знать FormID SFW-шного объекта, во втором - его EditorID. В ГЕКК можно не через удаление-добавление, а через замену с помощью Ctrl+F. Нужно знать EditorID. Поделиться сообщением Ссылка на сообщение
RaggaL 743 Опубликовано 1 августа, 2021 23 часа назад, Вис691 сказал: Взгляни вот на такой вариант: if RGLvar == 0 RGLstreetCrier2REF.Say RGLstcr0 set RGLvar to 1 elseif RGLvar == 1 RGLstreetCrier2REF.Say RGLstcr1 set RGLvar to 2 ... endif Надеюсь, я правильно понял: Спойлер scn RGLstreetCrier2SCR short RGLvar begin OnTriggerEnter if RGLstreetCrier2REF.GetDead == 0 if RGLstreetCrier2REF.IsTalking == 0 if RGLstreetCrier2REF.IsInCombat == 0 if RGLvar == 0 RGLstreetCrier2REF.Say RGLstcr0 set RGLvar to 1 elseif RGLvar == 1 RGLstreetCrier2REF.Say RGLstcr1 set RGLvar to 2 elseif RGLvar == 2 RGLstreetCrier2REF.Say RGLstcr2 set RGLvar to 3 elseif RGLvar == 3 RGLstreetCrier2REF.Say RGLstcr3 set RGLvar to 4 elseif RGLvar == 4 RGLstreetCrier2REF.Say RGLstcr4 set RGLvar to 5 elseif RGLvar == 5 RGLstreetCrier2REF.Say RGLstcr5 set RGLvar to 6 elseif RGLvar == 6 RGLstreetCrier2REF.Say RGLstcr6 set RGLvar to 7 elseif RGLvar == 7 RGLstreetCrier2REF.Say RGLstcr7 set RGLvar to 0 endif endif endif endif end Вот такой скрипт получился. В конце 4 раза endif по количеству условий if в самом начале. Но работать так, как задумано все еще не хочет. Непись все так же выкрикивает только первый топик, но намного реже. Поделиться сообщением Ссылка на сообщение
Вис691 664 Опубликовано 5 августа, 2021 В 02.08.2021 в 01:32, RaggaL сказал: Но работать так, как задумано все еще не хочет. Непись все так же выкрикивает только первый топик, но намного реже. Выглядит верно, но переменную RGLvar наверно надо сделать либо глобальной, либо в какой-то квест воткнуть. Ну и я вижу ты поменял на OnTriggerEnter - это будет срабатывать только при входе в триггер. Тебе разве так хочется? Поделиться сообщением Ссылка на сообщение
RaggaL 743 Опубликовано 5 августа, 2021 5 часов назад, Вис691 сказал: Выглядит верно, но переменную RGLvar наверно надо сделать либо глобальной, либо в какой-то квест воткнуть. Ну и я вижу ты поменял на OnTriggerEnter - это будет срабатывать только при входе в триггер. Тебе разве так хочется? Не знаю, а как будет правильно? OnTriggerEnter я посмотрел где-то в ванилле. Вообще мне не принципиально, модно чтобы он все время выкрикивал топики. Но как это сделать? BeginGameMode? А не будет ли он снижать производительность? Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 522 Опубликовано 5 августа, 2021 1 час назад, RaggaL сказал: Не знаю, а как будет правильно? OnTriggerEnter я посмотрел где-то в ванилле. Думаю, так и будет лучше, просто большой триггер сделать, пускай кричит кричалки, когда ГГ неподалеку. Поделиться сообщением Ссылка на сообщение
Вис691 664 Опубликовано 5 августа, 2021 Я бы наверно глобальную завёл, если квеста нет и он не нужен. Если какой-то квест уже есть со скриптом, то можно и там переменную завести. Так чтобы он кричал постоянно, а не только при входе в триггер (единожды), по идее, надо поменять на OnTrigger. 1 Поделиться сообщением Ссылка на сообщение
vlad8599 31 Опубликовано 7 августа, 2021 В 01.08.2021 в 15:13, MagnuMspec сказал: Может, удалить заметки, схемы, рецепты и оружие? Смысл этих дублей. В SFW в зависимости от количества найденных чертежей добавляется соответствующая заметка, и в соответствии с ней включается один из трех рецептов. Отличаются они, по-моему, количеством необходимых ингредиентов. О да, про комбинацию клавиш - это именно то, что мне надо. Спасибо. Удалять схемы и т.д. я пробовал, возможно, я не добрался до заметок. Надо попробовать будет. Поделиться сообщением Ссылка на сообщение
RaggaL 743 Опубликовано 15 августа, 2021 Снова сложности. У меня получился рабочий message box с разными кнопочками. При нажатии кнопочки должно происходить несколько событий: удаление непися из мира, выдача перка ГГ и выдача нового message box. Но последний или не появляется, или появляется спустя кучу времени, более минуты. Почему так? Кусок скрипта: Спойлер BEGIN MenuMode? 1001 If ( bAwaitingInput == 1 ) Set nButton to GetButtonPressed; If ( nButton > -1 ) Set bAwaitingInput to 0 If ( nButton == 0 ) Set nButton to -1; TSotherYouGallowREF.disable ShowMessage TSbadMessage0 Setstage TSqst 43 Return; Elseif ( nButton == 1 ) Set nButton to -1; TSotherYouGallowREF.disable ShowMessage TSbadMessage Player.addperk TSbadPerk Setstage TSqst 43 Elseif ( nButton == 2 ) Set nButton to -1; Player.Moveto RGLmarker1REF SetStage tsqst 20 Поделиться сообщением Ссылка на сообщение
Вис691 664 Опубликовано 16 августа, 2021 Могу только предположить, что MenuMode надо на GameMode поменять. Мне кажется, что сразу после нажатия на кнопку, мессаджбокс закрывается, и код обработки срабатывает только тогда, когда ты обратно какой-то мессаджбокс открываешь. Upd: по поводу глобальных переменных. Зашёл в Gameplay->Globals...->ПКМ в поле с переменными->New и создал переменную aaaTestGlobal. Затем создал тестовый скрипт: scn aaaTestScript begin GameMode if aaaTestGlobal == 0 let aaaTestGlobal := 1 endif end Всё сохранилось без проблем. 1 Поделиться сообщением Ссылка на сообщение
vlad8599 31 Опубликовано 5 сентября, 2021 Народ, у меня к вам вопрос. Возможно, что я разберусь с анимациями(закажу у кого-то или научусь сам), но можно ли научить роботов использовать оружие, которое у них в инвентаре? В частности, хотелось бы восстановить фишку из Fallout 2, где робомозг был способен использовать огнестрельное и энерегетическое оружие, но я не уверен, позволит ли такие фокусы движок 3D-частей. Поделиться сообщением Ссылка на сообщение
haddarath 534 Опубликовано 10 сентября, 2021 Всем привет. Итак, я вознамерился опробовать свои силы в озвучке роботов - есть речевые синтезаторы, которые позволяют получить вполне сносное звучание. Попался вот такой вот "донор" для теста идеи: робот-компаньон без озвучки и с небольшим количеством реплик. Увы, я не знаю, как назначить репликам аудиофайлы. Там всего 33 строки. Не могли бы вы, пожалуйста, ответить в комментариях, как прикрутить файл озвучки к реплике в GECK, или же просто запилить всем репликам совершенно любой аудиофайл? В аттач кинул пустое аудио. Затем я синтезирую озвучку и заменю файлы. 111.rar Поделиться сообщением Ссылка на сообщение
RaggaL 743 Опубликовано 10 сентября, 2021 9 часов назад, haddarath сказал: Всем привет. Итак, я вознамерился опробовать свои силы в озвучке роботов - есть речевые синтезаторы, которые позволяют получить вполне сносное звучание. Попался вот такой вот "донор" для теста идеи: робот-компаньон без озвучки и с небольшим количеством реплик. Увы, я не знаю, как назначить репликам аудиофайлы. Там всего 33 строки. Не могли бы вы, пожалуйста, ответить в комментариях, как прикрутить файл озвучки к реплике в GECK, или же просто запилить всем репликам совершенно любой аудиофайл? В аттач кинул пустое аудио. Затем я синтезирую озвучку и заменю файлы. 111.rar Нужно открыть квест, где лежат диалоги с роботом. Выбрать топик, который хотим озвучить. Затем открыть реплику, чтобы получить окошко, как на приложенном скрине. Жмем кнопку "Record" и тут же останавливаем запись озвучки. У нас появится болванка, которую нужно будет заменить нужным файлом. Путь к ней на скрине указан красной чертой, а имя файла-синей. Имя файла озвучки менять нельзя. Точнее можно, но работать не будет. Короче, копируешь вот это имя файла, закидываешь в папку свой файл озвучки и переименовываешь на скопированное название. А еще можно просто говорить в микрофон после нажатия кнопки "Record", но так не интересно. З.Ы. Я уже в предвкушении появления нового компаньона в RA Followers. Спойлер 2 Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 522 Опубликовано 10 сентября, 2021 2 часа назад, RaggaL сказал: Имя файла озвучки менять нельзя. Имя файла формируется следующим образом: {EditorID квеста (макс 13 вроде символов)}_{EditorID топика (макс 15 символов)}_{FormID реплики}_{порядковый номер, может быть 1 или больше, если строк несколько}. 2 Поделиться сообщением Ссылка на сообщение
haddarath 534 Опубликовано 11 сентября, 2021 Спасибо за помощь, получилось разобраться. Поделиться сообщением Ссылка на сообщение
haddarath 534 Опубликовано 13 сентября, 2021 В рамках теста запилил озвучку, назначил в GECK репликам файлы, но две всё равно не хотят воспроизводиться. Обе лежат в \Sound\Voice\TrueLittleBoy.esp\MaleOld01\, имеют ID 0100263F и 01002640. Вот поделка. Есть баги: после увольнения компаньона его нельзя снова взять в напарники, а также сам диалог увольнения имеет проверку Красноречием (последнее исправимо моими силами или уже исправлено, тут не помню, но не критично). ЧЯДНТ? Почему две реплики не воспроизводятся? Как поправить баг с повторным рекрутингом? ___ Что в планах: переписать/переозвучить реплики, расширить их количество (вроде разобрался как), поработать над бэкграундом, очистить от багов, засунуть в какое-нибудь непопулярное место Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 522 Опубликовано 13 сентября, 2021 4 часа назад, haddarath сказал: ЧЯДНТ? Почему две реплики не воспроизводятся? Как поправить баг с повторным рекрутингом? Реплики робот произносит? Тогда они должны лежать в LittleBoyCompanionVoiceType Что еще странно, у этих двух реплик вообще не указан говорящий. Лучше указать (условие GetIsID). 1 Поделиться сообщением Ссылка на сообщение
Logsl 51 Опубликовано 23 сентября, 2021 Привет всем. Столкнулся с такой банальной проблемой... В общем вместо того чтобы править мирок в основном esp файле я по запаре создал новый и в нем начал редактировать мир. Сохранились правки в другом esp файле? который внезапно не имеет родителя и вся что я отредачил сохранились отдельно от основы ( типа как дубликат). Как слепить их вместе чтобы при этом не было дубликата? Спойлер Поделиться сообщением Ссылка на сообщение
MagnuMspec 7 522 Опубликовано 23 сентября, 2021 2 часа назад, Logsl сказал: Привет всем. Столкнулся с такой банальной проблемой... В общем вместо того чтобы править мирок в основном esp файле я по запаре создал новый и в нем начал редактировать мир. Сохранились правки в другом esp файле? который внезапно не имеет родителя и вся что я отредачил сохранились отдельно от основы ( типа как дубликат). Как слепить их вместе чтобы при этом не было дубликата? Привет! С возвращением. По идее можно через FNVEdit повозиться. Скинь в ЛС оба файла, поковыряюсь, как буду у компа. Поделиться сообщением Ссылка на сообщение
haddarath 534 Опубликовано 23 сентября, 2021 Falcon-Lair Halloween Special Всем привет. Я, конечно, тот ещё бог нейминга, но попытка не пытка. Вместо предисловия: вот уже как несколько лет хочется опробовать в GECK собственные силы и создать что-то своё. Конечно, будет разумнее начать с чего-то простого и двигаться к новым вершинам. Выбор пал в сторону нового радио - с собственными локацией и историей. С моими текущими умениями это сравнительно легко реализовать. Близится Хэллоуин - почему бы не приурочить своё первое творение к сему празднику? На новой радиостанции будут играть аутентичные, посвященные этому празднеству композиции 50-ых/60-ых, пример плейлиста можно изучить здесь. Вот мы и приближаемся к сути.СУТЬ: Мод добавит новую радиостанцию, которую игрок сможет восстановить, выполнив крохотный квест по её ремонту. Подразумевается, что радио было тематическим изначально, с довоенных лет, поэтому локация обставлена декорациями - ресурсов тонны. Но речь идёт о заброшенном объекте, поэтому никакого уюта не нужно. Радио до недавних пор (с точки зрения игрового времени) поддерживалось в рабочем состоянии, но станцию захватили рейдеры/мутанты/роботы, что привело к поломке оборудования, поэтому вещание прекратилось. Будет терминал с заметками диджеев и ведущих, которые обслуживали станцию в течение всех этих лет - а это очень большой период.Приглашаются авторы записок: "Ведущий" описывает происходящее - в мире ли, собственные мысли, или вовсе бред от принятия химии, здесь открыт полный творческий простор - во время прохождения своей работы по обслуживанию станции - по своей воле он там или нет, оставим это для воображения потенциальных авторов. Пример - раба заставили крутить музыку, которую он ненавидит, или же послушник БС тестирует полезность уцелевшей технологии, что угодно. Следующая заметка описывает события с точки зрения следующего ведущего, а также раскрывает прямо или косвенно причины смерти/отстранения своего предшественника. Расположены записки будут в хронологическом порядке. Чем больше их будет, тем лучше. Хотите оставить свой след? Пишите здесь в ЛС или в Дискорде radiodick#4958Вместо заключения Если из этого что-то получится, будет весело. 1 Поделиться сообщением Ссылка на сообщение
RaggaL 743 Опубликовано 21 октября, 2021 Подскажите пожалуйста. Не могу написать скрипт. Схема такая: ГГ принимает препарат. Пока препарат действует, еще раз его принимать нельзя, скрипт убивает ГГ. Действие препарата сделано на оригинальных эффектах,я не делал свой Base effect. Или стоило бы с этого начать? Спойлер Поделиться сообщением Ссылка на сообщение