UPDATE 30.04.2007
Внимание: вышел финальный патч от Bethesda - cм. Патч Version 1.2.0416
Мы оставляем эту страничку, если у вас возникнут вопросы, с чем связаны проблемы с оригинальной (1.2.0201) версией "Островов" и что такое FormIDReferenceBug, или F-bomb.
UPDATE 11.04.2007
Внимание: вышла официальная бета-версия патча от Bethesda - Version 1.2.0410 Beta
Fix - 8 April 2007
FormIDReferenceBugFix.esp - Download
by Dateranoth
см. thread
Описание.
Данный патч предназначен решить проблему "взрывного" роста значений идентификаторов предметов в игровом мире, возникающую после установки Shivering Isles. Проблема возникает у всех, вне зависимости от версии файла Oblivion.exe - 1.2.0.201 или 1.2.0.214 (номер версии зависит от того, был ли установлен официальный патч 1.2 до "Островов")
Скачайте и установите плагин (поместите скачанный esp-файл в папку ...\Oblivion\Data\, отметьте галочкой название плагина в Oblivion Launcher) или подождите временно с игрой в TES 4: Shivering Isles до момента, пока Bethesda не предложит решения проблемы. Читайте дальше, если хотите вникнуть в суть проблемы и способа ее решения.
Учтите, если этот баг уже с вами произошел, плагин-патч проблемы не решит. Вам нужно установить патч и вернуться к более ранней сохраненной игре. Если это невозможно, вы можете попытаться воспользоваться приведенной
тут методикой "отката" значений FormID с использованием Wrye Bash.
UPDATE 11 апреля. Если вам непривычна Wrye Bash, можете воспользоваться Reference Bug Fix от zBobG. Затем все равно потребуется установить плагин FormIDReferenceBugFix.esp
В чем же суть бага? Некоторые пользователи PC отметили, что по прошествии некоторого времени после установки аддона, игра начинает вести себя странно - пропадают "в никуда" созданные предметы, изменяется поведение NPC, пропадают строки диалога и прочее.
Как вы, наверное, знаете, каждому предмету в Oblivion присваивается собственный идентификатор. Со временем идентификаторы растут, изменяя значения на большее число. Стандартно они обозначены восьмизначными числами в шестнадцатиричном представлении, начинающимися с "FF". В самом деле, бросьте наземь любую вещь из вашего инвентаря. Откройте консоль клавишей ~ (тильда) и посмотрите на идентификатор предмета. Подождите немного. Затем выбросьте другой предмет и сделайте то же самое. Вы убедитесь, что числовое значение ID увеличилось. Что же будет, если значение дойдет до FFFFFFFF? "FF" заменится на "00". Игра перестанет "узнавать" предметы, появятся многочисленные баги вплоть до неработоспособности программы. Оказалось, в оригинальном Oblivion значения меняются, но медленно. Игрок сможет провести в Сиродиле тысячи часов (порядка 3-5 тысяч часов), прежде чем наступит критический момент. Стоит установить Shivering Isles, как скорость изменения этих значений со временем увеличивается многократно. Количество отпущенных вам часов начинает измеряться уже не тысячами, а десятками. Притом неважно, где вы находитесь - в царстве Шеогората или Имперской провинции. Если аддон у вас установлен, посмотрите на эту таблицу - вы сможете оценить, сколько часов жизни у вас есть, выбросив любой предмет и посмотрев на его ID. Чем мощнее ваш компьютер и выше fps, тем меньше. Цифры приблизительны, но порядок величины отражают.
Мозговым штурмом TES-комьюнити баг был "локализован". Как определил UQForgotten, проблема исчезает, если отключить ИИ у шести неигровых персонажей, именно
SE07BGoldenSaintPrivateQuartersGuard01
SE07BGoldenSaintPrivateQuartersGuard02
SE07BGoldenSaintSiloGuard01
SE07BGoldenSaintSiloGuard02
SE07BGoldenSaintSiloGuard03
SE07BGoldenSaintSiloGuard04
Заметив, что эти золотые святые "прописаны" в двух локациях, Dateranoth в предлагаемом вам патче заменил скрипты этих персонажей, заставив их работать только при нахождении игрока в соответствующих ячейках, а именно внес следующие изменения в начало каждого связанного с "проблемными" NPC скрипта:
Для тех NPC, что находятся в покоях герцога:
begin GameMode
if ( player.GetInCell SENSDukesQuarters != 1 )
return
endif
end
Для тех NPC, что находятся в Greenmote Silo (складе зеленой пыльцы):
begin GameMode
if ( player.GetInCell SENSGreenmoteSilo != 1 )
return
endif
end
|