Лидеры
Популярный контент
Показан контент с высокой репутацией 13.10.2025 в Сообщения
-
3 баллаУдваиваю магнума, цены вещей из вегаса и экономика там - во многом бездумный фансервис. Экономика в оригинале Вегаса сломана намертво, но некоторые аспекты показывают, что разработчик не особо и задумывался об этом. Банальный пример - та же Боевая броня. Обсидианы воткнули ей цену из Fallout 2, ну молодцы, а вот подумать о том, что в Ф2 в отличии от беседко-фалаутов броню с трупов нельзя было снимать - не, об этом как то не задумались. Вцелом именно такие приколы убили экономику вегаса, даже без абузов казино. А в реалиях СФВ стало еще хуже, т.к. в модах на Вегас на каждом углу ребята в боевой броне, с риот шотганами или марксманскими карабинами. Я уж молчу про добавленный в вегасе перк Очумелые ручки, который забивает жирный х... гвоздь в крышку гроба экономики, т.к. позволяет чинить всякие вундервафли типа Крупнокалиберной винтовки, которая стоит 5600, сраными пневматическими винтовками или еще каким хламом типа охотничьих, ну или чинить силовую броню металлической. и т.д. И как бы возникает обратный вопрос, а какой понт в такой экономике, где можно ворочать миллионами, которые мертвым грузом висят в карманах ГГ? Условно говоря когда на то, чтобы закупиться патронами и медициной(хотя я думаю, без модов урезающих лут в мире, и закупаться то не нужно, подножного корма хватит с головой), достаточно продать одну пушку с трупа врага, а всё остальное - становится бесполезными миллионами. Я вот, например, настроил под себя экономику на базе обновленной СФВшной с ориентацией на тройку, но от себя добавил урезание лута, отключил броню с трупов(кроме сюжетной и супер уникальной), да еще и повысил цены на некоторые расходники, типа медицины и патронов. И все равно деньги копятся(особенно в вегасе, потому что награды за квесты местами избыточные), но хотя бы уже не с той безумной скоростью, а бартер перестал быть в формате пришел к барыге, выгреб у него всё бабло и пошел к следующему.
-
2 баллаВ сборке был дикий дисбаланс между кучей предметов из Ф3 модов и добавленных вегасовскими модами. Плюс сам контент F3 в SFW имел цены Ф3, а вегасовский - вегасовские, и было странно когда одни и те же предметы по типу стоят так по-разному. Цены в Вегасе жесть какие высокие. За вход на Стрип просят показать 2к крышек, при этом для того, чтобы эту сумму получить, достаточно продать комплект боевой брони, ну или два при низком бартере. Плюс награды за квесты как правило не дотягивают до стоимости той же брони. А увеличение например сумм по квестам требовало бы правки в озвучке в отдельных вариантах. Еще вариант был снизить цены скриптом в самой игре, но это бы потребовало сначала их тоже выровнять уже по высоким ценам, плюс невозможно было бы оценивать значения в эдите, т.к. в игре бы отличалось. Вариант вручную изменить цены на манер Ф3 показался самым оптимальным, плюс не изобретать велосипед, а сделать по примеру ТТВ. Вот например что про это пишутТТВшники. И в этом есть логика. Поискал, что есть из доступного на тему возврата цен Вегасовский вариант. Может подойти это: https://www.nexusmods.com/newvegas/mods/90636?tab=description С этими конфигами: https://www.nexusmods.com/newvegas/mods/90637?tab=description Должно работать. Еще есть такой мод: Fallout 3 Economy-67919-2-0-0-1610813302.zip Можно в нем изменить конфиг на типа обратный (увеличивающий), например на такой: MinValue=15000 ;Minimum value items reduced can become ValueReduction=8 ;Multiplier for item value reduction Увеличит цены в 8 раз, но макс. цена не может стать больше 15к.
-
1 баллНе совсем, т.к. основные расходники для игрока, как еда, химия и патроны особо не затрагиваются такого рода переоценкой. И опять таки это не столько реализм, сколько попытка сделать хоть какой то вызов игроку. Именно ради этого и нужны подобные правки, которые убирают избыток чего бы то ни было, будь то 4д накопители, которые фактически нивелируют механику веса инвентаря игрока, избыточные цены вещей которые делают деньги фактически бесконечными, или влияние удачи в казино, который делает игру всегда в плюс(и что отключается через твик Стьюи который выставляет нейтральную удачу). Да, можно возразить, что эти правки не решают полностью проблемы, но это хотя бы шаги в сторону придания смысла геймплейным аспектам, которые по факту ломаются под весом контента вносимого модами. Как по мне - без преодоления хоть каких то сложностей, нет никакого смысла(и радости пост фактум, по мере прогрессии) в геймплее, и тогда уж проще от него отказаться полностью, чем притворяться, что это РПГ составляющая и дань оргиналу игры. Ну, а сломать всё читами - это уже право игрока, при желании. Но эти самые читы однозначно не должны быть элементом доступным игроку со стороны разработчика как внутриигровой контент.
-
1 баллНу будут весеть не милионы, а сотни тысяч, какая разница ?! Цены просто уменьшатся пропорционально доходу. Вы всё хотите назявать реализм не по адресу. Нью-Вегас это РПГ игра и с реализмом она изначально не дружит, а если ее с ним подружить , а дружит надо полностью, с полной переработкой геймплея, иначе это будет такой себе реализм, местами реально, а местами нет, то в ней не останется того, за что ее любят.
-
1 баллДве Ренамбилки, с алгоритмами Фана, пересозданные в ЧатЖПТ, с дополнительной логикой и исключениями. Программа-Ренамбилка файлов Реплик и Липсинка, написанная на FreePascal / Lazarus. Используется алгоритм Фана. + Мои старые скрипты, конвертированные в CP-1251 кодировку. Trust-Change load order of FormID (FIN)-cp1251.pas Trust-Renumber FormID SFW (FIN)-cp1251.pas Trust-PERSISTENT-cp1251.pas Trust-AddLocationsToLSCR-cp1251.pas renameformidfilessimple.zip
-
1 баллИ еще один скрипт от @FNVFUN, давно нужно было выложить. Пересчет цен выделенных предметов на некое подобие экономики F3. В скрипте есть условия по типу предмета, зависимость от старой цены и т.д. Это не идеальный вариант, т.к. коэффициенты подобраны усредненно, после анализа различий в ценах определенных предметов между Ф3 и Вегасом, поэтому в определенных случаях возможны перекосы, и могут потребоваться ручные правки. Но это лучше, чем пересчитывать всё руками) ChangeValuesFromFNVToFO3.pas
-
1 баллЕще один скрипт от @FNVFUN, сделанный по моей просьбе. Замена второго и третьего знака в FormID записей на указанное значение, но только если исходный символ на этом месте = 0. Renumber FormID SFW.pas Полезно для вшитий, чтобы перенумеровать совпадающие айдишники не бездумно, а частично сохранив исходное значение для случаев будущих обновлений.
-
1 баллСкрипт от @FNVFUN, проставляющий параметры износа для брони и оружия, раскиданного по локациям. В исключения добавлено метательное оружие. Также добавил в исключения мины. Добавляемый износ плавает между значениями в скрипте: iMinHealth = 10; iMaxHealth = 60; Set Armor And Weapon Condition.pas Полезно для большинства модов, так как авторы редко заморачиваются с проставлением износа.
-
1 баллДОБАВЛЯТОР ВЫДЕЛЕННЫХ ЛОКАЦИЙ В ЗАДАВАЕМЫЙ ЗАГРУЗОЧНЫЙ ЭКРАН. Скрипт не копирует записи которые НЕ WRLD / CELL пропускает дубли умеет работать с внешними мастерами либо с собственными (плагина) записями спрашивает бэйс-форм загрузочного экрана там проверка, что введённый айдишник, это экран загрузки добавляет в LSCR все выделенные локации и не делает ошибок СДЕЛАНО ПО ПРОСЬБЕ МАГНУМА { Filename: AddLocationsToLSCR.pas Author: ChatGPT (OpenAI) License: MIT Description: Adds selected CELL and WRLD records to a specified LSCR (Loading Screen). Supports both external masters and same-file (self) locations. Prevents duplicates and provides detailed logging. } unit UserScript; var LoadScreen: IInterface; AddedCount, SkippedCount: integer; // Search LSCR by FormID across all loaded files function FindLSCRByFormID(fullID: integer): IInterface; var i: integer; rec: IInterface; begin Result := nil; for i := 0 to FileCount - 1 do begin rec := RecordByFormID(FileByIndex(i), fullID, True); if Assigned(rec) and (Signature(rec) = 'LSCR') then begin Result := rec; Exit; end; end; end; // Find index of a master file inside given file's master list function FindMasterIndex(containerFile, masterFile: IInterface): integer; var i: integer; masterName, targetName: string; begin Result := -1; targetName := GetFileName(masterFile); for i := 0 to MasterCount(containerFile) - 1 do begin masterName := GetFileName(MasterByIndex(containerFile, i)); if masterName = targetName then begin Result := i; Exit; end; end; end; // Check if this location already exists in LSCR\Locations function LocationExists(locations: IInterface; localID: integer): boolean; var i: integer; lnam, direct: IInterface; existingID: integer; begin Result := False; for i := 0 to ElementCount(locations) - 1 do begin lnam := ElementByIndex(locations, i); direct := ElementByPath(lnam, 'Direct'); if Assigned(direct) then begin existingID := GetNativeValue(direct); if existingID = localID then begin Result := True; Exit; end; end; end; end; // Create a new LNAM entry and set Direct to local FormID function CreateLocationEntry(lscr, locations, e: IInterface): IInterface; var lnam, direct, baseRec: IInterface; baseID, localID: integer; masterIndex: integer; baseFile, lscrFile: IInterface; begin Result := nil; // Resolve to original record baseRec := MasterOrSelf(e); baseFile := GetFile(baseRec); lscrFile := GetFile(lscr); baseID := FormID(baseRec) and $00FFFFFF; // SELF CASE: LSCR and location in the same file if GetFileName(lscrFile) = GetFileName(baseFile) then begin masterIndex := GetLoadOrder(lscrFile); // MASTER SELF INDEX localID := (masterIndex shl 24) or baseID; AddMessage('SELF: Location "' + Name(e) + '"'); end else begin // External master case masterIndex := FindMasterIndex(lscrFile, baseFile); if masterIndex < 0 then begin AddMessage('ERROR: Master file for "' + Name(e) + '" not found in LSCR file masters.'); Exit; end; localID := (masterIndex shl 24) or baseID; end; // Prevent duplicates if LocationExists(locations, localID) then begin AddMessage('SKIP: Location "' + Name(e) + '" already exists in LSCR'); Inc(SkippedCount); Exit; end; // Create new LNAM lnam := ElementAssign(locations, HighInteger, nil, False); if not Assigned(lnam) then begin AddMessage('ERROR: Could not create LNAM entry for "' + Name(e) + '"'); Exit; end; direct := ElementByPath(lnam, 'Direct'); if not Assigned(direct) then begin AddMessage('ERROR: LNAM has no Direct element for "' + Name(e) + '"'); Exit; end; SetEditValue(direct, IntToHex(localID, 8)); Inc(AddedCount); Result := lnam; end; // Add one location to LSCR function AddLocation(lscr, e: IInterface): IInterface; var locations: IInterface; begin Result := nil; locations := ElementByPath(lscr, 'Locations'); if not Assigned(locations) then locations := Add(lscr, 'Locations', True); if not Assigned(locations) then begin AddMessage('ERROR: Cannot access or create Locations container.'); Exit; end; Result := CreateLocationEntry(lscr, locations, e); if Assigned(Result) then AddMessage('OK: Location "' + Name(e) + '" added'); end; function Initialize: integer; var inputID: string; id: integer; begin AddedCount := 0; SkippedCount := 0; if not InputQuery('Loading Screen Editor', 'Enter Full FormID of LSCR (hex, e.g. 0002AE38):', inputID) then begin Result := 1; Exit; end; try id := StrToInt('$' + Trim(inputID)); except AddMessage('ERROR: Invalid FormID format.'); Result := 1; Exit; end; LoadScreen := FindLSCRByFormID(id); if not Assigned(LoadScreen) then begin AddMessage('ERROR: LSCR with FormID "' + inputID + '" not found in any file.'); Result := 1; Exit; end; AddMessage('INFO: Selected LSCR = ' + Name(LoadScreen)); end; function Process(e: IInterface): integer; begin if not Assigned(LoadScreen) then Exit; if (Signature(e) <> 'CELL') and (Signature(e) <> 'WRLD') then Exit; AddLocation(LoadScreen, e); end; function Finalize: integer; begin AddMessage('=== Finished adding locations ==='); AddMessage('Total added: ' + IntToStr(AddedCount)); AddMessage('Total skipped (duplicates): ' + IntToStr(SkippedCount)); end; end.
-
1 баллПоставил русскую озвучку, переведена только основная игра (Fallout 3), но DLC на английском (озвучка), может косяк установщика?
-
Новостная рассылка
×
- Создать...
Важная информация
Мы используем файлы cookie для обеспечения корректной работы сайта. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек. Узнать больше об обработке данных поможет Политика конфиденциальности