Garden of Eden Creation Kit - 2 ч. - один из самых важных отделов нашей Мастерской. Перечень вопросов огромен, проще написать о чём здесь спрашивать нежелательно. Не нужно спрашивать про скрипты, про NifSkope, работу в 3D и графических редакторах.
Смотри свою проблему в Картотеке, Пред тем, как в теме свой вопрос задать, Возможно, там уже и есть ответы, Которые тебе хотелось знать.
Если вместо ГЕККа запускается белый экран - это из-за ENBшного d3d9.dll в папке игры. Если после одного из обновлений винды при попытке редактирования лица перса или попытке открыть любое оружие стала выскакивать вот такая надпись Assert File: C:\projects\fallout3PC\BSShader\BSShaderManager.cpp(пути могут различаться) Line: 1996 После чего ГЕКК сворачивается. Вопрос решатся запуском ГЕКК через основную игровую видюху. Установленная по умолчанию в настройках интегрированная выдаёт такую ошибку.
как партотировать оружие из fallout new vegasa в fallout 3 и обратно?
Нужно встроить оружие (модель) в какое-нибудь стандартное оружие из Fallout 3 согласно алгоритму из этого туториала. И наоборот. Ну и соответственно произвести соответствующие настройки (анимация перезарядки, снаряд и т. д.).
Я есмь Альфа и Омега, начало и конец. Жаждущему дам даром от источника воды живой.
Нужно встроить оружие (модель) в какое-нибудь стандартное оружие из Fallout 3 согласно алгоритму из этого туториала. И наоборот. Ну и соответственно произвести соответствующие настройки (анимация перезарядки, снаряд и т. д.).
А можно и FNEdit'ом
Изменение репутации для пользователя ITU
ITUOffline
Сообщение №995
написано: 17 июня 2012, 10:12
| Отредактировано: ITU - 17 июня 2012, 11:52
Возможно изменить вот этот скрипт (при нажатии на "говорить" открывается инвентарь НПС) так, чтобы ещё НПС поворачивался в твою сторону (в пакете стоит галка Headtracking Off, чтобы попусту не вертелся). В общем как в оригинале - нажал "говорить", к тебе повернулся НПС, но вместо диалога открылся его инвентарь. Вот скрипт
Code
Begin OnActivate
OpenTeammateContainer 1
End
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №998
написано: 17 июня 2012, 18:46
| Отредактировано: Joopeeter - 17 июня 2012, 18:48
if Activated==1 if timer>0 set timer to timer - GetSecondsPassed else OpenTeammateContainer 1 set Activated to 0 endif endif
End
В топике GREETING создаём для него приветствие с отмеченной галкой Goodbye. Не обязательно из слов, можно из одних пробелов. В поле Result Script пишем:
Code
set zzzRef.timer to 1.5 set zzzRef.Activated to 1
где: zzzRef - это Reference Editor ID непися 1.5 - время задержки между активацией и открытием, можно поменять по вкусу.
Не до конца уверен насчёт рациональности предложенного решения (всё-таки GameModе), но работает.
Изменение репутации для пользователя Вис
ВисOffline
Сообщение №999
написано: 17 июня 2012, 18:56
| Отредактировано: Вис - 17 июня 2012, 19:02
Добавлено (17.06.2012, 22:56) --------------------------------------------- И ещё: если у меня несколько одинаковых НПС, то нужно для каждого создавать отдельный GREETING?
В каком смысле одинаковых? Несколько копий одного и того же базового? Хотя отдельные квесты в любом случае не нужны, но в этом случае скрипт немного усложнится. Если же у них разные BaseID, то проблемы вообще нет.
В топике GREETING создаём для него приветствие с отмеченной галкой Goodbye.
Я бы все-таки попробовал обойтись без скрипта на "чемодан" и просто вставить вместо этого: set zzzRef.timer to 1.5 set zzzRef.Activated to 1 вот это: OpenTeammateContainer А еще можно попробовать для разворота НПС к игроку вставить в левый результ-скрипт команду look player.
====================== Мод "Нью-Йорк" на русском: 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
Тогда результ-скрипты убираем и присваиваем переменным значения в блоке OnActivate. RefID в этом случае можно не давать. Скрипт на базовом неписе:
Code
scn zzzScript
float timer short Activated
Begin OnActivate
;Look player эта строка не нужна, просто я показываю, куда ещё пробовал вставлять Look set timer to 1.5 set Activated to 1 Activate; эту строку совместно с Look не использовал
End
Begin GameMode
if Activated==1 if timer>0 set timer to timer - GetSecondsPassed else OpenTeammateContainer 1 set Activated to 0 ; StopLook эта строка тоже не нужна, она прекращает действие функции Look endif endif
End
Смысл всех этих действий: каждая копия базового NPC будет использовать одну и ту же фразу из топика GREETING, но на каждой из них при активации будет запускаться своя, отдельная копия скрипта, со своим таймером и прочим.
Всё бы ничего, но тогда чемодан сначала открывается, а потом (когда закрыли) поворачивается, даже если результ-скрипт на открывание стоит после максимально длинной фразы. А надо наоборот. Именно для задержки и пришлось городить огород с гейммодом и таймером. Другого способа отсрочить выполнение команды не придумал (читал, что в Скайриме у функций есть специальный параметр для этого, везёт же). Да, сознаюсь, про Look я как-то не подумал, но это, как выяснилось, ни на что не повлияло, так как Look на этих чемоданах (именно, зараза, на них!) не срабатывает ни из скрипта, ни с консоли. Так что приветствие всё равно нужно, тогда NPC по-любому повернётся, даже безо всяких принуждений, лишь бы заданного в таймере времени хватило.
Левые результ-скрипты срабатывают ДО фразы, правые - ПОСЛЕ.
====================== Мод "Нью-Йорк" на русском: 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
А флаг Goodbye случайно не убрал? Если да - верни на место. Диалог начинается с твоей фразы или с общей? Если с общей - проверь приоритет квеста. Если ничего не помогает (глюкануло, бывает), то вместо Activate поставь SayTo player GREETING. Или перенеси фразу в другой топик, тогда будет SayTo player [название топика]. Вообще, можно для разворота непися к игроку использовать не фразу, а пакет, нацеленный на игрока. Тогда вместо Activate будет AddScriptPacckage [название этого пакета]. Можно поэксперементировать с расстоянием до игрока (радиус) и результ-скриптами пакета, может, получится использовать их сочетание для настройки поворота-открытия. Тогда можно будет выкинуть весь блок GameMode. И попробуй вариант без Activate, но с Look и StopLook (тогда фраза никакая не нужна). Может, это у меня Look глючит, а то вот только что и Kill работало через раз.
Кроме случаев, когда фраза вызвана через SayTo - тогда скрипт срабатывает примерно через 5 сек.
На мой взгляд, все это слишком сложно. Я бы вставил в скрипт один единственнй блок для доступа к контейнеру и еще один для разворота в сторону игрока: begin onactivate plaer open teammatecontainer 1 end begin onpackagestart [аi-пакет] look player end В этом случае не нужны ни квесты, ни диалоги, и скрипт ресурсов практически не отбирает.
====================== Мод "Нью-Йорк" на русском: 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
Не можете подсказать для примера, какой тип лучше подойдёт и какие настройки должны быть обязательными. Как я понял из обсуждения этот AI пакет нужен что бы NPC повернулся к игроку. Пакет Диалога можно использовать? Я сначала подумал, что есть какой то флаг, заставляющий непися следить за движением игрока, а там как раз наоборот HeadTracking Off. Я пробовал SanBox дефолтный, да непись поворачивается лицом к подходящему игроку, но не всегда. Пока.
Не можете подсказать для примера, какой тип лучше подойдёт и какие настройки должны быть обязательными. Как я понял из обсуждения этот AI пакет нужен что бы NPC повернулся к игроку. Пакет Диалога можно использовать? Я сначала подумал, что есть какой то флаг, заставляющий непися следить за движением игрока, а там как раз наоборот HeadTracking Off. Я пробовал SanBox дефолтный, да непись поворачивается лицом к подходящему игроку, но не всегда. Пока.
Пактет нужен для того, чтобы он был как таковой. Для блока begin onpackagestart нужен пакет, без пакета работать не будет. Диалог не подходит. Я использовал для проверки sandbox собственного изготовления. Если пакет стандартный, то look лучше затолкать в скрипт, чтобы не портить родной пакет. А если пакет свой собственный, то лучше look player разместить прямо в нем, в результ-скриптах, в двух местах, оn begin и on change. А вообще, для того, чтобы дать исчерпывающий ответ, нужно знать, в чем заключается глобальная задача. Нужно, чтобы НПС все время смотрел на игрока? Поставьте его в угол и не мучайтесь.
====================== Мод "Нью-Йорк" на русском: 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
А вообще, для того, чтобы дать исчерпывающий ответ, нужно знать, в чем заключается глобальная задача. Нужно, чтобы НПС все время смотрел на игрока? Поставьте его в угол и не мучайтесь.
Да нет глобальной задачи! Я почитал обсуждение и решил, что задача именно в том, что бы развернуть игрока лицом, к игроку. Так как с доступом к инвентарю смысла нет огород городить. Добавить команду AAATestCountFemaleRef.OpenTeammateContainer 1 в Resut Script (End) и всё. Ну и пусть будет Привет - инвентарь - Пока. Что квест создавать, что AI пакет разницы по времязатратам особой нет. Ну и не глобальная задача была и есть, добавить этот вопрос и ответ на него в Картотеку. Вдруг кому то, кроме Bис захочется не торговать, а просто забирать вещи. Пока.
Отсоединяюсь, уже посмотрел. А что "манекены" шевелятся это баг или фича? А то тут где-то было обсуждение насчёт того, как делать статуи из актёров. Даже, по-моему, в "Картотеку" внесено.
Собственно обсуждение вот тут началось и где-то тут закончилось. Скриптовый способ вполне обратимый. A тут, так сказать, квинтэссенция.
Ещё немного удивила необходимость заталкивать "манекены" куда надо вручную. Раз уж они живые, пусть сами топают! Скрипты, конечно, усложнятся изрядно.
Насчёт Look. Функция работает крайне ненадёжно. Например, хоть ГЕКК-вики и не пишет об этом, Look не отменяет действие флага Headtracking Off. Более того, она часто не срабатывает или срабатывает с большой задержкой при смене пакета с Headtracking Off на другой, из какого скрипта её ни вызывай (объектного, эффектного, результирующего в пакете или квесте - без разницы). Например, вот так не фурычит (если текущий пакет с Headtracking Off):
Ну, Вы прямо настоящее исследование замутили. Спасибо. "Для себя" я редко использовал команду look, по прямому назначению, собственно говоря, один раз, и вставлял ее в результ-скрипты пакета sandbox. Разумеется, будет она работать или не будет в сочетании с отмеченным флагом Headtracking Off, я не проверял. А вот для того, чтобы отменить какую-нибудь принудительно запущенную анимацию, команду look я использовал довольно часто.
====================== Мод "Нью-Йорк" на русском: 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
У меня предмет при активации в инвентаре телелепортируется ко мне с помощью команды "moveto.player". Вся проблема в том, что он телепортируется то впереди, то позади, то сбоку. Возможно сделать так, чтобы он телепортировался на моё место или не много впереди?
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №1020
написано: 20 июня 2012, 11:05
| Отредактировано: Joopeeter - 20 июня 2012, 11:27
Возможно сделать так, чтобы он телепортировался на моё место или не много впереди?
Подозреваю, что предмет и так телепортируется на твоё место, но игра предусмотрительно смещает его в сторону, чтоб сам же ты в нём не застрял. Чтобы не оставлять это на произвол игры, добавим немного тригонометрии:
Begin OnEquip; взято для примера, замени на нужный блок
set Offset to 100; 100 - расстояние, на котором возникнет предмет, можно поменять set Angle to player.GetAngle z
if Angle<90 set TrigAngle to 90 - Angle else set TrigAngle to 450 - Angle endif
set OffsetX to Offset*Cos TrigAngle set OffsetY to Offset*Sin TrigAngle
zzzRef.MoveTo player OffsetX OffsetY Set Angle to Angle+180; см. примечание zzzRef.SetAngle z Angle; см. примечание
End
Примечание. Те две строки разворачивают предмет мордой лица к игроку. Если это не требуется, то они не нужны.
Кстати, насчёт тех "манекенов". Обязательно запиши их во фракцию игрока (вкладка Factions, правый клик -> New -> PlayerFaction), а то стрельнёшь в такого, а он чего-то убегает.