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

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

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

2 минуты назад, ALEKCZY сказал:

и дальше мы продолжаем с ним диалог

Нужно окончить первый диалог, в конце которого будет выдаваться infoportion.

По этому инфо НПС переключится на следующую схему логики. Где новые пути, диалоги и т.п.

В общих чертах.

 

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

В диалоге мы здесь выдаём инфо:

gstgJRH8.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2003-01-2023%2000:24:51.jpg

В логике по выдаче инфо переводим НПС на следующую схему

fPKA7ej9.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2003-01-2023%2000:26:06.jpg

 

Что бы раньше времени не открывал рот не начинал следующий диалог, используй meet

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

[walker@bar_dolg_palych_moving]
path_walk = bar_dolg_palych2_walk 
path_look = bar_dolg_palych2_look 
combat_ignore_cond = {=fighting_dist_ge_20}
meet = meet@no_use
on_info = {+bar_dolg_palych_place} walker@bar_dolg_palych2

 

[meet@no_use]
use = false
use_wpn = false
abuse = false

 

  • Согласен 1

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


Подарки

  • 5
  • 3
  • 5
  • 4
  • Ссылка на комментарий

    @mole venomous благодарю, все работает, но как сделать так чтобы после диалога он "сразу" бежал к след. точке? В моем случае, нпс после разговора стоит и пялит на гг, пока мы не отойдем.

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

    @ALEKCZY ну после получения  инфопоршня переводи его в следующую логику, в которой будут уже другие вэйпоинты, на которые он и пойдёт.

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

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

    @imcrazyhoudini Я вроде так и сделал

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

    [walker@car_assault1]
    path_walk = walk_wait1
    path_look = look_wait1
    on_info = {+cart_npc_start} patrol@car_cer_nap1_leave
    meet = meet@car_nachal

     

    [patrol@car_cer_nap1_leave]
    path_walk   = walk_car2
    path_look   = look_car2
    combat_ignore_cond = {-cart_npc_start}
    commander   = true
    formation   = line
    meet        = meet@no_use
    on_info = walker@car_cer_nap2

    Разве нет?

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

    @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

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


    Подарки

  • 5
  • 2
  • 4
  • 5
  • Ссылка на комментарий
    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

     

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

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

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

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

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

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

    Войти

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

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

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

    AMK-Team.ru

    ×
    ×
    • Создать...