Перейти к контенту

[CoP] Ковыряемся в файлах


Halford

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

Моё вам дратути, товарищи. Я тут решил заняться неблагодарным делом: дело в том, что я не удержался, и залез своими кривыми лапками в потроха игры (точнее - мода к ней, Gunslinger-а, но не думаю, что это сильно критично, структура-то должна быть одна и та же), распаковал их тобишь, и решил посмотреть, что да как в оружейной и броневой части. Нет, не для того, чтобы выкручивать *ДОМАГ* на максимум или разрешать все модификации - с этим я наигрался еще в ванильной ЗП, да и скучными становятся пушки, со всеми обвесами, одинаковыми какими-то. Меня, в основном, интересовала привязка апгрейдов к инструментам: хотелось поотменять привязку к калибровочным инструментам для откровенно стартовых стволов и костюмов, и оставить оную только для "лейтгейма" - ибо вот есть, скажем, бандитский плащ. Последний апгрейд брони для него требует калибровочных инструментов, т.е., ты должен метнуться до Припяти для того, чтобы оный плащ до конца улучшить, вот только ко времени похода на Припять у тебя уже стоит нелёгкий выбор между экзой, Севой и Булатом\фракционными костюмами, и нафига тебе уже этот плащ. А в самом начале игры, когда у тебя имущества, как у латыша из той присказки, и плащ действительно актуален - тебе говорят обломаться. То же и с ранними пистолетами, MP5 и прочим, что используется на ранних стадиях игры. Ну вот и возникла мысль оставить требование по калибровке для всяких ВАЛ-ов с Винторезами, СВД-шек и тому подобных стволов и костюмов, с которыми не стыдно и в Припять идти, а что попроще - ограничить инструментами для тонкой работы.

 

И вот смотрю я на эти модификации, и никак не могу понять - а где, собственно, идёт привязка конкретной позиции к уровню инструментального оснащения мастера? Нашёл что-то похожее в stalkers_upgrade_info.ltx, но после некоторого ковыряния вышло так, что всплывающая подсказка на блоке апгрейда сменилась с "технику нужны инструменты для калибровки" на " <...> для тонкой работы", а требование так и осталось для калибровки.
 

Ткните меня, что ли, мордой, кому не трудно...

 

Изменено пользователем Опричник

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


Ссылка на сообщение
1 час назад, Купер сказал:

@St_Tongorмощно :grin2:

Хотелось бы побольше конкретики: что, куда и почему мимо.

stalkers_upgrade_info.ltx - ну вот именно там всё и происходит.

На примере Кардана:

  Показать

 

up_sect_firstc_novice_outfit = {!upgrade_hint_kardan(2)} false, true

up_sect_firstc_novice_outfit - данная секция апгрейда.

{!upgrade_hint_kardan(2)} - проверка условия доступности.

В данном случае {!...} - если условие не выполнено, то запрет (false). В противном случае - доступность (, true)

Сами проверки щедро рассыпаны GSC-ами по скриптам:

xr_condition.script -> function upgrade_hint_kardan(actor, npc, p) 

Проверяем наличие тех или иных инструментов и присваем функции проверки соответствующее значение.

 

p.s: при условии, что Гансы ничего не меняли. Эти могут :biggrin:

 

Даю конкретику: я сперва пошерудил в stalkers_upgrade_info.ltx с железобетонной логикой: инструменты у нас в скриптах проходят, как toolkit_n - это ключевое слово и ищем. Так что я забэкапил оригинальный апгрейд_инфо (всегда должен быть бэкап! Лучше - два. Я это понял еще тогда, когда впервые пришёл на этот форум лет с десяток назад, и начал ковырять ТЧ - славные были времена...), прошерстил его поиском по файлу, нашёл секцию st_upgr_toolkit_3, и, не мудря лукаво, заменил её на st_upgr_toolkit_2 по всему файлу (для эксперимента - сработает или нет). Сработало: и у Кардана и у Азота на тех модификациях, на которых раньше писалось, что нужны калибровочные инструменты, стало писаться, что нужны инструменты для тонкой работы, но для фактической установки всё еще нужны были калибровки. Т.е., я подсказку всплывающую поправил (потому что нефиг в час ночи лезть и что-то делать - я так мыслю).

 

Сейчас я присмотрелся - видимо, у Кардана и у Азота структура проверок разная (это меня и подвело: я решил было, что будет единообразие, а тут оказалось, что у Кардана есть собственная проверка на инструменты, а Азота проверяют стадиями квеста). В общем, я еще раз клонировал бэкап, и тем же макаром, для эксперимента, заменил Кардану upgrade_hint_kardan(3) на upgrade_hint_kardan(2), а Азоту - +jup_b217_tech_instrument_3_brought на, соот-нно, +jup_b217_tech_instrument_2_brought. 

Начал новую игру, метнулся на лесопилку за коробкой, по пути пристрелил пару зомбей, хапнул тайник с водкой и консервами, этими же консервами, чтобы два раза не вставать, накормил наймитов капитала - и кинулся проверять. Чтобы не рысачить еще и по Юпитеру, сохранился до сдачи коробок Кардану. Снабдил, напоил, затестил - работате. Метнулся к Азоту, снабдил его - и там работате. Сейчас сижу и думаю, какие костюмы и какое оружие куда определять, но это уже, можно сказать, вкусовщина, главное - я, кажись, понял, как это устроено в целом.

Заодно, ради любопытства, посмотреть "как оно там", залез в файлы оружия. Выбрал пушку, которую Гансы стопудово потрошили: бывший Фрезер, ныне - UMP45. Обнаружилось удивительное: я как-то допреж был уверен, что ветка апгрейдов для оружия должна быть явно и недвусмысленно прописана в строке "upgrades =", а у Гансов в оной строке нет и половины доступных для пушки апгрейдов. Т.е., 
 

Скрытый текст

Вот в файле экс-Фрезера у нас есть строка апгрейдов:
upgrades = vartree_ump45_mag_fix, vartree_ump45_zatvor, vartree_ump45_rail, vartree_ump45_handle, vartree_ump45_sights, vartree_ump45_stock, vartree_ump45_sil

А вот в файле, описывающем апгрейды, есть структурирующая сносочка: 
[vartree_ump45_mag_fix]
elements = up_ump45_max_fixator
[vartree_ump45_barrel]
elements = up_ump45_barrel_speed, up_ump45_barrel_compensator
[vartree_ump45_body]
elements = up_ump45_body_coating, up_ump45_body_weight
[vartree_ump45_zatvor]
elements = up_ump45_zatvor_balancer
[vartree_ump45_extractor]
elements = up_ump45_extractor
[vartree_ump45_usm]
elements = up_ump45_usm_rpm, up_ump45_usm_accuracy
[vartree_ump45_rail]
elements = up_ump45_rail
[vartree_ump45_handle]
elements = up_ump45_handle
[vartree_ump45_laser]
elements = up_ump45_laser
[vartree_ump45_flash]
elements = up_ump45_torch
[vartree_ump45_sights]
elements = up_ump45_sights
[vartree_ump45_stock]
elements = up_ump45_stock
[vartree_ump45_sil]
elements = up_ump45_sil

 

Если приглядеться - можно обнаружить, что в строке апгрейдов отсутствуют блоки "vartree_ump45_barrel", "vartree_ump45_body", и "vartree_ump45_usm".

Однако в игре всё работает. Сейчас пытаюсь понять, как оно всё устроено тут, единственная дельная мысль - в "upgrades =" обозначены "исходные" модификации, которые доступны сразу, а моды второго и третьего порядков привязаны к "effects =" и через это не требуют явного оглашения.
Я уже плохо помню, как оно было в ванильной ЗП, но по-моему - не так.

 

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

  • Нравится 2
  • Согласен 1

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...