Перейти к содержанию

N42

Сталкеры
  • Публикаций

    1 141
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Сообщения, опубликованные N42


  1. frankenshtayn

    Спойлер

    function est_npc()
        local tbl_npc_sid = {
                            441,
                            442,
                            443,
                            444,
                            445,
                            446
                        }
                        

        local est_npc = false

        for i,v in ipairs(tbl_npc_sid) do
            local npc = alife():story_object(v)
                if npc then
                    est_npc = true
                        break
                end
        end

            return est_npc
    end

    Вернет true если есть нпс с сидом из таблички

     


  2. frankenshtayn я правильно понял, есть 6 равнозначных нпс, и если осталось 2 любых - они удаляются? Или есть важные среди них? Если они равнозначны - можно сделать счетчик, который сохраняется гг в пстор, добавить каждому нпс в on_death функцию с увеличением счетчика и потом в рестрикторе проверять значение, если == 4 - удалять других нпс


  3. ian98 тогда будет проще в цикле перебрать объекты и проверять наличие метки level.map_has_object_spot(id, "метка"). Или через биндер на нетспавне нпс, если координаты у нпс в онлайне. Но тоже смотря когда и сколько раз это получается, если часто - надо оптимизировать, а не циклы крутить. Получить цель можно только у квестов, которые прописаны в task_manager.ltx (в task_manager.script создается табличка активных квестов с параметрами). Если задание из xml файлов - цель не получить (или составлять для них конфиг с идами заданий и целями)

    В 28.06.2023 в 16:17, ian98 сказал:

    может знаешь, как пользоваться send_event_key_press(number)?

    Попробуй писать не цифры, а так level.send_event_key_press(DIK_keys.DIK_RETURN). Я за этим движком больше не слежу, хз что там, работает ли вообще

    frankenshtayn level_object_by_sid возвращает объект, у тебя таблица с объектами получается. Оставь в таблице сиды или имена, и потом в цикле сравнивай

    20 часов назад, frankenshtayn сказал:

    for _, v in ipairs(npc) do

    if npc and level.name() == "l02_garbage" then

    Переменной npc нету, нечего проверять. Точнее, только существование таблицы проверяет. Или есть другая функция с удалением полей таблицы?

    • Мастер! 1

  4. ian98 активное задание - оно какое? Строго с определенным идом или разные? Прописанное в task_manager.ltx или просто в gameplay? Про карту уже неважно, уже стало понятно, о чем речь. Разницы между миникартой и глобальной нет, просто изначально вопрос непонятен был, показалось, что речь может быть про координаты метки на картинке карты, а не про координаты объекта с меткой в игре. Поэтому надо подробнее писать, чтобы сразу понятно было, а не растягивать выяснение на кучу сообщений. И здорово ты проигнорил мою просьбу писать подробно что ты хочешь сделать


  5. ian98 координаты метки или координаты объекта, на котором метка? Если координаты объекта - строго определенный объект или рандомный? Задание определенное? Описывай подробнее, что нужно, и что ты хочешь сделать, если хочешь получить нормальный ответ


  6. Hunter посмотри faction commander, там вроде было

    4 минуты назад, Hunter сказал:

    можно спаунить челиков до тех пор, пока игра сама не решит кому-то выдать статус командира

    Так себе вариант, они все равно не пойдут в нужный смарт


  7. 10 минут назад, ian98 сказал:

    среди клсидов просто нашелся такой в луа хелпе по огср

    Смотри в class_registrator.script, он меняться может

    10 минут назад, ian98 сказал:

    Клиенсткий это всегда в алайфе, а серверный это ... все сразу? или в оффлайне?

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