Перейти к содержанию

  • 0
Trust

Проблема Спавна (MEGA ISSUE)

Вопрос

Я нашёл адский баг в СФВ, и шпионил за ттвшниками -- КОРОЧЕ:

Многие неписи и креачуры не спавнятся без полной перезагрузки игры.

Например: Роботы на месте крушения винтокрыла, озёрники на платформе мародёров (на озере), супер-мутанты возле моста трёшки.

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

ТТВшники говорят, что пофиксили это у себя в 3.3 установкой флага персистент / квест итем -- абсолютно всем Рефам неписей и существ.

 

я пытался получить от чатжпт рабочий скрипт FNVEdit -- но получается одна фигня. Может ты, @MagnuMspec , можешь в эдите проставить персистент всем рефам неписей и существ ??

Чатжпт, говорит правда, что для таких неписей нужно ставить ячейки персистент.

Но я это сразу отмёл -- персистент ячейки загружаются все в память, ещё до загрузки сейва, в главном меню.

Не проставила Бетезда флаги персистент -- потому что, надо было экономить память на xbox-360

 

Так-же, пригодится мнение наших Экспертов: @Bulbyan , @Onotoluy , @FNVFUN (Я никого не хочу напрягать такой работой, но мне пригодится Ваше экспертное мнение. Даже "фе" будет ценно)

 

  • Спасибо! 1

Поделиться сообщением


Ссылка на сообщение

15 ответов на этот вопрос

Рекомендуемые сообщения

  • 0
14 часов назад, Trust сказал:

Многие неписи и креачуры не спавнятся без полной перезагрузки игры

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

 

 

14 часов назад, Trust сказал:

ТТВшники говорят

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


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

 

Ну и вцелом я упоминал ранее о проблеме.

 

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
  • 0
39 минут назад, pz_4 сказал:

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

 

 

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

Дело в том, что трупы убираются при респавне -- а тут именно такая проблема -- они не спавнятся по-нормальному

Поделиться сообщением


Ссылка на сообщение
  • 0
{
  Filename: TrustSFW-Persistent.pas
  Author:   ChatGPT (OpenAI)
  License:  MIT

  Description:
    Makes all ACHR and ACRE references persistent in the selected plugin.
}

unit UserScript;

var
  PersistentCount: integer;

function Initialize: integer;
begin
  PersistentCount := 0;
end;

function Process(e: IInterface): integer;
var
  Sig: string;
begin
  Result := 0;

  // Пропускаем, если не редактируемый
  if not IsEditable(e) then
    Exit;

  // Только ACHR и ACRE
  Sig := Signature(e);
  if (Sig <> 'ACHR') and (Sig <> 'ACRE') then
    Exit;

  // Проверка флага Persistent
  if GetIsPersistent(e) then
    Exit;

  // Ставим Persistent
  AddMessage('Making Persistent: ' + Name(e));
  SetIsPersistent(e, True);
  Inc(PersistentCount);
end;

function Finalize: integer;
begin
  AddMessage('===================================');
  AddMessage('Total references made persistent: ' + IntToStr(PersistentCount));
  AddMessage('===================================');
end;

end.

 

Чатжпт на основе скрипта Грибблшнибита8 Сгенерировал этот скрипт, который, судя по всему -- очень хорошо работает в Эдите.

 

Персистент флаг ячейкам, для персистент креачур/неписей -- требуется только СКУРИМУ+

 

 

Изменено пользователем Trust

Поделиться сообщением


Ссылка на сообщение
  • 0
1 час назад, Trust сказал:

Дело в том, что трупы убираются при респавне -- а тут именно такая проблема -- они не спавнятся по-нормальному

Не всегда, иногда игра убирает трупы прям на ходу. Например в финальном бою в Lonesome road можно это увидеть, как трупы робоглазов удаляет. И вцелом играя в сборку можно такие моменты увидеть. Как правило это происходит если НПЦ как раз таки не отмечены флагами квестовости, и их реально много в одном месте.


Другое место где можно это наблюдать - это добавляемая модулем миров(ra-worlds) локация с огромной толпой рейдеров около Рейвен-Рок.

Изменено пользователем pz_4
  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
  • 0

Короче -- я выяснил!!!

 

Мой скрипт полностью работает.

 

Персистент ячейкам (для персистент рефов) нужно ставить только в скуриме, ф4 и старфилде.

 

В нв/трёшке всё работает само!!!

  • Нравится 3

Поделиться сообщением


Ссылка на сообщение
  • 0

@MagnuMspec ПОЖАЛУЙСТА, НЕ ИСПОЛЬЗУЙ ЭТОТ СКРИПТ НА МОДУЛЯХ РА, ТАК-КАК ОНО ПАДАЕТ САМО И БЕЗ ТОГО.

Поделиться сообщением


Ссылка на сообщение
  • 0
12 часов назад, pz_4 сказал:

Другое место где можно это наблюдать - это добавляемая модулем миров(ra-worlds) локация с огромной толпой рейдеров около Рейвен-Рок.

В прошлой версии RA в том мире даже лодов не было. Как сейчас там не знаю, ибо ещё до туда не дошёл.

 

На счёт этой проблемы, то могу сказать то, что я не совсем компитентен в этом, да и с таким почти не сталкивался (если и сталкивался, то не обращал внимание - не баг, а фича).

@pz_4 упомянул, что перезайти в игру ,сохранившись на месте, где отсутствовали существа, то можно попасть в неприятную ситуацию. Это, с точки зрения игрового процесса и погружения, является серьёзной ошибкой.

На счёт уборки трупов, то могу сказать, что кому-то может нравится вездесущие последствия резни, и пофигу, что от этого страдает производительность и раздувается сохранение. Я бы оставил респавн только фауне пустошей, мол всю живность не убьёшь. Людям бы дал возможность спавниться, пока, например, жив их лидер или атаман.

 

P.s. Кажется я чуть-чуть припоздал со своим мнением. :)

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
  • 0
3 минуты назад, Onotoluy сказал:

В прошлой версии RA в том мире даже лодов не было. Как сейчас там не знаю, ибо ещё до туда не дошёл.

 

На счёт этой проблемы, то могу сказать то, что я не совсем компитентен в этом, да и с таким почти не сталкивался (если и сталкивался, то не обращал внимание - не баг, а фича).

@pz_4 упомянул, что перезайти в игру ,сохранившись на месте, где отсутствовали существа, то можно попасть в неприятную ситуацию. Это, с точки зрения игрового процесса и погружения, является серьёзной ошибкой.

На счёт уборки трупов, то могу сказать, что кому-то может нравится вездесущие последствия резни, и пофигу, что от этого страдает производительность и раздувается сохранение. Я бы оставил респавн только фауне пустошей, мол всю живность не убьёшь. Людям бы дал возможность спавниться, пока, например, жив их лидер или атаман.

 

P.s. Кажется я чуть-чуть припоздал со своим мнением. :)

Спасибо Большое за Мнение! :-)

 

Идея была крайне простая как палка: Украсть у ТТВшников фикс -- Что успешно удалось.

 

Да, в игре много таких косяков, и дисбаланса ломающего погружение. Но, к сожалению, мы не всемогущие... :(

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
  • 0
7 часов назад, Trust сказал:

@MagnuMspec ПОЖАЛУЙСТА, НЕ ИСПОЛЬЗУЙ ЭТОТ СКРИПТ НА МОДУЛЯХ РА, ТАК-КАК ОНО ПАДАЕТ САМО И БЕЗ ТОГО.

То есть?

Поделиться сообщением


Ссылка на сообщение
  • 0
1 минуту назад, MagnuMspec сказал:

То есть?

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

Поделиться сообщением


Ссылка на сообщение
  • 0

Или это даже в ра-мастер

 

просто в ра толпы врагов огромные, и тысячи нпц --- игра уйдёт в аут-ов-мемори

Изменено пользователем Trust

Поделиться сообщением


Ссылка на сообщение
  • 0
8 часов назад, Onotoluy сказал:

Я бы оставил респавн только фауне пустошей, мол всю живность не убьёшь. Людям бы дал возможность спавниться, пока, например, жив их лидер или атаман.

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

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

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
  • 0
4 минуты назад, pz_4 сказал:

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

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

 

Именные, говорящие неписи, и "квестовые статисты" (типа теней в подвале репконна) -- имеют все флаг персистент.

Включение же персистента на респавнящихся нпц/креачур -- никак не повлияет, так-как механизм респавна по-идее убирает сам трупы.

 

Кроме-того, в опциях у нас "ПреэмпитивлиУнлоадЦелл" -- данные типа 3д-моделей персонажей -- выгружаются из памяти (я точно не знаю что оно делает, но даёт сильное освобождение памяти)

 

А ещё, у нас включён ЛарджАдрессАваре, подключён НВХР, и в НВТФ включён (или руками ...) дефолтТекстуреПулл -- который по спецификациям Дюрекс Икт 9 -- позволяет не дублировать текстурный пулл в рам, а только хранить его в видеокарте.

 

Непроставленный неписям персист -- нужен был, когда всех этих модов движка небыло -- и игра вешала с персистами ИксБокс-360

Поделиться сообщением


Ссылка на сообщение
  • 0

@Trust точно ли нужно добавлять квест флаг всем неписям и зверью так? 

Мне кажется он 100% должен быть у мертвых персонажей, причем и у базовой записи, и у рефа. А вот для рандомных гулей думаю так себе идея. Особенно учитывая описанное здесь:

 

Поделиться сообщением


Ссылка на сообщение
  • 0
2 минуты назад, MagnuMspec сказал:

@Trust точно ли нужно добавлять квест флаг всем неписям и зверью так? 

Мне кажется он 100% должен быть у мертвых персонажей, причем и у базовой записи, и у рефа. А вот для рандомных гулей думаю так себе идея. Особенно учитывая описанное здесь:

 

 

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

 

Вот тулбокс:

 

https://www.nexusmods.com/newvegas/mods/95058

 

У тебя есть резервные копии??

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


×
×
  • Создать...

Важная информация

Мы используем файлы cookie для обеспечения корректной работы сайта. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек. Узнать больше об обработке данных поможет Политика конфиденциальности