Модератор форума: КсюXa, ApeX  
Форум » Fallout: New Vegas » Мастерская » ВОПРОСЫ по моддингу (Спрашиваем и отвечаем на тему как сделать то или это...)

ВОПРОСЫ по моддингу
Defox  Offline  Сообщение №1 написано: 3 ноября 2010, 11:46 | Отредактировано: ApeX - 3 ноября 2018, 10:41


Project Fallout: Wild Wasteland


463
Прежде чем задавать вопрос - посмотрите в
>> КАРТОТЕКЕ <<

Возможно, там уже есть готовый ответ.

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

Graf  Offline  Сообщение №2431 написано: 20 февраля 2013, 15:41



179
Цитата Galko

А зачем маркеры-то друг к другу привязывать?

При патруле нпц будет ходить по маркерам, а в аи пакете можно будет выбрать 1 маркер, с которого начинается движение.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Galko  Offline  Сообщение №2432 написано: 21 февраля 2013, 05:12


GALAктическая мартышка


Graf, точно... Из маркеров же составляется маршрут. Что-то я туплю. smile2

Ваше счастье, что я не ваше счастье
Spalny_Vagon  Offline  Сообщение №2433 написано: 21 февраля 2013, 06:15


Мастер


Цитата Galko

ВАЖНО! Название архива должно быть точно таким же, как название файла плагина 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
Galko  Offline  Сообщение №2434 написано: 21 февраля 2013, 07:04


GALAктическая мартышка


Цитата Spalny_Vagon

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


(поправляя пенсне) А в чем, собственно, дело?
То, что название архива должно быть таким же, как название плагина (иначе придется насильно прописывать архив в ini-файле) известно еще с Обливиона. Насчет дополнительного слова в названии для мастеров - это было в учебнике по ГЕКК. Скачивала его уже не помню откуда, кажется с сайта Игоря Ра. Приду домой - посмотрю точно.

Ваше счастье, что я не ваше счастье
Spalny_Vagon  Offline  Сообщение №2435 написано: 21 февраля 2013, 08:15


Мастер


Цитата 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
Artem13  Offline  Сообщение №2436 написано: 21 февраля 2013, 08:22


Mercenaries. Со смертью на ты.


Spalny_Vagon, еще можно попытаться спросить у Demolir - он в разделе по Скайриму подобную же инфу приводил, кажется. Во всяком случае тут есть его статья по созданию архивов для ская.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
farnak  Offline  Сообщение №2437 написано: 21 февраля 2013, 09:50 | Отредактировано: farnak - 21 февраля 2013, 12:01



22
данный скрипт работает везде, кроме Новака (видимо из-за наличия неактивной копии Буна). Как решить проблему?

Код
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

Galko  Offline  Сообщение №2438 написано: 21 февраля 2013, 13:50 | Отредактировано: Galko - 21 февраля 2013, 13:57


GALAктическая мартышка


Цитата Spalny_Vagon

Galko, можно ли получить ссылку на первоисточник?



Маэстро, я Вас немного обманула unsure Первоисточник не на сайте Игоря Ра, а на гекковском офф.сайте Беседки


PS. Не знаю, правда, насколько оправданно создавать пустой еспешник в случае с модом, состоящим из мастера. В Фол3 я архивы не создавала, а в Вегасе точно знаю, что пустой еспешник не нужен. Достаточно мастера и соответствующе названного архива.

Ваше счастье, что я не ваше счастье
Doge  Offline  Сообщение №2439 написано: 21 февраля 2013, 14:50



77
Galko, мне нужна твою помощь(
Я сделал все как ты писала, но почему то все равно не работает...
В .bsa запаковую текстуры и меши, и он не принадлежит каком то есп или есм ну может только falloutnv.esm, я писал FalloutNV - main.bsa, но ничего не случилось...валидацию сделал.  unsure

Galko  Offline  Сообщение №2440 написано: 21 февраля 2013, 15:01 | Отредактировано: Galko - 21 февраля 2013, 15:05


GALAктическая мартышка


Цитата popolkon

В .bsa запаковую текстуры и меши, и он не принадлежит каком то есп или есм ну может


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

Ваше счастье, что я не ваше счастье
Doge  Offline  Сообщение №2441 написано: 21 февраля 2013, 15:13



77
Ну значит так...
Выходит цель как бы "мода" изменить текстуры пустошей там двери, окна, и т.д, ну и некоторые правленные ванильных моделей, так он без запаковки работает.

Ipatow  Offline  Сообщение №2442 написано: 21 февраля 2013, 15:18



Цитата Galko

Не знаю, правда, насколько оправданно

Насколько я знаю, актуальный движок игры при загрузке модуля filename.esp подгружает все архивы filename*.bsa - причём звёздочка может быть и отсутствием символов - и точно так же поступает при загрузке модуля filename.esm. Если я правильно помню, в первых версиях fallout3.exe (во времена которых была написана эта статья GECK-вики) использовался какой-то другой алгоритм.

tundruck73  Offline  Сообщение №2443 написано: 21 февраля 2013, 15:25



popolkon, "без запаковки работает", так как игра использует лежащие вне BSA ресурсы в первую очередь. После того, как ты пакуешь этот свой ремоделинг/ретекстур в BSA, чего ради игра будет использовать его, а не ваниль?

Мосье, же не манж па сис жур...
Умер 23.04.2019
Ipatow  Offline  Сообщение №2444 написано: 21 февраля 2013, 15:32 | Отредактировано: Ipatow - 21 февраля 2013, 15:33



Цитата popolkon

цель как бы "мода" изменить текстуры


Насколько я знаю, порядок поиска файлов такой - сначала файл ищется в SArchiveList (прописано в INI-файле) в том порядке, в каком архивы там перечислены (при этом знаменитый ArchiveInvalidationInvalidated!.bsa подсовывает вместо себя все свободно лежащие файлы), затем в подключенных модулями архивах (насколько я знаю, в порядке загрузки модулей - но я не знаю, как сортируются множественные архивы одного модуля, не то чтобы был какой-то смысл дублировать их содержимое). Как только файл найден, поиск прекращается. Чтобы заменить стандартный файл, ты должен подсунуть замену так, чтобы она нашлась раньше стандартных файлов - то есть либо уложить её в архив и прописать его в начало SArchiveList, либо воспользоваться любезностью ArchiveInvalidationInvalidated! и положить файл в папку безо всяких архивов.

Galko  Offline  Сообщение №2445 написано: 21 февраля 2013, 15:45


GALAктическая мартышка


popolkon, От оно чё. Михалыч...
Тут суть такова. Движок считывает из основного мастер-файла данные о модели и загружает ее в игру. Данные о текстуре берутся из самой модели. Если этой модели назначена другая, альтернативная текстура - то путь к этой текстуре также прописан в мастер-файле и данные также берутся из него. Все ванильные модели и текстуры запакованы разрабами в архивы бса. Поэтому-то при ретекстурировании (то есть при изменении ванильных текстур на свои) новые текстуры скидываются напрямую в папку Дата\текстурес по точно такому же пути, как родные текстуры в архиве. Это делается потому, что сначала текстуры ( и не только) ищутся в каталогах папки Дата, и если в них ничего не найдено - то только тогда игра "заглядывает" в архив и берет текстуры оттуда.
Если же ты свои новые текстуры просто запаковал в отдельный архив, то откуда движок знает, что нужно залезть в этот архив? Откуда он получит команду? Можно попробовать прописать новый архив в файле Fallout_default.ini (в корневом каталоге игры) и в файле Fallout.ini в папке Мои документы\Мои игры\Нью-Вегас
В этом файле, в секции архивов дописать имя своего бса-шника

[Archive]
SInvalidationFile=ArchiveInvalidation.txt
iRetainFilenameOffsetTable=1
iRetainFilenameStringTable=1
iRetainDirectoryStringTable=1
bCheckRuntimeCollisions=0
bInvalidateOlderFiles=1
bUseArchives=1
SArchiveList=Fallout - Textures.bsa, Fallout - Textures2.bsa, Fallout - Meshes.bsa, Fallout - Voices1.bsa, Fallout - Sound.bsa, Fallout - Misc.bsa ТвойАрхив.bsa

Не уверена, что сработает, но вдруг...

Добавлено (21.02.2013, 19:45)
---------------------------------------------
Пока печатала - уже объяснили и поправили smile2


Ваше счастье, что я не ваше счастье
Doge  Offline  Сообщение №2446 написано: 21 февраля 2013, 15:51



77
Сейчас попробую

Galko  Offline  Сообщение №2447 написано: 21 февраля 2013, 16:15


GALAктическая мартышка


Цитата popolkon

Сейчас попробую


Попробуй. Попытка - не пытка :) Только, опять же, на мой взгляд - такое решение (если оно сработает) будет не совсем красивым. То есть - при публикации своего мода тебе придется "дать объявление", типа, чтоб все работало - внесите изменения в файл ini. Не каждый пользователь обрадуется.

Ваше счастье, что я не ваше счастье
farnak  Offline  Сообщение №2448 написано: 21 февраля 2013, 16:40 | Отредактировано: farnak - 21 февраля 2013, 16:42



22
Цитата farnak

данный скрипт работает везде, кроме Новака (видимо из-за наличия неактивной копии Буна). Как решить проблему?Код
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)     
                    
                    if    ( currentRef == CraigBooneREF ) && (currentRef.HasMagicEffect effect != 1)        ; Craig Boone
                        currentRef.CastImmediateOnSelf spell        
                    endif

                endif
                set currentRef to GetNextRef
                Goto 1
            endif
        endif
А вот этот работает без проблем. Йанифиганипонял. mellow
Код
if ( GetPlayerTeammateCount > 0 )
            set currentRef to GetFirstRef 42 0 0                     ; NPC
            Label 1
            if currentRef        
                player.damageAV health 1
                if ( currentRef.GetPlayerTeammate == 1)     
                    
                    if    ( currentRef == CraigBooneREF ) && (currentRef.HasMagicEffect effect != 1)        ; Craig Boone
                        currentRef.CastImmediateOnSelf spell        
                    endif

                endif
                set currentRef to GetNextRef
                Goto 1
            endif
        endif

ITU  Offline  Сообщение №2449 написано: 21 февраля 2013, 18:00 | Отредактировано: ITU - 21 февраля 2013, 18:02



995
Цитата farnak

запускается только при смене локации

обычный глюк фолла, обычно у меня возникал если объект с ID находится в другой локации
иногда помогает  после set currentRef to GetFirstRef 42 1 0 , ставить паузу в 0.1 секунды
и скорее всего player.damageAV health 1, как раз дает тот же эффект этой задержки, ну или какое-то эффект обновление в ядре игры.

farnak  Offline  Сообщение №2450 написано: 22 февраля 2013, 00:37



22
как показал дотошный дебаг, сам скан работает без пропуска неписей, а вот функция GetPlayerTeammate лажает.

без player.damageAV health 0
Код
SetConsoleOutputFilename >> 'test1.txt'
Start
Тед Гундерсон GetPlayerTeammate = 0  
Бун GetPlayerTeammate = 0  
Белая перчатка GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Белая перчатка GetPlayerTeammate = 0  
Бармен GetPlayerTeammate = 0  
Белая перчатка GetPlayerTeammate = 0  
Мортимер GetPlayerTeammate = 0  
Хек Гундерсон GetPlayerTeammate = 0  
Белая перчатка GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Наемник Гундерсона GetPlayerTeammate = 0  
Кассир "Ультра-Люкса" GetPlayerTeammate = 0  
Администратор "Белой перчатки" GetPlayerTeammate = 0  
End


с функцией player.damageAV health 0

Код
SetConsoleOutputFilename >> 'test2.txt'
Start
Тед Гундерсон GetPlayerTeammate = 0  
Бун GetPlayerTeammate = 1  
Белая перчатка GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Белая перчатка GetPlayerTeammate = 0  
Бармен GetPlayerTeammate = 0  
Белая перчатка GetPlayerTeammate = 0  
Мортимер GetPlayerTeammate = 0  
Хек Гундерсон GetPlayerTeammate = 0  
Белая перчатка GetPlayerTeammate = 0  
Игрок GetPlayerTeammate = 0  
Наемник Гундерсона GetPlayerTeammate = 0  
Кассир "Ультра-Люкса" GetPlayerTeammate = 0  
Администратор "Белой перчатки" GetPlayerTeammate = 0  
End

Ipatow  Offline  Сообщение №2451 написано: 22 февраля 2013, 02:51



Цитата farnak

как показал дотошный дебаг, сам скан работает без пропуска неписей, а вот функция GetPlayerTeammate лажает

Ссылки, которые выдаёт сканирование, действтительно не сразу полностью "работоспособны". То есть функции, извлекающие какую-то информацию, некоторое время извлекают сплошные нули. Совершенно типичная ситуация - сканируем NPC, GetNextRef, по найденному "GetIsSex мужик?" - не, не мужик - "GetIsSex тётка?" - не. не тётка - "А КТОООО?"

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

farnak  Offline  Сообщение №2452 написано: 22 февраля 2013, 09:12



22
Цитата Ipatow

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


ссылки конечно можно откладывать на потом в импровизированный массив, но сомневаюсь, что это будет оптимальнее небольшой паузы посредством той же player.damageAV health

Doge  Offline  Сообщение №2453 написано: 22 февраля 2013, 15:46



77
Так....не помогло..я уже все перепробовал, даже нашел ошибку в имени бса..но всеравно толку 0...что же далать?(

Добавлено (22.02.2013, 19:46)
---------------------------------------------
Кстати, ещё кое-что...
Как назначить худ (руки)? На пример силовой броне поменять на руки комбеза робко


Graf  Offline  Сообщение №2454 написано: 22 февраля 2013, 16:31



179
popolkon, ну в модели меняй.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Galko  Offline  Сообщение №2455 написано: 22 февраля 2013, 16:57


GALAктическая мартышка


Цитата popolkon

не помогло..я уже все перепробовал


то есть - ты попробовал в файле Fallout.ini прописать свой архив по совету Ипатова в начало списка архивов:
SArchiveList=ТвойАрхив.bsa, Fallout - Textures.bsa, Fallout - Textures2.bsa, Fallout - Meshes.bsa, Fallout - Voices1.bsa, Fallout - Sound.bsa, Fallout - Misc.bsa
и всё равно не помогло? Тогда, возможно, сам архив запакован с нарушением "построения" папок. Можешь дать скриншот архива, открытого в бса-анпакере?

Ваше счастье, что я не ваше счастье
Вис  Offline  Сообщение №2456 написано: 23 февраля 2013, 15:55



298
Какая функция в скрипте отвечает за ИЛИ? За И, как я понял, &&, а вот за ИЛИ не нашёл.

Artem13  Offline  Сообщение №2457 написано: 23 февраля 2013, 15:59


Mercenaries. Со смертью на ты.


Вис, ||

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
Xospis  Offline  Сообщение №2458 написано: 23 февраля 2013, 16:02



171
Вис, может either

Galko  Offline  Сообщение №2459 написано: 23 февраля 2013, 17:21


GALAктическая мартышка


Цитата Vita$

Вис, может either


это по-немецки?

Ваше счастье, что я не ваше счастье
Xospis  Offline  Сообщение №2460 написано: 23 февраля 2013, 21:55



171
Galko, Англиский)

Форум » Fallout: New Vegas » Мастерская » ВОПРОСЫ по моддингу (Спрашиваем и отвечаем на тему как сделать то или это...)
Поиск:





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