![]() |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
![]() Грандмастер Репутация: ![]() ![]() Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 ![]() |
А вот интересный вопрос. На что же всегда в серии S.T.A.L.K.E.R. влияла выбранная сложность?
Первое что приходит на ум, т.к. ковырял конфиги оружия: урон оружия. А именно, параметр: Код hit_power = 1.58, 1.62, 1.65, 1.68 Цитата Уровень сложности по убыванию, т.е. от мастера до новичка; можно установить и одно значение Но работает ли это в обе стороны? Оружие у ГГ стреляет больнее, и неписи падают бодрее. Или только у неписей оружие стреляет больнее. Кроме того, интересует, можно ли менять сложность "на лету"? Графа то такая есть в Опциях. Судя по инфе из статьи: http://stalkerin.gameru.net/wiki/index.php...настройки(ч._2) Цитата Вы можете также менять уровень сложности налету Можно.Ещё там написано: Цитата Чем выше настройка, тем меньше полезных объектов может быть найдено в игровом мире Цитата и больше вероятность, что враг вас ранит при стрельбе Непонятно, где это задается. Какие параметры, в каких файлах, знает кто?Ещё в каком-то разговоре, услышал, что на высоких уровнях сложности, в лагеря приходят более опытные NPC. Если это так, то опять же, непонятно, как это настраивается. Но подозреваю, игра каким-то образом выбирает профили NPC с более высоким рангом. Если кто знает на что ещё влияет сложность, пишите. Сообщение отредактировал aka_sektor - 02.07.2019, 19:25 -------------------- |
 
|
|
|
|
![]()
Сообщение
#2
|
|
![]() Мастер Игры Репутация: ![]() ![]() Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 ![]() |
Например:
actor.ltx Код [actor_immunities_gd_novice] burn_immunity = 0.5 ;коэффициенты иммунитета strike_immunity = 0.5 shock_immunity = 0.5 wound_immunity = 0.5 radiation_immunity = 0.5 telepatic_immunity = 0.5 chemical_burn_immunity = 0.5 explosion_immunity = 0.1 fire_wound_immunity = 0.5 [actor_immunities_gd_stalker] burn_immunity = 0.65 ;коэффициенты иммунитета strike_immunity = 0.65 shock_immunity = 0.65 wound_immunity = 0.65 radiation_immunity = 0.65 telepatic_immunity = 0.65 chemical_burn_immunity = 0.65 explosion_immunity = 0.3 fire_wound_immunity = 0.65 [actor_immunities_gd_veteran] burn_immunity = 0.8 ;коэффициенты иммунитета strike_immunity = 0.8 shock_immunity = 0.8 wound_immunity = 0.8 radiation_immunity = 0.8 telepatic_immunity = 0.8 chemical_burn_immunity = 0.8 explosion_immunity = 0.6 fire_wound_immunity = 0.8 [actor_immunities_gd_master] burn_immunity = 1.0 ;коэффициенты иммунитета strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 1.0 radiation_immunity = 1.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 1.0 fire_wound_immunity = 1.0 А отсюда случайном образом выбирается для хита: Код hit_power = 1.58, 1.62, 1.65, 1.68 |
 
|
|
![]()
Сообщение
#3
|
|
![]() Грандмастер Репутация: ![]() ![]() Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 ![]() |
actor.ltx Стало быть урон получаемый ГГ от огнестрела задается в этом конфиге. А что эти секции: Код actor_immunities_gd_novice actor_immunities_gd_stalker actor_immunities_gd_veteran actor_immunities_gd_master Они в движке, как я понимаю? Убрать, добавить не выйдет. случайном образом Хм... странно. Одно время обсуждали в скайпе параметры оружия, проверяли по движку. Вроде пришли к тому, что не случайно. Сам уверен, что случайно? UPD: Насчёт: Чем выше настройка, тем меньше полезных объектов может быть найдено в игровом мире Вот вспомнил, натыкался здесь: http://stalkerin.gameru.net/wiki/index.php...дметов_в_трупах Код [item_count_0] -новичок [item_count_1] -опытный [item_count_2] -ветеран [item_count_3] -мастер UPD2: Как удалось понять, файл gamedata\config\misc\death_generic.ltx вызывается из death_manager.script Код local death_ini = ini_file("misc\\death_generic.ltx") UPD3: Как скрипт понимает какая цифра какой сложности соответствует, видимо можно по строчке: Код local item_count_section = "item_count_" .. level.get_game_difficulty() UPD4: Ааа... ну понятно, bind_stalker.script Код local game_difficulty_by_num = { [0] = "gd_novice", [1] = "gd_stalker", [2] = "gd_veteran", [3] = "gd_master" } UPD5: А они в свою очередь в движке: xr_3da\xrGame\game_cl_single.cpp Код xr_token difficulty_type_token [ ]={
{ "gd_novice", egdNovice }, { "gd_stalker", egdStalker }, { "gd_veteran", egdVeteran }, { "gd_master", egdMaster }, { 0, 0 } }; Сообщение отредактировал aka_sektor - 02.07.2019, 21:19 -------------------- |
 
|
|
![]()
Сообщение
#4
|
|
![]() TECHNOSLAV 80 уровня Репутация: ![]() ![]() Группа: Участник Сообщений: 5758 Награды: 6 Регистрация: 26.01.2014 ![]() |
hit_power = 1.1, 1.2, 1.3, 1.4
На новичке ГГ будет наносить 1.4 урона, а NPC будут наносить 1.1. На "мастере" всё наоборот - ГГ наносит низкий урон, NPC высокий. Проверял опытным путём (ставил ноль то в конец, то в начало). Можно оставить просто одну цифру чместо четырёх и на всех урочнях сложности будет одинаковый исходный урон (дальше играют роль иммунитеты) Вероятность засчёта попадания пуль по ГГ в параметрах типа hit_probability_gd_xxx. Я предпочитаю ставить 1.0, в противном случае ГГ "уворачивается" от слишком большой части пуль. В каком-то конфиге указано, с какого расстояния начинает работать hit_probability. То есть с расстояния ниже 20 (вроде) метров, ГГ не сможет "уворачиваться". Поэтому перестрелки с NPC в закрытых помещениях часто намного хардкорнее, чем в "чистом поле". Это всё касается ТЧ. В ЧН грят чем выше сложность, тем легче убить NPC. Не проверял. Сообщение отредактировал Cossack-HD - 03.07.2019, 01:16 -------------------- Ryzen 3700X
Arctic Freezer 33 eSports Duo 16GB DDR4 3600MHz Strix GTX 1080 TI |
 
|
|
![]()
Сообщение
#5
|
|
![]() Почти Мастер Репутация: ![]() ![]() Группа: Участник Сообщений: 1168 Награды: 4 Регистрация: 10.11.2015 ![]() |
Ещё сложность игры, влияет на максимальную дальность броска гранаты НПС для ЧН и ЗП.
-------------------- СТАЛКЕР только для ПК!
|
 
|
|
![]()
Сообщение
#6
|
|
Опытный Геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 150 Награды: 3 Регистрация: 16.02.2014 ![]() |
Цитата ;-- params when silencer is attached, similar to corresponding params without prefix silencer_ silencer_hit_power = 0.38 silencer_hit_impulse = 120 silencer_fire_distance = 250 silencer_bullet_speed = 600 Мусор по ходу? Поиском по исходникам нигде не найдено, в скриптах то же. |
 
|
|
![]()
Сообщение
#7
|
|
![]() TECHNOSLAV 80 уровня Репутация: ![]() ![]() Группа: Участник Сообщений: 5758 Награды: 6 Регистрация: 26.01.2014 ![]() |
Цитата ;-- params when silencer is attached, similar to corresponding params without prefix silencer_ silencer_hit_power = 0.38 silencer_hit_impulse = 120 silencer_fire_distance = 250 silencer_bullet_speed = 600 Мусор по ходу? Поиском по исходникам нигде не найдено, в скриптах то же. Т.е. урон и импульс с конфига глушителя не юзается? Интересная находка. 12 лет эффекта Плацебо ![]() -------------------- Ryzen 3700X
Arctic Freezer 33 eSports Duo 16GB DDR4 3600MHz Strix GTX 1080 TI |
 
|
|
![]()
Сообщение
#8
|
|
Опытный Геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 150 Награды: 3 Регистрация: 16.02.2014 ![]() |
Цитата Т.е. урон и импульс с конфига глушителя не юзается? Да нет, все юзается, просто конфиги глушителя читаются из его секции. А эти параметры оказались просто мусор, который забыли\поленились удалить. |
 
|
|
![]()
Сообщение
#9
|
|
![]() Игровой Бог Репутация: ![]() ![]() Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 ![]() |
А эти параметры оказались просто мусор, который забыли\поленились удалить. А ты точно уверен? Нигде там не доклеивается случаем "silencer_" к обычным ТТХ при чтении? Насколько я помню, это работало. Под рукой в данный момент нет сырцов чтобы проверить. -------------------- |
 
|
|
![]()
Сообщение
#10
|
|
Pro gamer
![]() Почти Игроман Репутация: ![]() ![]() Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 ![]() |
Судя по всему правы обе стороны=D
Т.к. по сути загрузка этих параметров происходит здесь: Код void CShootingObject::LoadFireParams (LPCSTR section, LPCSTR prefix) { string256 full_name; string32 buffer; shared_str s_sHitPower; //базовая дисперсия оружия fireDispersionBase = pSettings->r_float (section,"fire_dispersion_base" ); fireDispersionBase = deg2rad (fireDispersionBase); //сила выстрела и его мощьность s_sHitPower = pSettings->r_string_wb(section,strconcat(sizeof(full_name),full_name, prefix, "hit_power"));//читаем строку силы хита пули оружия fvHitPower[egdMaster] = (float)atof(_GetItem(*s_sHitPower,0,buffer));//первый параметр - это хит для уровня игры мастер fvHitPower[egdVeteran] = fvHitPower[egdMaster];//изначально параметры для других уровней fvHitPower[egdStalker] = fvHitPower[egdMaster];//сложности fvHitPower[egdNovice] = fvHitPower[egdMaster];//такие же int num_game_diff_param=_GetItemCount(*s_sHitPower);//узнаём колличество параметров для хитов if (num_game_diff_param>1)//если задан второй параметр хита { fvHitPower[egdVeteran] = (float)atof(_GetItem(*s_sHitPower,1,buffer));//то вычитываем его для уровня ветерана } if (num_game_diff_param>2)//если задан третий параметр хита { fvHitPower[egdStalker] = (float)atof(_GetItem(*s_sHitPower,2,buffer));//то вычитываем его для уровня сталкера } if (num_game_diff_param>3)//если задан четвёртый параметр хита { fvHitPower[egdNovice] = (float)atof(_GetItem(*s_sHitPower,3,buffer));//то вычитываем его для уровня новичка } //fHitPower = pSettings->r_float (section,strconcat(full_name, prefix, "hit_power")); fHitImpulse = pSettings->r_float (section,strconcat(sizeof(full_name),full_name, prefix, "hit_impulse")); //максимальное расстояние полета пули fireDistance = pSettings->r_float (section,strconcat(sizeof(full_name),full_name, prefix, "fire_distance")); //начальная скорость пули m_fStartBulletSpeed = pSettings->r_float (section,strconcat(sizeof(full_name),full_name, prefix, "bullet_speed")); m_bUseAimBullet = pSettings->r_bool (section,strconcat(sizeof(full_name),full_name, prefix, "use_aim_bullet")); if (m_bUseAimBullet) { m_fTimeToAim = pSettings->r_float (section,strconcat(sizeof(full_name),full_name, prefix, "time_to_aim")); } } Но вызывается функция только так Код if(IsSilencerAttached() && SilencerAttachable()) { m_sFlameParticlesCurrent = m_sSilencerFlameParticles; m_sSmokeParticlesCurrent = m_sSilencerSmokeParticles; m_pSndShotCurrent = &sndSilencerShot; //сила выстрела LoadFireParams (*cNameSect(), ""); //подсветка от выстрела LoadLights (*cNameSect(), "silencer_"); ApplySilencerKoeffs(); } else { m_sFlameParticlesCurrent = m_sFlameParticles; m_sSmokeParticlesCurrent = m_sSmokeParticles; m_pSndShotCurrent = &sndShot; //сила выстрела LoadFireParams (*cNameSect(), ""); //подсветка от выстрела LoadLights (*cNameSect(), ""); } Из чего мы можем сделать вывод, что либо этот код deprecated, либо явно недоработка связанная с копипастом кода |
 
|
|
![]()
Сообщение
#11
|
|
![]() Продвинутый геймер Репутация: ![]() ![]() Группа: Участник Сообщений: 222 Награды: 3 Регистрация: 28.06.2016 ![]() |
buffy, а дальше вот так:
CODE
|
 
|
|
![]()
Сообщение
#12
|
|
![]() Грандмастер Репутация: ![]() ![]() Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 ![]() |
Мусор по ходу? Может пояснишь, каким образом параметры глушителя относятся к обсуждению темы сложности в игре? Похоже это оффтоп. -------------------- |
 
|
|
![]()
Сообщение
#13
|
|
Pro gamer
![]() Почти Игроман Репутация: ![]() ![]() Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 ![]() |
|
 
|
|
![]()
Сообщение
#14
|
|
![]() TECHNOSLAV 80 уровня Репутация: ![]() ![]() Группа: Участник Сообщений: 5758 Награды: 6 Регистрация: 26.01.2014 ![]() |
mortan, ну вроде всё демократично=) у неписей и в мульте у актёра фул урон, иначе по уровню сложности выбирается ЗЫ: я далеко не копал, на то у меня нет времени каким образом параметры глушителя относятся к обсуждению В заглавии темы: "На что влияет?" У глушителя вроде всегда только один параметр урона (уникальный для каждого оружия). Так что в контексте сложности это оффтоп. Но вот неожиданный поворот: если играем на высокой сложности, где для актёр будет стрелять самым слабым hit_power, то silencer_hit_power может быть выше и глушитель будет помогать наносить больше урона по врагам ![]() Сообщение отредактировал Cossack-HD - 14.07.2019, 16:05 -------------------- Ryzen 3700X
Arctic Freezer 33 eSports Duo 16GB DDR4 3600MHz Strix GTX 1080 TI |
 
|
|
![]()
Сообщение
#15
|
|
![]() Грандмастер Репутация: ![]() ![]() Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 ![]() |
В заглавии У глушителя вроде всегда только один параметр урона Мы как-то выясняли вопрос по указанным параметрам, для статьи: silencer_hit_power = 0.38 silencer_hit_impulse = 120 silencer_fire_distance = 250 silencer_bullet_speed = 600 Так вот, это устаревшие параметры из Oblivion Lost. В финалке не используются. -------------------- |
 
|
|
![]()
Сообщение
#16
|
|
Pro gamer
![]() Почти Игроман Репутация: ![]() ![]() Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 ![]() |
устаревшие параметры из Oblivion Lost Мой пост, судя по сему, опять не поняли. Я клонил к тому, что, во-первых, глушители появились позже "Oblivion Lost'a", а во-вторых код в строках 908-918 явная копипаста кода из строк 922-929 ![]() Т.е. вместо Код 914:> LoadFireParams (*cNameSect(), ""); логически предполагалось Код LoadFireParams (*cNameSect(), "silencer_"); И выглядело это так(далее П-программист, Д-дизайнер): -Д: Нужно сделать разные параметры урона у пушки с и без глушителя. В качестве параметра использовать префикс "silencer_" к основным "hit_power", "hit_impulse" ... -П: Пфф, да ща... готово -Д: Параметры прописал, эээ а у нас есть утилита для отладки параметров -П: ээ, нет. Эээ, ну партикл то меняется - значит работает Как-то так =D |
 
|
|
![]() ![]() |
Текстовая версия | Сейчас: 29.03.2024, 17:42 |