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

AI additions


Bak

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

Для адаптации AI Additions на OGSM ТЧ, насколько я понимаю, нужно еще операторам в новых модулях прописать следующие предусловия:

    if ogsm_hideout then
        action:add_precondition(world_property(ogsm_hideout.property_blowout, false))
        action:add_precondition(world_property(ogsm_hideout.property_hideout_lost, false))
        action:add_precondition(world_property(ogsm_hideout.property_inhide, false))
        action:add_precondition(world_property(ogsm_hideout.property_psyzoned, false))
    end

    if anomaly_evader then
        action:add_precondition (world_property(1099,false))
    end

Только вот вопрос, для всех ли операторов это нужно прописывать?

Изменено пользователем =300zx=
  • Полезно 1

@=300zx=, ну не знаю, я адаптировал аи адд и мод на выбросы, они друг другу не мешали. Во всяком случае у меня при тестах проблем выявлено не было:508:

 Моя нычка, Нычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

2 часа назад, Купер сказал:

Для наглядности:

Саму функцию check_art_weapon(npc) можно в xr_motivator.script прописать или создавать новый скрипт ?

04.08.2020 в 20:31, UriZzz сказал:

@=300zx=, ну не знаю, я адаптировал аи адд и мод на выбросы, они друг другу не мешали. Во всяком случае у меня при тестах проблем выявлено не было:508:

Явных проблем может и не будет, но для каких-то action возможно стоит добавить эти предусловия. Например, чтобы непись во время выброса не шел лутать итд.

 

В оригинальных модулях AI Additions есть закоментированные строчки для АМК-выброса:

--    if blowout_scheme and blowout_scheme.evid_outside then
--        action:add_precondition(world_property(blowout_scheme.evid_outside,false))
--    end

В OGSE, например в файле rx_gl.script, есть такие строчки:

    local action = action_launch_grenade(npc,"act_launch_grenade",storage)
    ...
    action:add_precondition(world_property(ogsm_hideout.property_blowout, false))
    action:add_precondition(world_property(ogsm_hideout.property_hideout_lost, false))
    action:add_precondition(world_property(ogsm_hideout.property_psyzoned, false))

Но в OGSE используется предыдущая версия AI Additions и не такая схема обхода аномалий как в OGSM.

  • Полезно 2

@Bak  Hello, I found a bug where NPCs start walking in this weird animation, walk really slowly and seem to be kind of sliding. It happens when they are just wandering around, when you get near them and go away they start walking normally. Could you check this out?

------------- Google translate ---------------------

Здравствуйте, я обнаружил ошибку, из-за которой NPC начинают ходить в этой странной анимации, очень медленно ходят и кажутся скользкими. Это бывает, когда они просто бродят, когда вы подходите к ним и уходите, они начинают нормально ходить. Не могли бы вы это проверить?

 

Screenshot: https://imgur.com/a/oQ0wV7w

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

I also encountered a bug where some NPCs (mainly duty guards at the Bar) have their flashlights shining under their feet at day time after a night where they use them.

 

I believe these bugs are caused by this mod but maybe someone can confirm. Every time I use this mod it happens.

----------------------------------------

Я также столкнулся с ошибкой, когда у некоторых NPC (в основном дежурных охранников в баре) фонари светились под ногами днем после ночи, когда они их использовали.

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

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

Okay, guess the problem has to be on my end. I don't know what else could cause that though, it happend twice in 2 different mod setups and the one where I didn't use it didn't have these issues. I would test it on vanilla but it happens only later in the game and I don't want to play vanilla :D

-----------------------

Ладно, думаю, проблема на моей стороне. Я не знаю, что еще могло вызвать это, хотя это случилось дважды в двух разных настройках мода, и в том, где я его не использовал, этих проблем не было. Я бы протестировал это на ванили, но это происходит позже в игре, и я не хочу играть в ваниль: D

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

Работает ли тут "эффект оптики" для НПС? Такое ощущение, что оптический прицел на их оружии ни на что не влияет.

30.05.2020 в 06:31, Rudolf2725 сказал:

@ted.80, при попытке сохранится иногда может произойти вылет. Ставил на OGSM v2.3.1, адаптация соответствующая.

Вот лог.

Expression    : e_entity->ID_Parent == id_parent
Function      : xrServer::Process_event_reject
File          : E:\stalker\sources\trunk\xr_3da\xrGame\xrServer_process_event_reject.cpp
Line          : 23
Description   : wpn_bm161746
Arguments     : rx_wmgr_box6382

Спустя почти полгода , но да и ладно))) Может быть кому-то пригодиться. 

Вылет связан с тем, что скорее всего при адаптации в bind_stalker метод save переписали с OGSM'овского.

Вот этот кусок кода:

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

function actor_binder:save(packet)
    local pk1 = fake_net_packet.fake_net_packet()
    self:save_old(pk1)
    --get_console():execute("Packet_size_is_"..pk1:w_tell())
    if pk1:w_tell()>7500 then
        ogsm_debug.clean_pstor()
    end
    self:save_old(packet)
end 

function actor_binder:save_old(packet)

    if rx_ai then rx_ai.actor_save(packet) end
    local save_treasure_manager = true

    printf("actor_binder:save(): self.object:name()='%s'", self.object:name())
    object_binder.save(self, packet)

    --' Сохраняем уровень сложности
    if save_treasure_manager == true then
        packet:w_u8(level.get_game_difficulty() + 128)
    else
        packet:w_u8(level.get_game_difficulty())
    end


    --' Сохраняем данные об отключенном вводе
    if self.st.disable_input_time == nil then
        packet:w_bool(false)
    else
        packer:w_bool(true)
        utils.w_CTime(packet, self.st.disable_input_time)
    end

    xr_logic.pstor_save_all(self.object, packet)
    self.weather_manager:save(packet)

    sr_psy_antenna.save( packet )

    if save_treasure_manager == true then
        treasure_manager.save(packet)
    end

    task_manager.save(packet)
    self.actor_detector:save(packet)    
end

 

Возвращаем на оригинальный:

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

function actor_binder:save(packet)
    local pk1 = fake_net_packet.fake_net_packet()
    if pk1:w_tell()>7500 then
        ogsm_debug.clean_pstor()
    end

    if rx_ai then rx_ai.actor_save(packet) end
    local save_treasure_manager = true

    printf("actor_binder:save(): self.object:name()='%s'", self.object:name())
    object_binder.save(self, packet)

    --' Сохраняем уровень сложности
    if save_treasure_manager == true then
        packet:w_u8(level.get_game_difficulty() + 128)
    else
        packet:w_u8(level.get_game_difficulty())
    end


    --' Сохраняем данные об отключенном вводе
    if self.st.disable_input_time == nil then
        packet:w_bool(false)
    else
        packer:w_bool(true)
        utils.w_CTime(packet, self.st.disable_input_time)
    end

    xr_logic.pstor_save_all(self.object, packet)
    self.weather_manager:save(packet)

    sr_psy_antenna.save( packet )

    if save_treasure_manager == true then
        treasure_manager.save(packet)
    end

    task_manager.save(packet)
    self.actor_detector:save(packet)    
end

После этого вылет должен исчезнуть.

P.S. Если кто-то знает зачем этот метод изменяли как показано под первым спойлером - буду благодарен если расскажите)

 

Изменено пользователем TomlnFerno
  • Сомнительно 1
22 часа назад, TomlnFerno сказал:

Вылет связан с тем, что скорее всего при адаптации в bind_stalker метод save переписали с OGSM'овского.

 

:dash2:

 

22 часа назад, TomlnFerno сказал:

P.S. Если кто-то знает зачем этот метод изменяли

 

Ну наверно потому что это адаптация для OGSM?

  • Смешно 1
13 часов назад, ted.80 сказал:

 

:dash2:

 

 

Ну наверно потому что это адаптация для OGSM?

Ну так надо же с умом делать) 

Из-за использования ОГСМ-ного варианта метода происходит тот вылет, а вот если взять вариант из моего предыдущего поста, то все в порядке, хотя я не претендую на то, что это является единственно верным решением, я просто предлагаю рабочие варианты, которые помогли мне и могут помочь ещё кому-то(кстати я там случайно вставил одинаковый код под оба спойлера и не могу повторно отредактировать пост,косяк)

Может быть мои формулировки не совсем точно отражают мысль, которую я пытаюсь донести, но все же не стоит так возмущаться ) 

 

 

 

Изменено пользователем TomlnFerno
04.10.2020 в 21:56, TomlnFerno сказал:

Если кто-то знает зачем этот метод изменяли как показано под первым спойлером - буду благодарен если расскажите)

Кстати да. По сути модуль нэт пакетов в ОГСМ используется только с дин.аномалиями.@TomlnFerno, да походу конструкция выполняет дебаговую функцию.

 if pk1:w_tell()>7500 then

        ogsm_debug.clean_pstor()

    end

Но это не точно.

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

 Моя нычка, Нычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

 

05.10.2020 в 00:56, TomlnFerno сказал:

Вылет связан с тем, что скорее всего при адаптации в bind_stalker метод save переписали с OGSM'овского.

Ваш вывод притянут за уши, и в корне не верен, объясню:

 1) Этот "МЕТОД" а точнее функция - не переписана с ОГСМ - она там была изначально, так как эта адаптация сделана специально для ОГСМ

 2) ОГСМ отличный мод - сделанный не вчера, и если-бы ноги росли от-туда, баг давно отловили бы и пофиксили.

 

05.10.2020 в 00:56, TomlnFerno сказал:

После этого вылет должен исчезнуть.

Нееееисключено - но это не точно.

 

06.10.2020 в 13:20, TomlnFerno сказал:

Из-за использования ОГСМ-ного варианта метода происходит тот вылет, а вот если взять вариант из моего предыдущего поста, то все в порядке,

Никогда такого не было, и вот опять, даже не понимая для чего этот код туда добавлен:

05.10.2020 в 00:56, TomlnFerno сказал:

Если кто-то знает зачем этот метод изменяли как показано под первым спойлером - буду благодарен если расскажите)

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

не парить мозк себе и других не вводить в заблуждение - хотя-бы просто гуглите в интернетах

 

2020-10-07-23-54-12.png

Изменено пользователем ted.80
  • Согласен 2
  • Полезно 2

Подскажите есть адаптации OGSM 2.4.3 AI ADDITIONS + STWP SOC? Никак не пойму как этот оружейный пак адаптировать, в кодах вобще не шарю... 

@андрей дронав, адаптация ai add есть, на счёт оружейного пака - учите матчасть.

 Моя нычка, Нычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

27.10.2020 в 12:03, UriZzz сказал:

@андрей дронав, адаптация ai add есть, на счёт оружейного пака - учите матчасть.

Спасибо за добрый совет. Матчасть это совсем не моё. Уже пробовал. 

09.03.2020 в 18:52, DarkSnowder сказал:

На АМК адаптацию ни видел ни разу.

У него же свое есть. По описанию - то же самое, и в комплекте, ЕМНИП.

Полезное... всегда храни при себе.

So I found a fix for the flashlight bug, it was from OGSM. However I still do not know how to fix the NPC walking. Would anyone know where I should look to fix this? Here is a video of it: https://youtu.be/WRXSTGPG1II

---------------------

Итак, я нашел исправление ошибки фонарика, оно было от OGSM. Однако я до сих пор не знаю, как исправить ходьбу NPC. Кто-нибудь знает, где я должен это исправить? Вот видео об этом:

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

@Bak 

Несколько предложений по поводу исправления оригинальных недоработок схем AI.

1) Неписи после потери цели из виду идут к тому месту, где последний раз ее видели, сбиваются в кучу и смотрят в стену/пол/потолок с криками: "Выходи, все равно найдем".

Предложение: либо заставить нпс походить/побегать вокруг этого места, или включать что-то типа post-combat.

2) Реагирование неписей на несуществующую (или уже несуществующую) или далекую опасность по типу компании Петрухи, когда они разбегаются по сторонам и сидят целясь куда-то, хотя рядом опасностей нет. Часто такое происходит после сохранения-загрузки.

Не знаю, пофиксено ли это в AI additions 2.

3) Неписи даже при получении урона не меняют позиции, не говоря уже при попадании рядом с ними.

Предложение: был один мод на ЗП от Pavlov - Клондайк MOD, в нем была схема avoid headshot. С ней вражеские неписи отбегали в сторону, если им на голову навести прицел (курсор). Возможно на основе этой идеи можно улучшить схему боевки при перестрелке неписей с игроком. То есть, если непись видит игрока и игрок навел прицел на тушку непися, то нпс начинает маневрировать или уходить в укрытие. Хотя, по идее надо брать некоторый радуис вокруг прицела игрока.

При перестрелке неписей с неписями, если правильно понимаю, просто проверка видят ли неписи друг друга и в зависимости от результатов - маневрировать, уходить в укрытие итд.

В боевке ОГСЕ такие условия:

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

if (npc:see(be) and (be:see(npc) or raytrace_see)) or (is_armor(be) and get_armor_vis(be, npc)) then             -- если видим врага и он видит нас            -- стреляем, ищем укрытие
...
elseif (npc:see(be) and not (be:see(npc) or raytrace_see)) or (is_armor(be) and not get_armor_vis(be, npc)) then        -- если видим врага и он НЕ видит нас        -- стреляем, маневрируя
...
elseif not npc:see(be) and (be:see(npc) or raytrace_see) then        -- если НЕ видим врага и он видит нас        -- убегаем, ищем укрытие
...
else                                            -- если НЕ видим врага и он НЕ видит нас    -- ищем врага


ЗЫ Стоит ли ожидать доработки схем xr_camper, xr_danger итд из Prosectors Project в AI Additions? 

  • Согласен 1

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

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

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

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

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

Войти

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

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

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