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

Sazan's Theme

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

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

И снова я с вопросами.
1.Как сделать так,чтобы при входе в определенную локацию вывелся message box (С задержкой на несколько секунд), а при его закрытии стартовал квест?

2. Как сделать,чтобы посреди диалога вывелся черный экран, а потом снова начался диалог? Типа как с Джоаной или Блестящей. Их я изучал, но не нашел ничего.

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


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

2. Как сделать,чтобы посреди диалога вывелся черный экран, а потом снова начался диалог? Типа как с Джоаной или Блестящей. Их я изучал, но не нашел ничего.

В черный экран:

IMod FadeToBlackISFX

 

Обратно, точно не знаю, но можно попробовать:

RIMod MQ08AllBlackedOutISFX
IMod    FadeInFromBlack2sISFX

 

14 минут назад, RaggaL сказал:

1.Как сделать так,чтобы при входе в определенную локацию вывелся message box (С задержкой на несколько секунд), а при его закрытии стартовал квест?

Разместить на локации триггер, можно в паре метров от входа, чтоб когда игрок сделает пару шагов вылезло. На триггере скрипт с showmessage сообщение, и следующей строкой setstage Квест стадия.

 

Скажем:

if getStage Quest < 10
    showmessage Message
    setstage Quest 10

endif

 

Само собой это надо обрамить в Begin OnTriggerEnter Player

Можно сделать проверку DoOnce, но если стадия не вернется на раннюю, можно не делать.

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


Ссылка на сообщение
В 22.05.2021 в 00:14, MagnuMspec сказал:

В черный экран:

IMod FadeToBlackISFX

 

Обратно, точно не знаю, но можно попробовать:
IMod    FadeInFromBlack2sISFX

1)Вот так работает, но я не могу сообразить, как сделать правильно. Вписал обе команды в result script одного топика, поднявшись,что экран сначала станет черным, а потом обратно. Но получилось такое, как на скриншоте. Экран светлеет после выбора реплики.
То есть дополнительно нужно прерывать диалог, вешать черный экран, потом его снимать и начинать диалог снова. А как? Делать топик goodbye, а дальше? Нужен пакет AI?
 

Спойлер

image.png


 

Поясню, что это вообще такое и зачем нужно: ГГ говорит с неписем, не имеющим озвучки. ГГ задаст вопрос и будет должен получить ответ, но ввиду вышеуказанных причин это нужно оставить за кадром. То есть поле черного экрана, как бы выслушав ответ, ГГ ответит "ааа, понятно", а потом то,что на скриншоте. Я придумал так, но может, есть варианты получше?

2)Попытался воспользоваться моддерским ресурсом Gallows and Nooses , но там нет инструкции. Действовал по аналогии с крестом. Эдитом скопировал виселицу в свой плагин, разместил виселицу в мире. Рядом поставил непися и сделал ему Вот такой пакет AI:
 

Спойлер

image.pngimage.png

 

Но он не хочет вешаться на виселицу, а торчит из нее.

Также мне не понятно, как сделать из этой виселицы активатор, чтобы при использовании появлялся message box. Это надо размещать триггер, и к нему цеплять activator? Или можно как-то к самому объекту?

3) Как придать неписю имя, аналогичное имени ГГ? 

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


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

По первым 2ум не подскажу, а вот с именем есть несколько вариантов. Сразу предупреждаю. что сам не тестировал. Получить имя любого рефа можно через LNGetName, т.е. имя игрока должно быть player.LNGetName. Дальше уже надо смотреть, что тебе нужно. Если варианты замены имени у рефа и у базового объекта. Для рефа вроде походит LNSetName, для базового объекта SetName и SetActorFullNameAlt. Если надо расписать подробнее - пиши.

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


Ссылка на сообщение
В 29.05.2021 в 12:36, RaggaL сказал:

Поясню, что это вообще такое и зачем нужно: ГГ говорит с неписем, не имеющим озвучки. ГГ задаст вопрос и будет должен получить ответ, но ввиду вышеуказанных причин это нужно оставить за кадром. То есть поле черного экрана, как бы выслушав ответ, ГГ ответит "ааа, понятно", а потом то,что на скриншоте. Я придумал так, но может, есть варианты получше?

У реплики есть отдельное поле для скрипта, стартующего при начале реплики. Что если вписать эффект туда?

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

 

В 29.05.2021 в 12:36, RaggaL сказал:

2)Попытался воспользоваться моддерским ресурсом Gallows and Nooses , но там нет инструкции. Действовал по аналогии с крестом. Эдитом скопировал виселицу в свой плагин, разместил виселицу в мире. Рядом поставил непися и сделал ему Вот такой пакет AI:

Думаю, виселица выступает не фурнитурой (как крест), а простым статиком. Т.е. чтобы повесить на ней непися, нужно взять мертвого непися, в гекк засунуть его голову в петлю и включить рэгдолл.

 

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


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

Разучился совсем. Почему топик может быть не видно в игре?
 

Спойлер

Screenshot_1.png

 

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


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

Разучился совсем. Почему топик может быть не видно в игре?

Если не ошибаюсь, наличие перка у НПС проверяется. Для ГГ вроде с Subject на Target поменять

  • Нравится 1
  • Спасибо! 1

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


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

Как изменить статы Неписям из модов? Например поднять ХП лоботомитам из Безумная Наука

 

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


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

Как изменить статы Неписям из модов? Например поднять ХП лоботомитам из Безумная Наука

 

в FNVEdit или в ГЕККе.

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


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

в FNVEdit или в ГЕККе.

булувулблоп так это итак понятно, у меня FNVedit, я просто кучу туторов посмотрел, там нет конкретики. 

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


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

булувулблоп так это итак понятно, у меня FNVedit, я просто кучу туторов посмотрел, там нет конкретики. 

Вот тут посмотрите. 

Да и зачем конкретика. Важно принцип понять, а поля там называются интуитивно.

 

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


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

булувулблоп так это итак понятно, у меня FNVedit, я просто кучу туторов посмотрел, там нет конкретики. 

Не понятно, что вам непонятно.

 

Нужно найти этих самых лоботомитов в редакторе. Перейдите во вкладку Actors->NPC. Вверху слева у вас есть окошко для поиска. Я бы ввел что то вроде "lobotomite" или "madscience" для ускорения поисков. 

Либо можно точно узнать id лоботомита без поисков, как показано на картинке:
Жмете details, потом type и ищете все под типом NPC. Запоминаете ID, в моем случае RGLstreetCrier, пишете его в поиск и редактируете.
 

Спойлер

Screenshot_2.png


Как именно редактировать- смотрите туторы по созданию неписей. 

Помнится, в модах "Безумная наука" и "Сертификат РобКо" лоботомиты не только дохли как мухи, но и не надевали выданную броню и игнорировали дальнобойное оружие.. А это уже влечет за собой правки пакетов AI...Наверное. Я дилетант.

 

 

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


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

Вот тут посмотрите. 

Да и зачем конкретика. Важно принцип понять, а поля там называются интуитивно.

 

Ну это если ты модер и хочешь эксперементировать, в моём случае хочу править конкретного НПС и ничего не сломать в процессе. Не думаю что я после этого найду ещё какую причину ковыряться в редакторах)

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


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

Как именно редактировать- смотрите туторы по созданию неписей. 

Помнится, в модах "Безумная наука" и "Сертификат РобКо" лоботомиты не только дохли как мухи, но и не надевали выданную броню и игнорировали дальнобойное оружие.. А это уже влечет за собой правки пакетов AI...Наверное. Я дилетант.

Ну я тоже дилетант)

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


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

Ну я тоже дилетант)

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

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


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

Ну это если ты модер и хочешь эксперементировать, в моём случае хочу править конкретного НПС и ничего не сломать в процессе. Не думаю что я после этого найду ещё какую причину ковыряться в редакторах)

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

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


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

И снова я занимаюсь ерундой, вместо нормальных модов. На этот раз это уличный зазывала, как у Мика и Ральфа.

Я хотел добиться,чтобы НПС выкрикивал 8 реплик. По порядку, а потом начинал сначала. НПС, озвучка, триггер,скрипт есть, но выкрикивается только первая реплика.  Я сделал link to/link from, но похоже, этого недостаточно.  Нужен какой-то скриптовый переключатель?

Прилагаю скрины скрипта и топиков. Там, где синий прямоугольник- это я наивно полагал, что просто вписать все топики в скрипт  по порядку будет достаточно.

Спойлер

Screenshot_4.pngScreenshot_3.png

 

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


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

Не знаю, как работают Link From/To, поэтому я бы всю логику перенёс в скрипт. Завёл бы переменную-счётчик, которую увеличивал бы после каждой реплики, а после последней сбрасывал бы её в 0.

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


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

Всем доброго времени суток.

Может кто поможет. В 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%.

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


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

Народ, я походу тупой, но вы можете объяснить мне, как работает система "апгрейда" схем для создания вещей в Ф3 и SFW, какие скрипты за это отвечают? Дело в том, что я, положив болт на все запреты автора мода(SImply Uncut для Вегаса) пытался адаптировать его под SFW - автор сделал дубликаты оружия из Ф3 и схем, и когда поднимаешь схему, то тебе добавляется не оригинальная заметка, а созданная автором мода. Из-за этого апгрейд схем не работает(т.е. улучшается качество создаваемых  вещей) Я пытался удалить его заметки и схемы, но это ничего не дало. Что я сделал не так?

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


Ссылка на сообщение
В 20.07.2021 в 12:53, Вис691 сказал:

Не знаю, как работают Link From/To, поэтому я бы всю логику перенёс в скрипт. Завёл бы переменную-счётчик, которую увеличивал бы после каждой реплики, а после последней сбрасывал бы её в 0.

Я попробовал. Смотреть лучше с закрытыми глазами.

Спойлер

scn RGLstreetCrier2SCR

short RGLvar

begin OnTriggerEnter

set RGLvar to 0
 if RGLstreetCrier2REF.GetDead == 0
  if RGLstreetCrier2REF.IsTalking == 0
   if RGLstreetCrier2REF.IsInCombat == 0
    if RGLvar == 0
endif
RGLstreetCrier2REF.Say RGLstcr0
set RGLvar == 1
if RGLvar == 1
endif
RGLstreetCrier2REF.Say RGLstcr1
set RGLvar == 2
if RGLvar == 2
RGLstreetCrier2REF.Say RGLstcr2
set RGLvar == 3
if RGLvar == 3
RGLstreetCrier2REF.Say RGLstcr3
set RGLvar == 4
if RGLvar == 4
RGLstreetCrier2REF.Say RGLstcr4
set RGLvar == 5
if RGLvar == 5
RGLstreetCrier2REF.Say RGLstcr5
set RGLvar == 6
if RGLvar == 6
RGLstreetCrier2REF.Say RGLstcr6
set RGLvar == 7
if RGLvar ==7
RGLstreetCrier2REF.Say RGLstcr7
set RGLvar == 0
endif
endif
end

 

 

1. Я ввел переменную RGLvar. Сразу не понятно, стоит ли ее делать BeginGamemode или BeginOnTrigger

2. Не хватает понимания синтаксиса (Ну, наверное я его имею ввиду) языка программирования. Я читал, как делаются блоки условий в pascal, но плохо понял. Как бы не городил блоки из служебных слов else/endif, скрипт не сохраняется. Наверное, тут даже решает смещение строк кода вправо, но тут мои знания все.

 

Допустим, у нас соблюдены все условия.
RGLstreetCrier2REF.Say RGLstcr0 ---Реплика произносится.
set RGLvar == 1---Она произнесена и выполняется эта строка.
if RGLvar == 1---Раз прошлая строка выполнилась, то должна выполниться следующая?
endif---Служебное слово.
RGLstreetCrier2REF.Say RGLstcr1---Должна произноситься следующая реплика. Ну, наверное. Хотя я не добавлял этой строке зависимости от моей переменной от RGLvar, потому что не знаю как.

3. Я не понимаю, по какому принципу нужно сдвигать строки кода вправо. Смотрел другие скрипты, там целые лесенки из них. А в некоторых нет. Как это называется?

 

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


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

Смотреть лучше с закрытыми глазами.

Так как я с закрытыми глазами помочь смогу?)
 

1 час назад, RaggaL сказал:

1. Я ввел переменную RGLvar. Сразу не понятно, стоит ли ее делать BeginGamemode или BeginOnTrigger

Ну давай подумаем. Надо решить, когда будет срабатывать блок, правильно? Если у нас Gamemode, то этот блок будет срабатывать всегда, когда мы "в игре" (не в меню или ещё где-то). Получается, что переменная в каждый новый проход скрипта будет 0. Как-то нехорошо. Если у нас OnTrigger, то срабатывание будет происходить всегда, когда мы внутри триггера. Т.е. опять в каждый новый проход (пока мы внутри триггера) переменная будет обнуляться. Наверно, тоже не очень хорошо. Как же быть? А всё очень просто. По умолчанию, когда ты пишешь "short RGLvar" переменная принимает значение 0. И это происходит ровно один раз. После этого ты можешь менять переменную как хочешь, она в 0 автоматически не сбросится. Поэтому всё, что нужно - убрать "set RGLvar to 0".

 

1 час назад, RaggaL сказал:

Я читал, как делаются блоки условий в pascal, но плохо понял. Как бы не городил блоки из служебных слов else/endif, скрипт не сохраняется.

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

 

1 час назад, RaggaL сказал:

3. Я не понимаю, по какому принципу нужно сдвигать строки кода вправо. Смотрел другие скрипты, там целые лесенки из них. А в некоторых нет. Как это называется?

Это называется добросовестный автор или нет. Сдвиг строк вправо делается для повышения читаемости кода. На работу скрипта никак не влияет. Когда их двигать? Не знаю даже как это правильно объяснить. Вот есть у тебя смысловые блоки begin-end, if-endif, также бывают циклы различные. В общем, всё, где ты ставишь какое-то условие. Вот для того, чтобы было понятно, что выполняется, когда условие проходит, это сдвигают вправо. Например:

if (условие1)
	команда1
	команда2
else
	команда3
	команда4
endif
команда5

Если посмотреть, то сразу становится понятно, что команды 1 и 2 выполняются. если условие1 срабатывает. Команды 3 и 4 выполняются, если условие не срабатывает. И команда5 выполняется всегда, т.к. она идёт после if-endif. Если вдруг нужно больше уровней вложенности, то не проблема:

if (условие1)
	if (условие2)
		команда1
	endif
	команда2
endif

Тут команда1 выполняется, только если и условие1, и условие2 выполняются. Команда2 выполняется только если условие1 выполняется, на условие2 ей всё равно, она вне этого блока. Кстати, обрати внимание, что if и endif на одном уровне визуально находятся, если правильно сдвиги делать. Это опять же позволяет проверить, а не забыл ли ты что-то.

 

1 час назад, RaggaL сказал:

set RGLvar == 1

Тут не "==", а "to". "==" используется для сравнения, а "to" для присвоения нового значения.

Я, кстати, только сейчас задумался о потенциальной проблеме. По-хорошему надо подождать. пока НПС закончит свою последнюю реплику. Хмм, возможно подход через скрипт не будет работать. А как устроены другие зазывалы?

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


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

Я, кстати, только сейчас задумался о потенциальной проблеме. По-хорошему надо подождать. пока НПС закончит свою последнюю реплику. Хмм, возможно подход через скрипт не будет работать. А как устроены другие зазывалы?

У других зазывал один топик, внутри которого несколько реплик. И они все с галочкой random и запускаются триггером. 

 

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

Спасибо за разъяснения!

 

Привел в нормальный вид, скрипт сохраняется. Но НПС по прежнему выкрикивает только первый топик.
 

Спойлер

scn RGLstreetCrier2SCR

short RGLvar

begin OnTriggerEnter

 if RGLstreetCrier2REF.GetDead == 0
  if RGLstreetCrier2REF.IsTalking == 0
   if RGLstreetCrier2REF.IsInCombat == 0
    if RGLvar == 0
     endif
     endif
     endif
     endif
RGLstreetCrier2REF.Say RGLstcr0
 set RGLvar to 1
 if RGLvar == 1
 endif
RGLstreetCrier2REF.Say RGLstcr1
 set RGLvar to 2
 if RGLvar == 2
 endif
RGLstreetCrier2REF.Say RGLstcr2
 set RGLvar to 3
 if RGLvar == 3
 endif
RGLstreetCrier2REF.Say RGLstcr3
 set RGLvar to 4
 if RGLvar == 4
 endif
RGLstreetCrier2REF.Say RGLstcr4
 set RGLvar to 5
 if RGLvar == 5
 endif
RGLstreetCrier2REF.Say RGLstcr5
 set RGLvar to 6
 if RGLvar == 6
 endif
RGLstreetCrier2REF.Say RGLstcr6
 set RGLvar to 7
 if RGLvar == 7
 endif
RGLstreetCrier2REF.Say RGLstcr7
set RGLvar to 0

end

 

 

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


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

Возможно ли лоботомитам из сертификата Robco и безумная наука дать абилку призраков из Dead Money? (ну чтоб вставали каждый раз, пока их на куски не порвут)

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


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

Возможно ли лоботомитам из сертификата Robco и безумная наука дать абилку призраков из Dead Money? (ну чтоб вставали каждый раз, пока их на куски не порвут)

Я думаю, что возможно, но не уверен, как. Надо смотреть скрипты Dead Money, я уверен, что их абилка через скрипт реализована.

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


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

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

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

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

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

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

Войти

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

Войти


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