Перейти к содержанию

Sazan's Theme

Вопросы по моддингу Fallout 3 и New Vegas

Рекомендуемые сообщения

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, поэтому теперь вновь верю, что этот скрипт должен работать)

Поделиться сообщением


Ссылка на сообщение
В 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 в зависимости от количества найденных чертежей добавляется соответствующая заметка, и в соответствии с ней включается один из трех рецептов. Отличаются они, по-моему, количеством необходимых ингредиентов.

Поделиться сообщением


Ссылка на сообщение
26 минут назад, MagnuMspec сказал:

Возможно, меш все-таки другой, и раса андроида не имеет анимации. В этом случае, нужно переделывать меш головы.

Если же все-таки новые только текстуры, возможно, что-то изменено в неписе Вероники (VoiceType например), но тогда бы и озвучка пропадала.

 

Может, удалить заметки, схемы, рецепты и оружие? Смысл этих дублей.

 

В SFW в зависимости от количества найденных чертежей добавляется соответствующая заметка, и в соответствии с ней включается один из трех рецептов. Отличаются они, по-моему, количеством необходимых ингредиентов.

А будет ли это работать, если сделать отдельный файл-патч для SFW, как я пытался сделать? Или надо только редактировать уже существующий файл мода? P.S. Мне, походу, понадобится твоя помощь, потому что часть этих дублей размещены на локациях Вегаса. Я пытался их удалить, но пока что как-то не понимаю, как заменить один лежачий предмет на другой(у меня с редактированием локаций та еще беда).

Поделиться сообщением


Ссылка на сообщение
11 минут назад, vlad8599 сказал:

А будет ли это работать, если сделать отдельный файл-патч для SFW, как я пытался сделать? Или надо только редактировать уже существующий файл мода? P.S. Мне, походу, понадобится твоя помощь, потому что часть этих дублей размещены на локациях Вегаса. Я пытался их удалить, но пока что как-то не понимаю, как заменить один лежачий предмет на другой(у меня с редактированием локаций та еще беда).

Патчем можно. Будет немного корявенько, но работать будет. Рецептам можно прописать невыполнимое условие, вроде GetIsID Equel to Полковник Отем. А записки и оружие просто поудалять из локаций. Можно это все в FNVEdit.

Находим записку/оружие, идем на вкладку Referenced By, там список мест, где оно есть, двойной клик по одному, ПКМ- copy as override - в свой патч, добавляем флаг Deleted. И так с каждым объектом на локации для каждого предмета.

Еще можно в ГЕККе, но там чуть иначе, нужно будет грузить локацию, выделять объект- Delete.

Поделиться сообщением


Ссылка на сообщение
35 минут назад, MagnuMspec сказал:

Патчем можно. Будет немного корявенько, но работать будет. Рецептам можно прописать невыполнимое условие, вроде GetIsID Equel to Полковник Отем. А записки и оружие просто поудалять из локаций. Можно это все в FNVEdit.

Находим записку/оружие, идем на вкладку Referenced By, там список мест, где оно есть, двойной клик по одному, ПКМ- copy as override - в свой патч, добавляем флаг Deleted. И так с каждым объектом на локации для каждого предмета.

Еще можно в ГЕККе, но там чуть иначе, нужно будет грузить локацию, выделять объект- Delete.

Не-не-не, это все я понимаю. Дело в том, что я хотел заменить дубликаты, раскиданные по локациям, на те варианты, которые используются в SFW. Видимо, это надо делать через FNVEdit(удалить в GECK я и сам могу, с размещением не разобрался)?

Поделиться сообщением


Ссылка на сообщение
12 минут назад, vlad8599 сказал:

Дело в том, что я хотел заменить дубликаты, раскиданные по локациям, на те варианты, которые используются в SFW. Видимо, это надо делать через FNVEdit(удалить в GECK я и сам могу, с размещением не разобрался)?

Можно в FNVEdit, также находя запись и меняя ее через либо ПКМ - edit, либо через повторный клик после выделения строки EditorID. В первом случае нужно знать FormID SFW-шного объекта, во втором - его EditorID.

В ГЕКК можно не через удаление-добавление, а через замену с помощью Ctrl+F. Нужно знать EditorID.

Поделиться сообщением


Ссылка на сообщение
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 в самом начале.

Но работать так, как задумано все еще не хочет. Непись все так же выкрикивает только первый топик, но намного реже. 

Поделиться сообщением


Ссылка на сообщение
В 02.08.2021 в 01:32, RaggaL сказал:

Но работать так, как задумано все еще не хочет. Непись все так же выкрикивает только первый топик, но намного реже. 

Выглядит верно, но переменную RGLvar наверно надо сделать либо глобальной, либо в какой-то квест воткнуть. Ну и я вижу ты поменял на OnTriggerEnter - это будет срабатывать только при входе в триггер. Тебе разве так хочется?

Поделиться сообщением


Ссылка на сообщение
5 часов назад, Вис691 сказал:

Выглядит верно, но переменную RGLvar наверно надо сделать либо глобальной, либо в какой-то квест воткнуть. Ну и я вижу ты поменял на OnTriggerEnter - это будет срабатывать только при входе в триггер. Тебе разве так хочется?

Не знаю, а как будет правильно? 

OnTriggerEnter я посмотрел где-то в ванилле. 

Вообще мне не принципиально, модно чтобы он все время выкрикивал топики. Но как это сделать? BeginGameMode? А не будет ли он снижать производительность? 

Поделиться сообщением


Ссылка на сообщение
1 час назад, RaggaL сказал:

Не знаю, а как будет правильно? 

OnTriggerEnter я посмотрел где-то в ванилле.

Думаю, так и будет лучше, просто большой триггер сделать, пускай кричит кричалки, когда ГГ неподалеку.

Поделиться сообщением


Ссылка на сообщение

Я бы наверно глобальную завёл, если квеста нет и он не нужен. Если какой-то квест уже есть со скриптом, то можно и там переменную завести.

 

Так чтобы он кричал постоянно, а не только при входе в триггер (единожды), по идее, надо поменять на OnTrigger.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
В 01.08.2021 в 15:13, MagnuMspec сказал:

Может, удалить заметки, схемы, рецепты и оружие? Смысл этих дублей.

 

В SFW в зависимости от количества найденных чертежей добавляется соответствующая заметка, и в соответствии с ней включается один из трех рецептов. Отличаются они, по-моему, количеством необходимых ингредиентов.

О да, про комбинацию клавиш - это именно то, что мне надо. Спасибо. Удалять схемы и т.д. я пробовал, возможно, я не добрался до заметок. Надо попробовать будет.

Поделиться сообщением


Ссылка на сообщение

Снова сложности. У меня получился рабочий 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

 

 

Поделиться сообщением


Ссылка на сообщение

Могу только предположить, что MenuMode надо на GameMode поменять. Мне кажется, что сразу после нажатия на кнопку, мессаджбокс закрывается, и код обработки срабатывает только тогда, когда ты обратно какой-то мессаджбокс открываешь.

 

Upd: по поводу глобальных переменных. Зашёл в Gameplay->Globals...->ПКМ в поле с переменными->New и создал переменную aaaTestGlobal. Затем создал тестовый скрипт:

 

scn aaaTestScript

begin GameMode

	if aaaTestGlobal == 0
		let aaaTestGlobal := 1
	endif

end

Всё сохранилось без проблем.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение

Народ, у меня к вам вопрос. Возможно, что я разберусь с анимациями(закажу у кого-то или научусь сам), но можно ли научить роботов использовать оружие, которое у них в инвентаре? В частности, хотелось бы восстановить фишку из Fallout 2, где робомозг был способен использовать огнестрельное и энерегетическое оружие, но я не уверен, позволит ли такие фокусы движок 3D-частей.

Поделиться сообщением


Ссылка на сообщение

Всем привет. Итак, я вознамерился опробовать свои силы в озвучке роботов - есть речевые синтезаторы, которые позволяют получить вполне сносное звучание.

Попался вот такой вот "донор" для теста идеи: робот-компаньон без озвучки и с небольшим количеством реплик. Увы, я не знаю, как назначить репликам аудиофайлы. Там всего 33 строки.

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

111.rar

Поделиться сообщением


Ссылка на сообщение
9 часов назад, haddarath сказал:

Всем привет. Итак, я вознамерился опробовать свои силы в озвучке роботов - есть речевые синтезаторы, которые позволяют получить вполне сносное звучание.

Попался вот такой вот "донор" для теста идеи: робот-компаньон без озвучки и с небольшим количеством реплик. Увы, я не знаю, как назначить репликам аудиофайлы. Там всего 33 строки.

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

111.rar

Нужно открыть квест, где лежат диалоги с роботом. Выбрать топик, который хотим озвучить. Затем открыть реплику, чтобы получить окошко, как на приложенном скрине. Жмем кнопку "Record" и тут же останавливаем запись озвучки. У нас появится болванка, которую нужно будет заменить нужным файлом. Путь к ней на скрине указан красной чертой, а имя файла-синей. Имя файла озвучки менять нельзя. Точнее можно, но работать не будет:no2:. Короче, копируешь вот это имя файла, закидываешь в папку свой файл озвучки и переименовываешь на скопированное название.
А еще можно просто говорить в микрофон после нажатия кнопки "Record", но так не интересно.
З.Ы. Я уже в предвкушении появления нового компаньона в RA Followers.

Спойлер

Screenshot_6.png

 

  • Спасибо! 2

Поделиться сообщением


Ссылка на сообщение
2 часа назад, RaggaL сказал:

Имя файла озвучки менять нельзя.

Имя файла формируется следующим образом:

{EditorID квеста (макс 13 вроде символов)}_{EditorID топика (макс 15 символов)}_{FormID реплики}_{порядковый номер, может быть 1 или больше, если строк несколько}.

 

  • Спасибо! 2

Поделиться сообщением


Ссылка на сообщение

Спасибо за помощь, получилось разобраться. :)

Поделиться сообщением


Ссылка на сообщение

В рамках теста запилил озвучку, назначил в GECK репликам файлы, но две всё равно не хотят воспроизводиться.

Обе лежат в \Sound\Voice\TrueLittleBoy.esp\MaleOld01\, имеют ID 0100263F и 01002640. Вот поделка.

Есть баги: после увольнения компаньона его нельзя снова взять в напарники, а также сам диалог увольнения имеет проверку Красноречием (последнее исправимо моими силами или уже исправлено, тут не помню, но не критично).

ЧЯДНТ? Почему две реплики не воспроизводятся? Как поправить баг с повторным рекрутингом?

___

Что в планах: переписать/переозвучить реплики, расширить их количество (вроде разобрался как), поработать над бэкграундом, очистить от багов, засунуть в какое-нибудь непопулярное место 

Поделиться сообщением


Ссылка на сообщение
4 часа назад, haddarath сказал:

ЧЯДНТ? Почему две реплики не воспроизводятся? Как поправить баг с повторным рекрутингом?

Реплики робот произносит? Тогда они должны лежать в LittleBoyCompanionVoiceType

 

Что еще странно, у этих двух реплик вообще не указан говорящий. Лучше указать (условие GetIsID).

  • Спасибо! 1

Поделиться сообщением


Ссылка на сообщение

Привет всем. Столкнулся с такой банальной проблемой... В общем вместо того чтобы править мирок в основном esp файле я по запаре создал новый и в нем начал редактировать мир. Сохранились правки в другом esp файле? который внезапно не имеет родителя и вся что я отредачил сохранились отдельно от основы ( типа как дубликат). Как слепить их вместе чтобы при этом не было дубликата?

Спойлер

unknown.png

Поделиться сообщением


Ссылка на сообщение
2 часа назад, Logsl сказал:

Привет всем. Столкнулся с такой банальной проблемой... В общем вместо того чтобы править мирок в основном esp файле я по запаре создал новый и в нем начал редактировать мир. Сохранились правки в другом esp файле? который внезапно не имеет родителя и вся что я отредачил сохранились отдельно от основы ( типа как дубликат). Как слепить их вместе чтобы при этом не было дубликата?

Привет! С возвращением.

По идее можно через FNVEdit повозиться. Скинь в ЛС оба файла, поковыряюсь, как буду у компа.

Поделиться сообщением


Ссылка на сообщение

halloween_PNG160.png

Falcon-Lair Halloween Special

Всем привет. Я, конечно, тот ещё бог нейминга, но попытка не пытка.

Вместо предисловия: вот уже как несколько лет хочется опробовать в GECK собственные силы и создать что-то своё. Конечно, будет разумнее начать с чего-то простого и двигаться к новым вершинам. Выбор пал в сторону нового радио - с собственными локацией и историей. С моими текущими умениями это сравнительно легко реализовать.

Близится Хэллоуин - почему бы не приурочить своё первое творение к сему празднику? На новой радиостанции будут играть аутентичные, посвященные этому празднеству композиции 50-ых/60-ых, пример плейлиста можно изучить здесь. Вот мы и приближаемся к сути.

СУТЬ: 

Мод добавит новую радиостанцию, которую игрок сможет восстановить, выполнив крохотный квест по её ремонту. Подразумевается, что радио было тематическим изначально, с довоенных лет, поэтому локация обставлена декорациями - ресурсов тонны. Но речь идёт о заброшенном объекте, поэтому никакого уюта не нужно.

Радио до недавних пор (с точки зрения игрового времени) поддерживалось в рабочем состоянии, но станцию захватили рейдеры/мутанты/роботы, что привело к поломке оборудования, поэтому вещание прекратилось. Будет терминал с заметками диджеев и ведущих, которые обслуживали станцию в течение всех этих лет - а это очень большой период.

Приглашаются авторы записок: 

"Ведущий" описывает происходящее - в мире ли, собственные мысли, или вовсе бред от принятия химии, здесь открыт полный творческий простор - во время прохождения своей работы по обслуживанию станции - по своей воле он там или нет, оставим это для воображения потенциальных авторов. Пример - раба заставили крутить музыку, которую он ненавидит, или же послушник БС тестирует полезность уцелевшей технологии, что угодно. Следующая заметка описывает события с точки зрения следующего ведущего, а также раскрывает прямо или косвенно причины смерти/отстранения своего предшественника. Расположены записки будут в хронологическом порядке. Чем больше их будет, тем лучше. Хотите оставить свой след? Пишите здесь в ЛС или в Дискорде radiodick#4958

Вместо заключения

Если из этого что-то получится, будет весело.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение

Подскажите пожалуйста. Не могу написать скрипт.

Схема такая: ГГ принимает препарат.  Пока препарат действует, еще раз его принимать нельзя, скрипт убивает ГГ. Действие препарата сделано на оригинальных эффектах,я не делал свой Base effect. Или стоило бы с этого начать?

Спойлер

Screenshot_8.png

 

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


×
×
  • Создать...