Прежде чем задавать вопрос - посмотрите в >> КАРТОТЕКЕ << Возможно, там уже есть готовый ответ.
Тема предназначена для общих вопросов. Прежде, чем тут что-то написать, посмотрите другие темы этого раздела. Вполне возможно, что они больше соответствуют тематике вашего вопроса.
ВАЖНО! Название архива должно быть точно таким же, как название файла плагина esp, к которому этот архив прилагается. Если архив создается для мастер-файла esm то в названии плагина надо еще добавить через пробелы знак тире и еще дополнительное слово. Если в архиве только модели - то обычно добавляют слово meshes, если текстуры - то слово textures, если звуки - то sound. Если это полный архив, с моделями, текстурами и прочим добром - обычно добавляют слово main.
Galko, можно ли получить ссылку на первоисточник?
====================== Мод "Нью-Йорк" на русском: 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
(поправляя пенсне) А в чем, собственно, дело? То, что название архива должно быть таким же, как название плагина (иначе придется насильно прописывать архив в ini-файле) известно еще с Обливиона. Насчет дополнительного слова в названии для мастеров - это было в учебнике по ГЕКК. Скачивала его уже не помню откуда, кажется с сайта Игоря Ра. Приду домой - посмотрю точно.
Spalny_Vagon, еще можно попытаться спросить у Demolir - он в разделе по Скайриму подобную же инфу приводил, кажется. Во всяком случае тут есть его статья по созданию архивов для ская.
<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a> Да, мы бандиты и бродяги, как злословит молва, Мы попадаем в передряги, помня эти слова. Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
Изменение репутации для пользователя farnak
farnakOffline
Сообщение №2437
написано: 21 февраля 2013, 09:50
| Отредактировано: farnak - 21 февраля 2013, 12:01
Маэстро, я Вас немного обманула Первоисточник не на сайте Игоря Ра, а на гекковском офф.сайте Беседки
В основном, лучший способ помещать файлы в архив .bsa перед самым релизом мода, так как мучиться с доступом к файлам во время работы с модом непрактично. Когда будете готовы поместить файлы в BSA, воспользуйтесь для этого одним из перечисленных ниже инструментов. Вам нужно будет следить за корректной структурой папок, так, если у вас текстура лежит в папке .../Data/Textures/Weapons/, то в файле .bsa эта текстура должна быть тоже в папке /Textures/Weapons/ (обратите внимание, что сама папка /Data/ не включается).
Чтобы движок распознал ваши созданные .bsa файлы, есть два способа:
■Первый - назвать архив .bsa таким же именем, которое у файла вашего мода .esp. Например, если у вашего мода название JunkyMod.esp, назовите архив BSA как JunkyMod.bsa. Игра будет автоматически искать нужные моду материалы в .bsa с таким же именем, которым назван файл мода .esp.
■Однако указанный метод не работает с мастер файлами .esm (смотрите категорию Data Files), поэтому существует и второй метод использования архивов. Если ваш мод назван JunkyMod.esm, вам нужно будет создать пустой файл .esp (просто откройте GECK без загрузки каких-либо файлов и нажмите Сохранить), назвав его JunkyMod.esp. После чего назовите свой BSA как JunkyMod - Assets.bsa. Слово Assets вы можете изменить на любое другое, так как название .esm файла включает первое слово файла .esp. Таким ухищрением вы заставите движок искать материалы для файла .esm в соответствующем файле BSA.
PS. Не знаю, правда, насколько оправданно создавать пустой еспешник в случае с модом, состоящим из мастера. В Фол3 я архивы не создавала, а в Вегасе точно знаю, что пустой еспешник не нужен. Достаточно мастера и соответствующе названного архива.
Galko, мне нужна твою помощь( Я сделал все как ты писала, но почему то все равно не работает... В .bsa запаковую текстуры и меши, и он не принадлежит каком то есп или есм ну может только falloutnv.esm, я писал FalloutNV - main.bsa, но ничего не случилось...валидацию сделал.
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №2440
написано: 21 февраля 2013, 15:01
| Отредактировано: Galko - 21 февраля 2013, 15:05
Ну значит так... Выходит цель как бы "мода" изменить текстуры пустошей там двери, окна, и т.д, ну и некоторые правленные ванильных моделей, так он без запаковки работает.
Насколько я знаю, актуальный движок игры при загрузке модуля filename.esp подгружает все архивы filename*.bsa - причём звёздочка может быть и отсутствием символов - и точно так же поступает при загрузке модуля filename.esm. Если я правильно помню, в первых версиях fallout3.exe (во времена которых была написана эта статья GECK-вики) использовался какой-то другой алгоритм.
popolkon, "без запаковки работает", так как игра использует лежащие вне BSA ресурсы в первую очередь. После того, как ты пакуешь этот свой ремоделинг/ретекстур в BSA, чего ради игра будет использовать его, а не ваниль?
Мосье, же не манж па сис жур... Умер 23.04.2019
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №2444
написано: 21 февраля 2013, 15:32
| Отредактировано: Ipatow - 21 февраля 2013, 15:33
Насколько я знаю, порядок поиска файлов такой - сначала файл ищется в SArchiveList (прописано в INI-файле) в том порядке, в каком архивы там перечислены (при этом знаменитый ArchiveInvalidationInvalidated!.bsa подсовывает вместо себя все свободно лежащие файлы), затем в подключенных модулями архивах (насколько я знаю, в порядке загрузки модулей - но я не знаю, как сортируются множественные архивы одного модуля, не то чтобы был какой-то смысл дублировать их содержимое). Как только файл найден, поиск прекращается. Чтобы заменить стандартный файл, ты должен подсунуть замену так, чтобы она нашлась раньше стандартных файлов - то есть либо уложить её в архив и прописать его в начало SArchiveList, либо воспользоваться любезностью ArchiveInvalidationInvalidated! и положить файл в папку безо всяких архивов.
popolkon, От оно чё. Михалыч... Тут суть такова. Движок считывает из основного мастер-файла данные о модели и загружает ее в игру. Данные о текстуре берутся из самой модели. Если этой модели назначена другая, альтернативная текстура - то путь к этой текстуре также прописан в мастер-файле и данные также берутся из него. Все ванильные модели и текстуры запакованы разрабами в архивы бса. Поэтому-то при ретекстурировании (то есть при изменении ванильных текстур на свои) новые текстуры скидываются напрямую в папку Дата\текстурес по точно такому же пути, как родные текстуры в архиве. Это делается потому, что сначала текстуры ( и не только) ищутся в каталогах папки Дата, и если в них ничего не найдено - то только тогда игра "заглядывает" в архив и берет текстуры оттуда. Если же ты свои новые текстуры просто запаковал в отдельный архив, то откуда движок знает, что нужно залезть в этот архив? Откуда он получит команду? Можно попробовать прописать новый архив в файле Fallout_default.ini (в корневом каталоге игры) и в файле Fallout.ini в папке Мои документы\Мои игры\Нью-Вегас В этом файле, в секции архивов дописать имя своего бса-шника
Попробуй. Попытка - не пытка Только, опять же, на мой взгляд - такое решение (если оно сработает) будет не совсем красивым. То есть - при публикации своего мода тебе придется "дать объявление", типа, чтоб все работало - внесите изменения в файл ini. Не каждый пользователь обрадуется.
Ваше счастье, что я не ваше счастье
Изменение репутации для пользователя farnak
farnakOffline
Сообщение №2448
написано: 21 февраля 2013, 16:40
| Отредактировано: farnak - 21 февраля 2013, 16:42
данный скрипт работает везде, кроме Новака (видимо из-за наличия неактивной копии Буна). Как решить проблему?Код set currentRef to GetFirstRef 42 1 0 ; NPC Label 1 if currentRef if ( currentRef.GetPlayerTeammate == 1) if ( currentRef == CraigBooneREF) && (currentRef.HasMagicEffect spell != 1) ; Craig Boone currentRef.CastImmediateOnSelf spell endif endif set currentRef to GetNextRef Goto 1 endif
В общем если уменьшить глубину поиска, то скрипт работает нормально. Еще не понятно почему временами не срабатывает в текущей локации и запускается только при смене локации.
Есть ничем не примечательный сейв в ячейке ультра-люкса.
Этот скрипт вешать спелл не хочет
Код
if ( GetPlayerTeammateCount > 0 ) set currentRef to GetFirstRef 42 0 0 ; NPC Label 1 if currentRef if ( currentRef.GetPlayerTeammate == 1)
endif set currentRef to GetNextRef Goto 1 endif endif
А вот этот работает без проблем. Йанифиганипонял.
Код
if ( GetPlayerTeammateCount > 0 ) set currentRef to GetFirstRef 42 0 0 ; NPC Label 1 if currentRef player.damageAV health 1 if ( currentRef.GetPlayerTeammate == 1)
обычный глюк фолла, обычно у меня возникал если объект с ID находится в другой локации иногда помогает после set currentRef to GetFirstRef 42 1 0 , ставить паузу в 0.1 секунды и скорее всего player.damageAV health 1, как раз дает тот же эффект этой задержки, ну или какое-то эффект обновление в ядре игры.
как показал дотошный дебаг, сам скан работает без пропуска неписей, а вот функция GetPlayerTeammate лажает
Ссылки, которые выдаёт сканирование, действтительно не сразу полностью "работоспособны". То есть функции, извлекающие какую-то информацию, некоторое время извлекают сплошные нули. Совершенно типичная ситуация - сканируем NPC, GetNextRef, по найденному "GetIsSex мужик?" - не, не мужик - "GetIsSex тётка?" - не. не тётка - "А КТОООО?"
При этом ставить в сканер специальную тормозилку неконструктивно, сканер обязан отработать без прерываний, и такой тормоз будет серпом по молоту всем остальным скриптам. Потому желательно планировать алгоритм так, чтобы тебе не нужно было по ходу сканирования опрашивать найденные ссылки...
Потому желательно планировать алгоритм так, чтобы тебе не нужно было по ходу сканирования опрашивать найденные ссылки...
ссылки конечно можно откладывать на потом в импровизированный массив, но сомневаюсь, что это будет оптимальнее небольшой паузы посредством той же player.damageAV health
Так....не помогло..я уже все перепробовал, даже нашел ошибку в имени бса..но всеравно толку 0...что же далать?(
Добавлено (22.02.2013, 19:46) --------------------------------------------- Кстати, ещё кое-что... Как назначить худ (руки)? На пример силовой броне поменять на руки комбеза робко
то есть - ты попробовал в файле Fallout.ini прописать свой архив по совету Ипатова в начало списка архивов: SArchiveList=ТвойАрхив.bsa, Fallout - Textures.bsa, Fallout - Textures2.bsa, Fallout - Meshes.bsa, Fallout - Voices1.bsa, Fallout - Sound.bsa, Fallout - Misc.bsa и всё равно не помогло? Тогда, возможно, сам архив запакован с нарушением "построения" папок. Можешь дать скриншот архива, открытого в бса-анпакере?
<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a> Да, мы бандиты и бродяги, как злословит молва, Мы попадаем в передряги, помня эти слова. Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)