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

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


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

@ALEKCZY 

combat_ignore_cond = {-cart_npc_start}

 

очень интересная строчка, бессмысленная.

 

meet        = meet@no_use

 

по дефолту можно указать meet = no_meet, чтобы нпс не разговаривал.

 

А так вроде правильно, проверяй точно ли выдаётся инфопоршень.

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

Ссылка на комментарий

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

Лучше сделать мод с 0, чем пытаться залатать багованный.

Ссылка на комментарий

@DarkSnowder наверное где-то в map_spots.xml стоит покопать.

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

Ссылка на комментарий

@DarkSnowder , "... некоторые мёртвые сталкеры" - формулировочка :biggrin:!


По идее здесь: stalker_generic.script -> function reset_show_spot(npc, scheme, st, section)
Попробуй посмотреть для понимания как, например, в Солянке реализован вывод меток в зависимости от сложности.

Скрытый текст
--* (с) Солянка
function reset_show_spot(npc, scheme, st, section) counterAdd("stalker_generic.reset_show_spot")
    local spot_section
    if scheme == nil or scheme == "nil" then
        spot_section = utils.cfg_get_string(st.ini, st.section_logic, "show_spot", npc, false, "")
    else
        spot_section = utils.cfg_get_string(st.ini, section, "show_spot", npc, false, "")
    end
    if spot_section == nil then
        spot_section = "true"
    end
    local spot = "false"
    local ignoredCommunity = { ["zombied"] = true, ["fotoman"] = true, }
    if not ignoredCommunity[npc:character_community()] then
        local spot_condlist = xr_logic.parse_condlist(spot_section, npc, section, "show_spot")
        spot = xr_logic.pick_section_from_condlist(db.actor, npc, spot_condlist)
    end
  
    local sim = alife()
    if not sim then return end
    local obj = sim:object(npc:id())
    if obj then
        local alive = npc:alive()
     --* вот где-то здесь. В звисимости от вводных.
        if spot == "false"
            or IAmAStalker[npc:clsid()] and (
        		alive and npc:relation(db.actor) == game_object.enemy and
                (not game_options.minimapSpots_showEnemyLiveOnNovice or level.get_game_difficulty() > 0)
                or
                not alive and utils2.community_relation_name(npc:character_community(), db.actor) == "enemy"
                and game_options.minimapSpots_hideEnemyDeathOnMaster
                and level.get_game_difficulty() == 3
      			)
        then       
            obj:visible_for_map(false) -- прячем
        else     
            obj:visible_for_map(true)-- ставим
        end
    end
end

 

 

 

Изменено пользователем Купер
Ссылка на комментарий

@Hind в maingame.xml секция artefact_panel. ставишь отрицательные значения Х или У. пример <artefact_panel x="-10021" y="242"

@Hind вот гайд https://www.amk-team.ru/forum/topic/8013-hud/

Изменено пользователем ZonaChe
  • Спасибо 1
Ссылка на комментарий

Подскажите, может кто знает оптмиальные значение eat_satiety, чтобы герой почаще голодал, но не через каждые 5 минут. Может, кто то имеет универсальные числа?

Ссылка на комментарий

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

 

Если не ошибаюсь герой за 24 часа проголодается до красного индикатора (вроде когда хп начинает исчезать).

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

Ссылка на комментарий
12 часов назад, Hind сказал:

оптмиальные значение eat_satiety

В целом лучше настраивать голод, а не параметр 'eat_satiety' у "съедаемого".

А это довольно индивидуальные настройки. Тут на любителя... И смотря, какой у тебя движок. На ОГСР вкупе с жаждой, если смело завысить значения пар-ров, герой может часто терпилить от голода и сушняка (еле живой после сна, резкий упадок сил в неподходящий момент).  Также важно, какую ценность у тебя имеет еда. Как часто лутается/продаётся, насколько сытная. Нужен ли тебе реализм или просто для подгонки геймплея. Выводи текущие значения в лог и анализируй. Вот пример, как у меня на ОГСР поменялись кондиции ГГ за 10 игровых часов стояния на месте:

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

[actor_condition]  

satiety_v               =  0.000006  
satiety_power_v           = -0.000036  
satiety_health_v       = -0.000006   
satiety_light_limit    =  0.5
satiety_critical_limit =  0.25      

thirst_v               =  0.000012  
thirst_power_v           = -0.0072    
thirst_health_v           = -0.000003  
thirst_light_limit       =  0.5 
thirst_critical_limit  =  0.25 

 

N8MrONGI.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2007-01-2023%2007:22:35.jpg6kMWk9UH.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2007-01-2023%2007:53:04.jpg

 

Как по мне, заметное падение здоровья (голод не сильно увеличился, тут жажда зарешала, скорее всего). Если просто стоять. Но пока бегаешь, играешь, по пути съедаешь пару батонов и пару банок пива, в замесах несколько аптечек - этого не заметишь.

 

Гораздо заметнее падает выносливость, если таскать голодного и с сушняком актёра. Да ещё и с перегрузом. Выдыхается на раз. 

 

Изменено пользователем mole venomous
  • Спасибо 1

Здесь могла быть ваша реклама.

Ссылка на комментарий
05.01.2023 в 03:45, Купер сказал:

@DarkSnowder , "... некоторые мёртвые сталкеры" - формулировочка :biggrin:!


По идее здесь: stalker_generic.script -> function reset_show_spot(npc, scheme, st, section)
Попробуй посмотреть для понимания как, например, в Солянке реализован вывод меток в зависимости от сложности.

  Показать

--* (с) Солянка function reset_show_spot(npc, scheme, st, section) counterAdd("stalker_generic.reset_show_spot") local spot_section if scheme == nil or scheme == "nil" then spot_section = utils.cfg_get_string(st.ini, st.section_logic, "show_spot", npc, false, "") else spot_section = utils.cfg_get_string(st.ini, section, "show_spot", npc, false, "") end if spot_section == nil then spot_section = "true" end local spot = "false" local ignoredCommunity = { ["zombied"] = true, ["fotoman"] = true, } if not ignoredCommunity[npc:character_community()] then local spot_condlist = xr_logic.parse_condlist(spot_section, npc, section, "show_spot") spot = xr_logic.pick_section_from_condlist(db.actor, npc, spot_condlist) end local sim = alife() if not sim then return end local obj = sim:object(npc:id()) if obj then local alive = npc:alive() --* вот где-то здесь. В звисимости от вводных. if spot == "false" or IAmAStalker[npc:clsid()] and ( alive and npc:relation(db.actor) == game_object.enemy and (not game_options.minimapSpots_showEnemyLiveOnNovice or level.get_game_difficulty() > 0) or not alive and utils2.community_relation_name(npc:character_community(), db.actor) == "enemy" and game_options.minimapSpots_hideEnemyDeathOnMaster and level.get_game_difficulty() == 3 ) then obj:visible_for_map(false) -- прячем else obj:visible_for_map(true)-- ставим end end end

--* (с) Солянка
function reset_show_spot(npc, scheme, st, section) counterAdd("stalker_generic.reset_show_spot")
    local spot_section
    if scheme == nil or scheme == "nil" then
        spot_section = utils.cfg_get_string(st.ini, st.section_logic, "show_spot", npc, false, "")
    else
        spot_section = utils.cfg_get_string(st.ini, section, "show_spot", npc, false, "")
    end
    if spot_section == nil then
        spot_section = "true"
    end
    local spot = "false"
    local ignoredCommunity = { ["zombied"] = true, ["fotoman"] = true, }
    if not ignoredCommunity[npc:character_community()] then
        local spot_condlist = xr_logic.parse_condlist(spot_section, npc, section, "show_spot")
        spot = xr_logic.pick_section_from_condlist(db.actor, npc, spot_condlist)
    end
  
    local sim = alife()
    if not sim then return end
    local obj = sim:object(npc:id())
    if obj then
        local alive = npc:alive()
     --* вот где-то здесь. В звисимости от вводных.
        if spot == "false"
            or IAmAStalker[npc:clsid()] and (
        		alive and npc:relation(db.actor) == game_object.enemy and
                (not game_options.minimapSpots_showEnemyLiveOnNovice or level.get_game_difficulty() > 0)
                or
                not alive and utils2.community_relation_name(npc:character_community(), db.actor) == "enemy"
                and game_options.minimapSpots_hideEnemyDeathOnMaster
                and level.get_game_difficulty() == 3
      			)
        then       
            obj:visible_for_map(false) -- прячем
        else     
            obj:visible_for_map(true)-- ставим
        end
    end
end

 

 

 

ну у меня есть пара уник.нпс (спавнятся уже будучи жмуриками), которые в своём инвентаре имеют нужную по квесту весочь. Наводка на него дается в текстах. Вот и охота мне чтобы ГГ искал его (трупешник с предметом), не имея точки на карте как явного ориентира.

Лучше сделать мод с 0, чем пытаться залатать багованный.

Ссылка на комментарий

@DarkSnowder а, ты об этом.

 

Впиши в логику:

show_spot = false

  • Согласен 2

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

Ссылка на комментарий

@DarkSnowder , штатный параметр логики НПС: show_spot
Примеры использования в оригинале: сотоварищи Петрухи на Кордоне, десантоспецназ, высаживающийся на Агропроме после спасения группы Крота.

Изменено пользователем Купер
Ссылка на комментарий

Hello,
Someone can explain me what is this and how it works:

Привет,
Кто-нибудь объяснит мне, что это такое и как это работает:

game_graph.ltx

[location_1]
  000          = "..."
  001          = "ограниченный доступ"
  002		   = "запрещенный доступ"
  
[location_2]
  000          = "..."
  001		   = "не для игрока"

[location_3]
  000          = "..."



как работает иерархия Team>Squad>Group (spawn section properties)?

Изменено пользователем Borovos
Ссылка на комментарий

@Borovos по логике запрещает передвижения по граф поинтам для нпс, ваш кэп.

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

Ссылка на комментарий
1 час назад, imcrazyhoudini сказал:

@Borovos logically prohibits movement on graph points for NPC, your cap.

 

I understand this:
location_1 : 000 : open to all npc and monsters

location_1 : 001: some can go here but not all of them (so, who is limited? How control the limited access if it's possible?)

location_1 : 002: npc or monsters can't go here

 

location_2: 000 : by default, the player can be here (spawn at the relaod?)

location_2: 001: the player can not be here

 

location_3 : unknow

 

Ссылка на комментарий

@Hind в золотом шаре баюн ненадолго заставлял гг закрыть глаза.

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

Ссылка на комментарий
14 часов назад, Borovos сказал:

location_1 : 000 : open to all npc and monsters

При расстановки графпоинтов в сдк, по-умолчанию в свойствах:

Location, из game_graph.ltx
1: ...
2: ...
3: ...
4: ...

 

У ии (creatures\m_) есть параметр terrain:

[stalker_terrain]
255,000,255,255 ; ограничения по location_1, остальное разрешено
008,001,255,255 ; разрешено ходить по опасным местам на баре

 

На карте Бар, есть графпоинты с настройками:

Location
1: "Бар"
2: "ограниченный доступ"
 

В такие места, можно только нпс.

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

[burer_terrain]
255,000,255,255 ;на всех уровнях, по графам без описания
255,008,255,255 ;на всех уровнях, по туннелям
255,009,255,255 ;на всех уровнях, по подземельям


[location_0]
000 = "..."
001 = "эскейп (escape)"
002 = "свалка (garbage)"
003 = "агропром (agroprom)"
004 = "темная долина (dark valley)"
005 = "темная лаборатория (l04u_darklab)"
006 = "Росток (bar-rostok)"
007 = "Янтарь"
008 = "Милитари"
009 = "Мертвый город"
010 = "Болота"
011 = "Радар"
012 = "Радар бункер"
013 = "Припять"
014 = "станция АЭС"
015 = "Саркофаг"
016 = "Генераторы"
017 = "Военная лаборатория"

 

[location_1]
000 = "..."
001 = "равнина"
002 = "склоны"
003 = "болото"
004 = "мертвая земля"
005 = "деревня"
006 = "город"
007 = "промзастройка"
008 = "туннели"
009 = "подземелье"
010 = "водоем"
011 = "берег"
012 = "канал"
013 = "дороги"
014 = "железнодорожные насыпи"
015 = "искусственные заграждения"
016 = "крыши строений, вышки"

 

[location_2]
000 = "..."
001 = "здание"
002 = "свалка"
003 = "бурелом"
004 = "деревья"
005 = "кустарник"
006 = "радиационный очаг"

 

[location_3]
000 = "..."
001 = "Эскейп: Блокпост"
002 = "Эскейп: Заброшенная фабрика"
003 = "Эскейп: Нычка новичка"
004 = "Лаб X18: Коридор бюрера"

 

Всё это для раннего концепта "свободный алайф", где ии бродил на картах, случайным образом от графпоинта к графпоинту, и никаких смартов / ограничивающих рестрикторов. Можно и в финалке, всем нпс / мутантам прописать: [smart_terrains]
none = true, но без настройки графпоинтов почти бесполезно.

 

  • Спасибо 1
  • Полезно 1
Ссылка на комментарий

@h0N0r а что location 3 даёт? Да и 2 зачем, вроде 0 и 1 хватает...

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

Ссылка на комментарий

Товарищи знающие, подскажите, а каков допустимый диапазон для параметров у ПБС:

bullet_hit_power_k
bullet_speed_k
fire_dispersion_base_k
cam_dispersion_k

 

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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