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

AI additions

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

Может кто-нибудь обновит ссылку Адаптации для NLC. Спасибо заранее.

Вопрос не в том чего ты хочешь, вопрос в том, на что ты готов пойти ради этого...

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


Ссылка на сообщение
Поделиться на других сайтах

Для адаптации 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=

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


Ссылка на сообщение
Поделиться на других сайтах

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

Моя нычка. Периодически пополняю

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

UriZzz.gif

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


Ссылка на сообщение
Поделиться на других сайтах

К данному посту. Наткнулся у OGSE-шников по этому поводу:

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

"Изредка движок сглюкивает, назначая неписю в слот артефакт. Этого следует избежать, так как такие неписи застревают на попытке применения арта как оружия."(c)

Вообще, копипастить чужой код - такое себе занятие. Да и спецы наверняка у себя поправили. "Самоделкиным", однако, возможно будет любопытственно. В качестве идеи :biggrin:. Для наглядности:

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

function check_art_weapon(npc)
    local item_in_slot = npc:item_in_slot(1)
    local act_item = npc:active_item()
    if act_item and item_in_slot and act_item:id() == item_in_slot:id() then
        local item_in_slot_sec = act_item:section()
        local item_in_slot_id = act_item:id()
        if item_in_slot_sec and item_in_slot_id and string.find(item_in_slot_sec, "af_") then
--' Если непись получил арт в слот по ошибке при загрузке игры, мы просто, обновим ему оружие в руках и всё. Иначе, если он взял арт в руки и отказывается его убирать, а лучшее оружие получить не удаётся, придётся арт выбросить, отрелизить и вернуть ему в рюкзак.
            local bw = npc:best_weapon()
            local be = npc:best_enemy()
            local rem_id = npc:active_item():id()
            npc:drop_item(npc:active_item())
            local s_obj = alife():object(rem_id)
            if s_obj then
                alife():release(s_obj, true)
                alife():create(item_in_slot_sec,npc:position(),npc:level_vertex_id(),npc:game_vertex_id(),npc:id())
            end            
            if bw and string.find(bw:section(), "wpn_") then
                if be then
                    npc:set_item(object.fire1, bw)
                    return
                else
                    npc:set_item(object.idle, bw)
                    return
                end
            end
        end
    end
end

 

Простенько и со вкусом. И куда-нибудь на апдейт в мотиваторе:

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

function motivator_binder:update(delta)
...
        if self.object:alive() then
            check_art_weapon(self.object)
        end
...
end

 

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


Ссылка на сообщение
Поделиться на других сайтах
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.

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


Ссылка на сообщение
Поделиться на других сайтах

@Space.Marine, да. В таком виде непосредственно в мотиватор. Не совсем корректно озвучил :blush:. Если делать отдельно - придётся видоизменять вызов функции, хотя напуркуа :biggrin:?

Вариант решения не единственный, конечно. Просто обычно всё это зарыто в дебрях авторского кода, с кучей собственных "прибамбасов" под себя. А тут всё достаточно прозрачно и "модульно" для использования.

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


Ссылка на сообщение
Поделиться на других сайтах

@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 (в основном дежурных охранников в баре) фонари светились под ногами днем после ночи, когда они их использовали.

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

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

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


Ссылка на сообщение
Поделиться на других сайтах

@SeaZ0, никогда не наблюдал ни одну из вышеперечисленных проблем.

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


Ссылка на сообщение
Поделиться на других сайтах

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

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


Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, TomlnFerno сказал:

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

 

:dash2:

 

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

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

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
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

Моя нычка. Периодически пополняю

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

UriZzz.gif

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


Ссылка на сообщение
Поделиться на других сайтах

@TomlnFerno, очень похоже на старый партизанский метод борьбы с переполнением storage.

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


Ссылка на сообщение
Поделиться на других сайтах

 

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

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


Ссылка на сообщение
Поделиться на других сайтах

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

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


Ссылка на сообщение
Поделиться на других сайтах

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

Моя нычка. Периодически пополняю

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

UriZzz.gif

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


Ссылка на сообщение
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

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