Модератор форума: КсюXa, ApeX  
Форум » Fallout 3 » Мастерская » Помощь по моддингу (Помощь в нелегком модмейкерском деле)

Помощь по моддингу
КсюXa  Offline  Сообщение №1 написано: 9 июля 2010, 18:51


Гид по Мастерской




Тема для общих вопросов по моддингу игры.
Возможно, что ответ на ваш вопрос уже есть в Картотеке.

Ой, всё...
Вис  Offline  Сообщение №511 написано: 26 августа 2012, 17:08



298
Цитата Joopeeter

Покажутся квестовые переменные. Повысились?


Так: после первого стимулятора стало 1, после второго стало 2, а вот после 3 stimpak=3, вместо того, чтобы стало Medicine=1, а Stimpak=0,

JupiterJour  Offline  Сообщение №512 написано: 26 августа 2012, 17:13 | Отредактировано: Joopeeter - 26 августа 2012, 17:20


_


Вис, погоди маленько, квестовый гейммод медленный, работает раз в 5 секунд. Может, в этом и проблема, а? :)
Кстати, чтоб не гонять гейммод, всё можно перенести в скрипт эффекта, а в квестовом оставить только переменные. И срабатывать будет без задержек.

Вис  Offline  Сообщение №513 написано: 26 августа 2012, 17:26



298
Цитата Joopeeter

Кстати, чтоб не гонять гейммод, всё можно перенести в скрипт эффекта, а в квестовом оставить только переменные. И срабатывать будет без задержек.


Как?

JupiterJour  Offline  Сообщение №514 написано: 26 августа 2012, 17:33


_


Да так же:

То есть переменные всегда доступны, так как находятся в квесте, а все проверки и изменения происходят однократно после укола.

Вис  Offline  Сообщение №515 написано: 26 августа 2012, 17:46



298
Цитата Joopeeter

То есть переменные всегда доступны, так как находятся в квесте, а все проверки и изменения происходят однократно после укола.


Спасибо, опробую.

Добавлено (26.08.2012, 21:46)
---------------------------------------------
Да, всё работает! Продолжаю серию вопросов: при загрузочных скринах (например, когда грузится локация), есть информация о том сколько ты использовал стимуляторов, убил людей и т.д. Что считает эти убийства, вколотые стимуляторы? Интересует "спящих убито" (или как-то так). А цель такая же: убил 5 людей с перком "Песочный человек" скрытность повысилась на 1.


Spalny_Vagon  Offline  Сообщение №516 написано: 26 августа 2012, 18:23 | Отредактировано: Spalny_Vagon - 26 августа 2012, 18:26


Мастер


Цитата Sazans_Theme

Как начать диалог между 2-мя НПС?
Диалоговый анимационный пакет я сделал, сделал сами диалоги, в разделе Conversation. Но когда на триггере я захожу, один подходит к другому, говорит "Привет", и диалог не начинается. В чем ошибка?


Есть три способа организации разговоров между НПС.
1. Скриптом с временными задержками, как правило применяется при разговорах НПС с самим собой (например, роботы-протектроны, проверяющие билеты)
2. Скриптом с помощью комнанд say (sayto) и блока SayToDone. В блоке gamemode соманда say заставляет НПС говорить конкретную фразу в конкретном топике, а в блоке SayToDone после завершения именно этой фазы дается команда говорить следующему.
3. Используя только квест. В Conversation передача слова от одного НПС к другому и обратно (или к третьему) производится с помощью Link to и Link from.
Конкретно: "Первый" должен сказать фразу в топике Hello, link to в этой фразе указывает на фразу "Второго", у "Второго" в его фразе должно быть указано от кого была передача (Link from) и кому передается слово после нее (Link to), и так до упора в топике GoodBy.
Разумеется, приоритет квеста должен быть выше, чем у стандартных "говорилок". Начало диалога делается либо с помощью команды startconversation, либо с помощью AI-пакета Find (НПС с этим пакетом с указанием второго собеседника в качестве цели, найдет собеседника и начнет с ним разговор).
Прикол. Однажды я дал пакет Find радтараканам с указанием ГГ в качестве цели. В игре тараканы меня находили и пытались пообщаться. :D

======================
Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294
Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
Рыба  Offline  Сообщение №517 написано: 26 августа 2012, 18:53


faceless


693
Spalny_Vagon, спасибо, мне подходит 3-ий вариант. Диалог начинаю с АС пакета. Сейчас попробую все приветси в порядок...

Добавлено (26.08.2012, 22:46)
---------------------------------------------
А весь диалог нужно делать как:
Уместить вопрос-ответ в одном топике, или для каждого вопроса-ответа нужно создавать свой топик?

Добавлено (26.08.2012, 22:53)
---------------------------------------------
Создал для каждого вопроса-ответа свой топик, соединил их LinkTo & LinkFrom. Однако, все равно. 1-ый НПС говорит лишь "Привет". Может, дело в 1-ом топике? Там, где написано LinkFrom я решил выставить значение ANY.


Spalny_Vagon  Offline  Сообщение №518 написано: 26 августа 2012, 20:05


Мастер


Цитата Sazans_Theme


Создал для каждого вопроса-ответа свой топик, соединил их LinkTo & LinkFrom. Однако, все равно. 1-ый НПС говорит лишь "Привет". Может, дело в 1-ом топике? Там, где написано LinkFrom я решил выставить значение ANY.


Проверьте приоритет. В топике Hello не нужно указывать от кого, это первая фраза.

======================
Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294
Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
Рыба  Offline  Сообщение №519 написано: 26 августа 2012, 21:38


faceless


693
Прилагаю скриншот. так будет проще. Это то, что есть сейчас.

JupiterJour  Offline  Сообщение №520 написано: 26 августа 2012, 23:45


_


Цитата Вис

Что считает эти убийства, вколотые стимуляторы?


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

Ipatow  Offline  Сообщение №521 написано: 27 августа 2012, 03:30



Цитата Sazans_Theme

Как начать диалог между 2-мя НПС?

На GECK-вики есть хорошие туториалы примерно про это. Например, Three Way Conversation Tutorial.

Spalny_Vagon  Offline  Сообщение №522 написано: 27 августа 2012, 04:48 | Отредактировано: Spalny_Vagon - 27 августа 2012, 04:55


Мастер


Цитата Ipatow

На GECK-вики есть хорошие туториалы примерно про это. Например, Three Way Conversation Tutorial.


Привет, Ipatow! Туториал на GECK-вики классный, но он же на английском, а я в своем сообщении (см. №528) его перевел и все лишнее убрал. lol

======================
Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294
Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
Рыба  Offline  Сообщение №523 написано: 27 августа 2012, 09:10


faceless


693
Spalny_Vagon, спасибо огромное, птички запели. Решил все засунуть в в один топик, используя Таргет-Спикер.

Вис  Offline  Сообщение №524 написано: 27 августа 2012, 16:28 | Отредактировано: Вис - 27 августа 2012, 13:46



298
Цитата Ipatow

Ещё одно - стимпак может "съедаться" тремя способами.


Как раз при любом варианте всё срабатывает, что и требовалось. А за советы - спасибо!

Добавлено (27.08.2012, 20:28)
---------------------------------------------
Возможно прописать моему объекту стандартную модель не распаковывая bsa архив? Способ с изменением ID у вещи с нужной моделью не вариант.


Ipatow  Offline  Сообщение №525 написано: 28 августа 2012, 02:37



Цитата Вис

Возможно прописать моему объекту стандартную модель не распаковывая bsa архив?

Гм. Имеется в виду - использовать в GECK диалог выбора модели, не имея файл модели, лежащий в нужном месте? Если нужно только выбрать файл - достаточно, чтобы в момент выбора там лежал хоть какой-то NIF, не обязательно тот, который и будет на самом деле. Положить файл в нужную папку с нужным именем, выбрать его в диалоге, после чего удалить этот временный NIF - при дальнейшей работе GECK прекрасно разберётся: раз нет в папке файла и даже самой папки, подгрузим из BSA. Можно обойти использование диалога, просто прописав путь к файлу с помощью FO3Edit - тот не интересуется, есть ли на месте файл сейчас, он тебе верит, что когда будет пора работать, файл уже будет в том или ином виде.

Если тебе нужно переопределить текстуры - тогда на время заполнения полей диалога класть на место надо не какой попало NIF, а настоящий (или по крайней мере такой, у какого текстурированным блокам даны точно такие имена, как у настоящего из BSA). Это тоже можно сделать в FO3Edit - но поскольку для этого надо знать, как именно названы и пронумерованы блоки, а чтобы их имена и номера вручную писать в "список поправок" модели, тебе скорее всего придётся самому заглядывать в NIF - а значит, он всё равно будет для этого вытащен из BSA, и проще временно положить его самого на законное место и расписать текстурные наборы в стандартном диалоге GECK.

Вис  Offline  Сообщение №526 написано: 28 августа 2012, 07:28



298
Ipatow, спасибо. Теперь такой вопрос: как сделать так, чтобы диалог появился через неделю после другого? То есть: поговорил, прошла неделя, появился другой диалог.

JupiterJour  Offline  Сообщение №527 написано: 28 августа 2012, 18:25 | Отредактировано: Joopeeter - 28 августа 2012, 22:57


_


Цитата Вис

как сделать так, чтобы диалог появился через неделю после другого? То есть: поговорил, прошла неделя, появился другой диалог.


Тут пригодится глобальная переменная GameDaysPassed - сколько дней прошло с начала игры. В квестовый скрипт вписываем примерно так:

Условие первого диалога: GetQuestVariable zzQuestScript.DayX>-1 (тогда он будет доступен всю эту неделю)
Условие второго диалога: GetQuestVariable zzQuestScript.DayX==-1
В первом диалоге в подходящем результ-скрипте пишем:

Вис  Offline  Сообщение №528 написано: 30 августа 2012, 09:49



298
Вновь вопрос: возможно ли сделать так, чтобы при взломе чего-либо в зависимости от уровня взлома повышалась переменная. Например, заперто на очень лёгкий, взломал - переменная + 1, на лёгкий + 2, на средний + 3 и т.д. Если нет то подойдёт ли этот скрипт просто на повышение переменной при любом взломанном замке?
Code
scn zzScript

Begin MenuMode

   if GetLocked==0
   Переменная + 1
   endif

End

JupiterJour  Offline  Сообщение №529 написано: 30 августа 2012, 15:05


_


Цитата Joopeeter

Есть такое ощущение, что считает движок где-то внутри, а у него не очень-то допытаешься


Похоже, я тут тебя обманул. Допытаться можно функцией GetPCMiscStat, а Песочного человека можно ещё поймать за работой функцией GetSandman.
Тогда если через подсчёт, то в квестовом скрипте будет примерно так:

А если через отслеживание действия, то примерно так:

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

Вис  Offline  Сообщение №530 написано: 30 августа 2012, 15:36



298
Цитата Joopeeter

Песочного человека можно ещё поймать за работой функцией GetSandman.


хм, а разве нельзя просто в перке, в скрипте (где ещё 50 xp прибавляют) вставить НазваниеКвеста.Перменная + 1? А в скрипте квеста -
Code
If переменная==5
playerModAV sneak 1
Set переменная to 0
ENDIF

Добавлено (30.08.2012, 19:36)
---------------------------------------------
И ещё вопрос по поводу этой строчки "Mines Disarmed" - это мины, которые стоят изначально? Или ещё считается если бросил мину и обезвредил?


JupiterJour  Offline  Сообщение №531 написано: 30 августа 2012, 16:16 | Отредактировано: Joopeeter - 30 августа 2012, 16:01


_


Цитата Ipatow

стимпак может "съедаться" тремя способами. Из инвенторя пип-бой (менюмод), с инвентарной кнопки, если стимпак повешен на кнопку (гейммод), а также из пип-боя со страницы эффектов - причём на ней двумя способами: просто кнопка "скушать стимпак" и целевое втыкание стимпака в покалеченные части силуэта ГГ.


А вот интересно, что позволяет именно стимпаку (а не пиву, например) иметь возможность лечить больную голову ГГ и другие части тела. И ещё рад-икс с антирадином на вкладке радиации. Вроде, ничего такого, кроме флажка Medicine их не отличает от прочих предметов из раздела "Помощь", однако, установка этого флага всё равно не даёт возможности лечить переломы морковкой, а лучевую болезнь - стаканом доброго вина.

Вис  Offline  Сообщение №532 написано: 30 августа 2012, 16:43



298
Цитата Вис

проверки, набралось ли 5 штук и прибавления навыка в этот результ-скрипт. Как перенесли у стимулятора, а в квесте опять оставить только переменные.


А зачем туда-то? Я не думаю, что за 5 секунд кто-нибудь убьёт 2 и более npc, но для надёжности пожалуй можно. И повторю вопрос: по поводу этой строчки "Mines Disarmed" - это мины, которые стоят изначально? Или ещё считается если бросил мину и обезвредил?

Ipatow  Offline  Сообщение №533 написано: 30 августа 2012, 21:48



Цитата Joopeeter

Вроде, ничего такого, кроме флажка Medicine их не отличает от прочих предметов из раздела "Помощь", однако, установка этого флага всё равно не даёт возможности лечить переломы морковкой, а лучевую болезнь - стаканом доброго вина.

Флажок "Лекарство" означает, что числовые значения в базовых эффектах будут скооректированы в соответствии с уровнем врачебного навыка. Поэтому алкоголь должен иметь этот флаг - все же знают, что врачи напиваются гораздо суровее, чем не обезображенные медицинским обучением люди!

О том, что стимпаком является именно стимпак, а не морковка, игра узнаёт из Default Objects (см. меню Gameplay в GECK). Как и о том, кто у нас "рад-Х", кто "антирадин", а кто "загадочный незнакомец"...

Вис  Offline  Сообщение №534 написано: 1 сентября 2012, 07:40 | Отредактировано: Вис - 1 сентября 2012, 07:40



298
Цитата Joopeeter

Корректно отследить сложность замка можно на контейнерах, и обычных дверях, но не на дверях-телепортах.


Так значит всё же отследить можно. Говорю это, потому что на терминалы тоже надо. У них же нет "Терминалов телепортеров".

JupiterJour  Offline  Сообщение №535 написано: 1 сентября 2012, 12:21


_


Цитата Вис

У них же нет "Терминалов телепортеров"


Некоторые делают. :)
Отследить можно функцией GetLockLevel, но учти, что придётся навешивать скрипт на все запертые терминалы сколько их есть, либо дописывать к уже навешенным скриптам. В отличие от дверей, у терминалов запертость настраивается в базовом объекте, но это не сильно облегчает задачу - всё равно перелопачивать придётся вручную.
Сам скрипт вроде такого:

Вис  Offline  Сообщение №536 написано: 1 сентября 2012, 12:44



298
Цитата Joopeeter

всё равно перелопачивать придётся вручную.


То есть мне надо искать все запертые терминалы? unsure Есть идеи как это сделать побыстрей?

JupiterJour  Offline  Сообщение №537 написано: 1 сентября 2012, 13:59


_


Цитата Вис

Есть идеи как это сделать побыстрей?


Пораньше начать.
Я о чём и толкую, нельзя со стороны определить, по крайней мере, стандартными средствами, во что именно сейчас тычет отвёрткой/пальцами игрок. Поэтому отслеживать должен сам тыкаемый объект, а для этого надо на него навесить скрипт. Что было хорошо для одного повышающего навык сейфа, может стать таким вот гемором если надо учесть всё-всё, что заперто в игре. Дверей тоже больше трёхсот, контейнеров - больше пятисот. Надо ещё не накосячить с уже имеющимися на всём этом скриптами.
В принципе, есть специальные менюмоды для взлома/хака, но в ГЭКК-вики они не упоминаются среди правильно работающих. К тому же остаётся проблема определения текущего взламываемого объекта.

Вис  Offline  Сообщение №538 написано: 1 сентября 2012, 15:05 | Отредактировано: Вис - 1 сентября 2012, 15:07



298
Цитата Joopeeter

контейнеров - больше пятисот.


На контейнеры тоже надо, как меняется скрипт и меняется ли?

JupiterJour  Offline  Сообщение №539 написано: 1 сентября 2012, 19:57 | Отредактировано: Joopeeter - 1 сентября 2012, 20:00


_


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

Кстати, там в терминалах я не учёл невзламываемые (правда, что-то не припомню таких в игре). Надо дополнить условие
if GetLocked && GetLockLevel<5
НО! В локации может быть много десятков контейнеров и в режиме меню запустятся разом скрипты на каждой копии. Уж не знаю насколько менюмод легче для игры, чем гейммод (если вообще легче), но лучше сначала проверить: поставить штук 50-70-100 копий заскриптованного контейнера и посмотреть насчёт тормозов в разных меню.
И, честно говоря, вызывает сомнения целесообразность редактирования многих сотен объектов. Даже не в смысле трудоёмкости, а в смысле что чем меньше лезешь с изменениями в оригинальное, тем лучше. Если по хорошему, то надо будет проверять каждый контейнер через Use Info, и если у него нет копий, подлежащих взлому, скрипт не вешать.
И ещё. Если контейнер заперт на взламываемый замок, но также может быть открыт и ключом, то при данном способе в обоих случаях скорее всего будет засчитан успешный взлом. Если, конечно, скрипт срабатывает до отпирания, что вероятней всего.

Вис  Offline  Сообщение №540 написано: 2 сентября 2012, 08:29



298
Joopeeter, итак, буду пробовать и с терминалами, и с контейнерами, жалко,что с дверьми не получается также :(

Добавлено (02.09.2012, 12:24)
---------------------------------------------
Как не накосячить с этим скриптом?

Code
ScriptName MQ06LLBridgeTerminalScript

Begin OnActivate
  if IsActionRef player == 1

  if ( MQ06.DBComputerOn < 2 )
   ShowMessage MQ06LLTerminalMessage
  else
   Activate
  endif

  endif
End

Куда нужно вставить скрипт?

Добавлено (02.09.2012, 12:29)
---------------------------------------------
Я пожалуй буду тут выкладывать скрипты, с которыми у меня проблемы:


Как изменить этот?

Форум » Fallout 3 » Мастерская » Помощь по моддингу (Помощь в нелегком модмейкерском деле)
Поиск:





Ответ на жалобу смотрите в разделе жалоб