Эта тема предназначена только для помощи, связанной с редактором G.E.C.K.. Все вопросы, касательно модмейкерского дела, прошу сюда - "Помощь по моддингу."
Если вместо ГЕККа запускается белый экран - это из-за ENBшного d3d9.dll в папке игры. Если после одного из обновлений винды при попытке редактирования лица перса или попытке открыть любое оружие стала выскакивать вот такая надпись Assert File: C:\projects\fallout3PC\BSShader\BSShaderManager.cpp(пути могут различаться) Line: 1996 После чего ГЕКК сворачивается. Вопрос решатся запуском ГЕКК через основную игровую видюху. Установленная по умолчанию в настройках интегрированная выдаёт такую ошибку.
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №1291
написано: 26 декабря 2012, 17:22
| Отредактировано: Galko - 26 декабря 2012, 17:54
Joopeeter, Хэй, Джуд! Полочка активатор - тоже неплохо, но слишком уж просто Нам бы это... как говорила уже: если секс - то только стоя в гамаке. На лыжах. В водолазном костюме. ЗЫ. Это refusepit виноват Сбил с толку - невидимый активатор, невидимый активатор. Действительно - создать активатор и указать моделью полочку. и все дела. Только что проверила на деревянной полке - появляется буква Е, как и заказывалось.
Ваше счастье, что я не ваше счастье
Изменение репутации для пользователя refusepit
refusepitOffline
Сообщение №1292
написано: 26 декабря 2012, 19:40
| Отредактировано: refusepit - 26 декабря 2012, 19:47
Dashie, боюсь соврать, но, по-моему, просто в разделе Actors-> NPC находите двух красавцев (точнее, красавца и красавицу): player и playerfemale - да и добавляете этим НПЦ (заготовкам игрока) на вкладке Inventory то, что душеньке угодно.
Только, если подумать, это не поможет: по-моему, скрипты очищают инвентарь на каждой стадии "взросления" в Убежище. Я просто кладу все в шкафчик в кабинете Смотрителя. Он смотритель, у него в заначке что хошь оказаться может!
А так - наверное, править скрипт квеста в Убежище: когда он доходит до стадии "Побег" - тогда и добавлять.
Joopeeter, неужто так просто?? Эхъ, приду домой - и весь мир активаторами завалю! Чтобы, понимаешь, ступить было нельзя, чтобы в активатор, значить, не вляпаться!
Галко, не, не, не! Я про гамак ничего не говорил! *бурчит* Секс в невидимом гамаке по клавише "Е"... гм... гм... есть о чем подумать...
Только, если подумать, это не поможет: по-моему, скрипты очищают инвентарь на каждой стадии "взросления" в Убежище. Я просто кладу все в шкафчик в кабинете Смотрителя. Он смотритель, у него в заначке что хошь оказаться может!
А так - наверное, править скрипт квеста в Убежище: когда он доходит до стадии "Побег" - тогда и добавлять.
Я глубоко убеждён, что править оригинальные скрипты и вообще трогать ванильное надо только в крайнем случае, предварительно хорошенько разобравшись что же ты делаешь и на что это потом повлияет. Хоть в данном случае никаких таких особых последствий и не предвидится, но лучше всё же сделать свой квест, отметить ему Start Game Enabled, в квестовом скрипте добавить предметы игроку с проверкой, что пройдена последняя очищающая инвентарь стадия начальных квестов (хм, никогда не думал об этом в таком разрезе, действительно, карапузу бронежилеты с пушками без надобности) и тут же остановить этот квест.
Изменение репутации для пользователя refusepit
refusepitOffline
Сообщение №1294
написано: 27 декабря 2012, 07:03
| Отредактировано: refusepit - 27 декабря 2012, 07:04
Я глубоко убеждён, что править оригинальные скрипты и вообще трогать ванильное надо только в крайнем случае
Абсолютно согласен.
Dashie, кстати, если копаться, какой там квест и на какой стадии исполнился-не исполнился, лень, то можно тупо, но эффективно, добавить по факту достижения уровня. Какой там уровень дается игроку, который только-только вышел из убежища? Второй, по-моему?
Вот и сделать, как говорит Joopeeter, свой "квест", в котором значение имеет только его скрипт: в этом скрипте проверяется "уровень игрока == 2? добавим вещи и поставим флаг "вещи добавлены", после чего "квест" завершается.
чем отличаются и как соотносятся ячейка и локация (cell и location)?
Cell - ячейка, элемент, часть чего-либо большого, а Location - это местоположение чего-то, ну хоть той же ячейки. Это если переводить Если мне не изменяет память - насчет ячеек был разговор. А вот, точно!!! Вот тут как раз именно тебе и рассказывала. Сейчас даже выделю там цветом, чтоб долго не искать А вообще-то, когда говорят "локация" - подразумевают конкретную местность в игре. Чаще всего - во внешнем мире: локация Гудспрингс, (ой, тут же Фол!) Мегатонна, локация - городок Андейл и так далее. А ячейка - это термин редакторский.
---------------------------------------------
Если в окне ячеек (Cell View) выбрать мировое пространство (WorldSpace) Пустоши (Wasteland) то в левой половине этого окна отобразится список всех ячеек, из которых состоит этот самый мир. Ячейки, которые имеют собственное имя - это те локации игры, в которых находится что-то важное для сюжета. И поэтому этим ячейкам и дали имена, чтобы, во-первых: их можно было при необходимости "упомянуть" в скриптах или пакетах, а во-вторых - для быстрого поиска в редакторе Переименовывать такие ячейки крайне не желательно!!! Остальные ячейки носят одинаковое имя "Дикие места" (Wilderness) и их можно уже переименовывать для своих нужд, если будешь использовать в своем моде местность этой ячейки. Ну... домик там разместишь, свечной заводик или просто - человечка. Двойной клик на строчке с названием какой-либо ячейки, например на самой первой в списке - и она загрузится в окно рендера (Render Window). Как видно на скриншоте - эта ячейка представляет собой квадратный участок\кусочек мира Пустошей. Если выделить какой-нибудь, расположенный около края, объект в этой ячейке - то в окно рендера, кроме загруженной, подгрузится и отобразится ячейка, соседняя с этой ячейкой. "Перебегая" от объекта к объекту можно пройти насквозь весь мир Пустошей.
А если в окне ячеек (Cell View) выбрать Интерьеры (Interiors) то в левой половине окна увидим список интерьерных ячеек, а попросту - интерьеров помещений. Естественно - тех помещений, в которые можно зайти в процессе игры. Например, как на скриншоте - в дом Агаты. Как писа́лось ранее - эти интерьерные ячейки не являются частью какого-либо мирового пространства, а существуют сами по себе. Каждая ячейка-интерьер - этакий отдельный самостоятельный мирок в каком-то "паралельном" пространстве. Двойной клик на строчке с нужным интерьером - и он так же будет загружен в окно рендера (если в окне рендера была другая ячейка - она, естественно, выгрузится). После загрузки мы увидим из каких объектов построен данный интерьер и что в нем находится. Кстати, если присмотреться, то видим в окне ячеек столбец по имени Location (локация). В этом столбце указана локация, т.е. - месторасположение данной ячейки. Это либо координаты по оси X Y для внешних ячеек, либо указано, что данная ячейка является интерьером и не имеет, соответственно, никаких координат-привязок к конкретной местности или миру.
Принципиальная разница между ячейками экстерьера (внешних миров) и ячейками интерьера (внутренности помещений) в том, что внешняя ячейка является составляющей частью своего мира и создать отдельную новую ячейку мирового пространства невозможно. Внешние ячейки создаются при создании (сорри за тафтологию) всего мирового пространства. Создан новый внешний мир - он автоматически будет разбит на энное количество ячеек. Вначале в списке этого мира в окне Cell View будет показано небольшое количество ячеек, только те, что находятся в "географическом" центре мира, но по мере заполнения мира разными объектами и продвижении к краям - в списке будет отображаться все большее и большее их количество. Пока мир не закончится Ячейки создаются через меню World пункт Cell. Как понятно из скриншота ниже - внешние ячейки тут нельзя создать. А вот ячейка интерьера создается ad libitum, сколько хочешь и сколько нужно. Создал новую пустую ячейку - она появится в списке окна ячеек Cell View. Загрузил её в окно рендера, накидал сколько Б-г на душу положит предметов в неё, расположил по вкусу - вот тебе новое помещение Связал дверью-телепортом с какой-нибудь дверью во внешнем мире - и можно в игре заходить через эту дверь в новый домик. Или в пещерку. Или в убежище. Или в туннель. Или лабораторию. Или в жжжж.. пасть Змей Горынычу. Поправка насчет какой-нибудь двери. Связывать телепортом нужно с незанятой, свободной дверью, которая не вела до этого ни в один интерьер. Поэтому лучше всего поставить "снаружи" новую свою дверь, встроить её в стену, в скалу, в борт грузовика, положить на землю, вариантов куча
Ваше счастье, что я не ваше счастье
Изменение репутации для пользователя refusepit
refusepitOffline
Сообщение №1298
написано: 28 декабря 2012, 05:34
| Отредактировано: refusepit - 28 декабря 2012, 06:05
Ой, спасибо тебе, Галочко! Даже неловко, что ты столько труда в ответы на тупые вопросы вкладываешь! Зато кристально ясно!
Мне это нужно было, чтобы понять про getDistance. Там сказано в примечании: "If a null reference - or a reference to an object not in the current cell - is passed, the script crashes". Как я понимаю, это значит "если референс объекта не в текущей (относительно проверяемого) cell, то кирдык вашему скрипту, и компьютеру, и вам, и даже асфальт возле вашего дома трещинами пойдет".
И есть такая проверялка, как GetInSameCell - "Returns true if the calling reference is in the same cell as the target Actor ". Вот я и пытался понять, когда она сработает и можно будет проверять собственно дистанцию.
Теперь понятно. Если я проверяю дистанс до мистера Велда (робота у ворот Мегатонны), то GetInSameCell даст 1 именно тогда, когда я окажусь в cell "MegatonMainGate", а не около Убежища 101 или внутри самой Мегатонны.
Спасибо, Галко! Ты настоящий друг, а не поросячий хвостик!
Цитата Galko
свечной заводик
Да, а мне тут довелось в молодежной среде что-то из "Песни о буревестнике" процитировать - спросили, сам ли написал...
Мне это нужно было, чтобы понять про getDistance. Там сказано в примечании: "If a null reference - or a reference to an object not in the current cell - is passed, the script crashes". Как я понимаю, это значит "если референс объекта не в текущей (относительно проверяемого) cell, то кирдык вашему скрипту, и компьютеру, и вам, и даже асфальт возле вашего дома трещинами пойдет".
Это означает, что невозможно измерять расстояния между объектами, если один в интерьере, а второй в экстерьере. Странно, да? Но если Вы хотите сравнить это расстояние с неким числом, то все работает, во всяком случае, у меня никаких проблем никогда не возникало. Т.е.: if [ObjectRef].GetDistance player > 8000 должно работать всегда.
====================== Мод "Нью-Йорк" на русском: 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
if [ObjectRef].GetDistance player > 8000 должно работать всегда.
Если этот ObjectRef только что получен функцией GetSelf - не взорвётся. Если это FormID персонажа, первым на прошлой неделе прошедшего через определённый триггер... Побойтесь бага, тот мод вместе со своими объектами ещё позавчера снесён!
Изменение репутации для пользователя refusepit
refusepitOffline
Сообщение №1302
написано: 28 декабря 2012, 09:08
| Отредактировано: refusepit - 28 декабря 2012, 09:20
Т.е. в этом описании говорится про текущую ячейку только применительно к интерьерам (или паре интерьер - экстерьер)? А в миру можно спокойно из cell MegatonWorld проверить, доедить это колесо до cell Ривер-сити аль не доедить (точнее, в пределах трех "запасом" загруженных ячеек)?
Наверное, надо максимально конкретно... Стоит у меня НПЦ возле ворот Мегатонны снаружи (MegatonMainGate cell). Чаво ему просто так стоять? Пусть робота, мистера Велла, чинит (имитация бурной деятельности)! Заставить его постоянно чинить мистера Велла я не смог (ну, вроде как RepairWall02 - это не аним-групп, когда ее пытаешься зациклить PlayGroup 2, скрипт на это и ругается). Тогда я соглашаюсь на полцарства: пусть чинит, когда ГГ к нему в первый раз подходит. Конечно, можно триггером, но триггеров там - ступить некуда. И подумалось - сделаю playIdle, когда getDistance будет в разумных пределах. Вот такая постановка задачи...
Стоит у меня НПЦ возле ворот Мегатонны снаружи (MegatonMainGate cell). Чаво ему просто так стоять? Пусть робота, мистера Велла, чинит (имитация бурной деятельности)! Заставить его постоянно чинить мистера Велла я не смог (ну, вроде как RepairWall02 - это не аним-групп, когда ее пытаешься зациклить PlayGroup 2, скрипт на это и ругается). Тогда я соглашаюсь на полцарства: пусть чинит, когда ГГ к нему в первый раз подходит. Конечно, можно триггером, но триггеров там - ступить некуда. И подумалось - сделаю playIdle, когда getDistance будет в разумных пределах. Вот такая постановка задачи
Ну, я бы поставил возле помшерифа маркер CG04StanleyFix [IDLM:0005688F], который как раз и крутит обе стеночинки случайным образом (или свой маркер сделал бы), а на маркер принудительно посадил того персонажа... Впрочем, почему бы и не мерять расстояние до ГГ - ГГ всегда существует, персонаж, на котором крутится скрипт, во время выполнения этого скрипта тоже материализован - меряй не хочу.
Ооо... А можно подробнее? Давно хочется попробовать маркер уникальной анимации!
Кстати, про маркеры... Как они соотносятся с вкладкой Idle пакетов? То есть, опытным путем я увидел, что а) персонажи, не имеющие в этой вкладке анимации курения, все равно курят на этих маркерах б) персонажи, имеющие эту анимацию, курят и не на маркерах. То есть, маркер, по сути, нужен, чтобы персонаж выполнял это действие в этом месте?
Изменение репутации для пользователя Spalny_Vagon
Spalny_VagonOffline
Сообщение №1305
написано: 28 декабря 2012, 10:18
| Отредактировано: Spalny_Vagon - 28 декабря 2012, 10:29
Тогда я соглашаюсь на полцарства: пусть чинит, когда ГГ к нему в первый раз подходит. Конечно, можно триггером, но триггеров там - ступить некуда. И подумалось - сделаю playIdle, когда getDistance будет в разумных пределах. Вот такая постановка задачи...
Смену деятельности проще всего реализовать с помощью шедулей в свойствах пакета. Без особых выкрутасов можно заставить НПС по будням с утра чинить роботов, вечером сидеть в баре, а по выходным петь в церковном хоре.
====================== Мод "Нью-Йорк" на русском: 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
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №1306
написано: 28 декабря 2012, 11:38
| Отредактировано: Galko - 28 декабря 2012, 13:06
To refusepit Уважаемый, мы и эту проблему обсуждали с Вами же Вот тут... Все курильщики в игре состоят во фракции курильщиков. И поэтому они могут проигрывать анимацию курения во время "простоя" в любом месте, поскольку эта анимация принадлежит им и только им. Чтобы заставить некурящего закурить - надо: а) его сильно напугать, чтоб он перенервничал, т.е. - "вступить" его во фракцию курящих б) или создать анимационный маркер с анимацией курения, тогда на этом маркере будут курить все, его использующие неписи. В этом ты убедился сам
Цитата refusepit
б) персонажи, имеющие эту анимацию, курят и не на маркерах
Ваше счастье, что я не ваше счастье
Изменение репутации для пользователя refusepit
refusepitOffline
Сообщение №1307
написано: 28 декабря 2012, 12:47
| Отредактировано: refusepit - 28 декабря 2012, 12:48
Galko, у меня курят все, и никто не состоит во фракции курильщиков. Они, собственно, ни к каких фракциях не состоят, НПЦ мои. И никто их не пугает, напротив, живут в тепличных условиях. По-моему, про фракцию не совсем верно. Я потому и спрашиваю, что в игре вижу одно, а читаю другое...
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №1308
написано: 28 декабря 2012, 13:01
| Отредактировано: Galko - 28 декабря 2012, 13:09
Да, да, именно так. Или на маркере, или при пакете. Поэтому я и уточняю: маркер необязателен, он нужен лишь, чтобы персонаж делал в определенном месте то, что он при наличии прописанной идле делает и так, но где попало.
Еще я не знал, что анимации могут... даже не знаю, как назвать... перекрываться? сочетаться? Совершенно выпал в осадок, когда зашел в комнату медсестры, заведенной вместо мини-больнички, а она лежит, значит, в комбинашке (не сработал скрипт переодевания в конце пакета сна, потому что я не учел хитрость "подсунуть известную броню и сразу удалить") на кровати своей и курит лежа, нахально так...
Вот такие детали я и уточняю.
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №1310
написано: 28 декабря 2012, 14:59
| Отредактировано: Galko - 28 декабря 2012, 13:11
я и уточняю: маркер необязателен он нужен лишь, чтобы персонаж делал в определенном месте то, что он при наличии прописанной идле делает и так, но где попало
Дык... само слово маркер означает - метка. Отмечает место где будет происходить нечто.
Добавлено (28.12.2012, 18:59) --------------------------------------------- Кстати, о курении... Такая вот ситуация: если создать новую сигарету в раздел "Помощь" (ведь иногда ж сигарета помогает?) дабы можно было к ней "привинтить" скрипт, срабатывающий в момент использования, и когда ГГ использует\активирует эту сигарету - срабатывает этот самый скрипт, заставляющий ГГ проигрывать анимацию курения и ГГ начинает курить (уф, длинное предложение получилось). Вопрос: как долго будет курить ГГ и как его заставить бросить это занятие в момент, выбранный самим играющим? Да и будет ли всё так просто с курением, закурит ли ГГ таким образом? Проверить в данный момент на практике не могу, поскольку редактор и игра в очередной раз "слетели".
Да и будет ли всё так просто с курением, закурит ли ГГ таким образом?
Ну, запустить PlayIdle на игроке мне ни разу не удавалось, а вот если сделать ему (себе то есть) AddScriptPackage с прописанными Idle-анимациями, то они проигрываются. Работает с пакетами Guard, Find, Travel и Sandbbox, нацеленными на Current Location либо на что-то, находящееся прямо под игроком. С ними же, но нацеленными куда либо ещё, не работает, другие не проверял. Контроль при этом полностью теряется (иногда навсегда) и возвращается (или как повезёт) только после RemoveScriptPackage. Также анимации видны только от третьего лица, а от первого отрубается управление, видно, что голова совершает какие-то движения, но не видать ни собственных рук, ни бутылки, ни сигареты (ёмаё, сразу ясно, что я далёк от здорового образа жизни, нет бы на отжиманиях проверял!). А вот функции для принудительного перехода к виду от третьего лица не предусмотрено, только обратно.
Дорогая Америка, простой вопрос, исключительно по работе с редактором... мне кажется, что я где-то это читал, а найти не могу... Есть такая болезнь, склероз, да...
Можно ли в редакторе включить/отключить показ объектов disabled? Логически мне кажется, что должно такое быть... вон, в доме игрока сколько всякой перекрывающейся дряни из "стилей жилища" понапихано - неужто так и пихали, при всеобщей видимости?
Цитата Joopeeter
ёмаё, сразу ясно, что я далёк от здорового образа жизни, нет бы на отжиманиях проверял!
Можно ли в редакторе включить/отключить показ объектов disabled? Логически мне кажется, что должно такое быть... вон, в доме игрока сколько всякой перекрывающейся дряни из "стилей жилища" понапихано - неужто так и пихали, при всеобщей видимости?
Через View -> Show/Hide Window можно включать/отключать видимость разных типов объектов (статических, подвижных, актёров и т.д.). Клавишей "1" можно циклически делать выделенные в окне рендера предметы невыделяемыми-невидимыми-обычными. Невыделяемость и невидимость предметов распространяется только на окно рендера, в окне Cell View можно с ними делать что хочешь, в том числе снова выделить и нажать единицу.
Всем доброго времени суток! Имеются 2 вопроса по ГЕККу, думаю всё-таки по нему, а не моддингу в целом. 1)На что влияет параметр у брони Weight Class: light или heavy? Мне вот не очень понятно, та же силовая броня имеет параметр light, а например плащ Вэнса - heavy. 2)Заметил, что только у силовой брони есть индивидуальный звук шагов Data\sound\fx\fst\armor\power\left или \\right, для всей же остальной брони используется звук кожаной, хотя в ресурсах игры в папке Sound.bsa имеются файлы и для металлической брони Data\sound\fx\fst\armor\metal\left или \\right. Но в ГЕККе в разделе Sound ссылок на металлическую бронь нет. Кто-нибудь подскажет как и где привязать конкретную бронь с конкретным звуком шагов?
Играми, к которым делал моды, в настоящее время, не увлекаюсь. Не имею ни желания, ни возможности эти моды исправить или доработать. Так же не смогу объяснить почему именно у вас, что-то не работает. Прошу понять и простить. С уважением к ресурсу и его пользователям. Вадим Морозов.
как и где привязать конкретную бронь с конкретным звуком шагов?
Это отчасти не использующиеся вообще звуки, отчасти зависящие от того, по чему топается (по траве, доскам, жести и т.п. - не особенно разбирая чем топается), а порой явно адресуемые из анимаций...
Ну, это-то всё ерунда - главное не спрашивай как украсть лошадь!
Изменение репутации для пользователя refusepit
refusepitOffline
Сообщение №1320
написано: 4 января 2013, 15:49
| Отредактировано: refusepit - 4 января 2013, 15:51
Можно, я про лошадь спрошу? Лошадь у меня такая: НПЦ-напарник, ничего особенного, может отчитаться о своем здоровье и слопать стимулятор, буде есть нужда. Реализация примитивная, в Beg-скрипте топика "Как самочувствие":
Код
long cH long bH
set cH to getAV Health set bH to getBaseAV Health
showMsg MSG cH bH
Я этот скрипт привожу, только чтобы показать, что нет никаких заморочек и хитростей. Все пррррекрасно работает.
Но. Если на этого НПЦ повесить скрипт (совершенно банальный, на событие "бобик сдох" вывести сообщение "бобик сдох") - он начинает говорить, что здоровье у него 0 из 0. Т.е. вот эти getAv, getBaseAV перестают работать. Убираем скрипт - снова все пучком. Тип скрипта, похоже, значения не имеет: на нем висели и onCombatEnd, и onHit - результат тот же: нет скрипта, состояние здоровья отображается, есть скрипт - "0 из 0".
Ладно, плюнул я и в скрипте квеста GameMode проверяю, не сдох ли бобик. Но осадочек неприятный остался, дорогая Америка! Хочет понять: это я дурак, или все-таки лыжи не едут? Почему заскриптованный персонаж не может на getAV простенький ответить вежливо?