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

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

7 минут назад, Okichi сказал:

Наоборот же

Я это и имею ввиду, как то невнятно написал просто. 

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


Подарки

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

    Доброго времени. А есть способ узнать, присутствует ли у непися, который находится в оффлайне (например на другой локации) в его инвентаре конкретный итем?

     

    • Жуть! 1

    Подарки

  • Ссылка на комментарий
    2 часа назад, _Sk8_AsTeR_ сказал:

    есть способ узнать, присутствует ли у непися, который находится в оффлайне (например на другой локации) в его инвентаре конкретный итем?

    Я конечно понимаю, что наСТОящий сталкер - лёгких путей не ищет, но на кой фиг такие сложности?

    soryy за offтоп

     

    • Согласен 1
    • Сомнительно 2
    Ссылка на комментарий

    Я в чужие дела не лезу, хочет узнать - значит есть, зачем.

    @_Sk8_AsTeR_ если опираться на функционал оригинального движка. То придется перебрать в цикле 65к id, по каждому взять серверный объект, а у серверного объекта проверить его parent_id. Те у кого совпадет с id нужного непися - принадлежат ему.

    function get_offline_inv(id)
      local item_id = 1
      while item_id < 65534 do
        local sobj = alife():object(item_id)
        if sobj and sobj.parent_id == id then 
          table.insert(offline_inv, sobj)
        end
        item_id++; -- :)
      end
    end

    Как-то так. На более доведенном до ума движке, можно лучше конечно.

    P.S. Да, "готовый код" "заминирован" простыми ошибками намеренно. Я остаюсь верен своему принципу - помощи заслуживает тот, кто сам что-то делает. Эти простые ошибки легко исправить, если понимать, что делаешь. Однако если просто бездумно скопировать-вставить код, он работать не будет

    • Спасибо 1
    • Полезно 1
    • Сомнительно 2

    Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

    Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

    AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

    Ссылка на комментарий
    2 минуты назад, Zander_driver сказал:
    item_id++; -- :)

    Я конечно дико извиняюсь, это какова язика синтоксис?

    C# или С++ ?  но явно не LUA

    чукча конечно не прогер и может ошибаться

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

    @Zander_driver Затем, что если знать, ЧТО именно человеку нужно - можно иногда подсказать более рациональный и" нормальный" способ сделать что-либо. 
    А не городить странных конструкций только потому, что человек думает, будто то, что он просит - _единственный_ способ решения его проблемы.

    Посмотрите хоть в соседней теме по ковырянию - там просили (прости господи) анимки для ручного указания стэйтов мутанту. Вместо нормального использования моб_хоума с логикой.
    Или в этой же теме  -  эпопея с пачкой патронов.
    Всегда, чтоб продуктивно помочь -  надо знать, какая конечная цель.
     

    • Согласен 3
    • Полезно 1

    След от кругов на воде - это тоже след (с)

    Ссылка на комментарий
    11 минут назад, Zander_driver сказал:

    Я в чужие дела не лезу, хочет узнать - значит есть, зачем.   #Сидорович

     

    12 минут назад, Zander_driver сказал:

    если опираться на функционал оригинального движка

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

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

    единственная возможность изменения содержимого инвентаря (если я ни чего не забыл) нпс это торговля с ГГ, поэтому я и посчитал данный вопрос 

    всего лишь глупой хотелкой.

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

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

    Так то оно так. Но, если конечная цель является военной тайной вопрошающего, и не раскрывается ни при каких условиях, то что тут можно поделать?

    Можно конечно устроить партизанский допрос с пристрастием :crazy2: Но, это немного затратно по времени. В конце концов, если бы это было важно, человек сам бы сказал.

    2 часа назад, ted.80 сказал:

    Я конечно дико извиняюсь, это какова язика синтоксис?

    А еще можно выделить мой пост выше, и прочитать текст целиком, включая _невидимый_ :)

    Одну "мину" нашел, возьми с полки пирожок. Их там было две.

    Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

    Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

    AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

    @Zander_driver , ну, например - в данном случае полезно бы знать, является ли искомый предмет ( который надо найти в инвентаре непися ) - уником, или это снова "пачка патронов". Если это уник - совсем не надо цикл на 65 тыс, достаточно получить серверный объект этого уника ( по ид, по стори_айди, по имени, по хранимой переменной - как там он изначально определялся ) - и проверить ТОЛЬКО для него его текущего парента. 

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

    След от кругов на воде - это тоже след (с)

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

    Одну "мину" нашел, возьми с полки пирожок. Их там было две

    Я и не искал - она сама мне прямо в глаз "попала" :23:

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

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

    а если ему подскажут в чём трабл - ну или всё же сам допетрит - как ты думаешь что он с ним сделает?

    !Правильно! - повесит на апдейт! и вся эта портянка будет перебирать 65к предметов за такт, и опять начнется "виснит", "логаит", "вылитаит", :dash3:

    так что это тот ещё вопрос, под кого это мина заложена :WhiteVoid_2:, и восстанут "Юзвери" из пепла форумных ристалищ - и пойдут они строчить каменты на 3 страницы offтопа

     

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

    Есть у кого-нибудь схемы лута ящиков и разжигания костров неписями для ЗП? Или мб какая-нибудь статья где-то есть, посвящённая подобным темам. А то самому ума немного не хватает до конца разобраться со всем тем, что есть в xr_corpse_detection, чтобы по аналогии составлять скрипты для лута ящиков и т.д.

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


    Вопрос по ОГСР движку. Как заставить ГГ достать бинокль? Добавил по аналогии как в НА7 -- в bind_stalker:

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

    local slot_before_binoc    = -1

     

    function actor_binder:on_key(dik)
        local bind = dik_to_bind(dik)
        xr_signals.on_event("key_press", key, bind)
        if key == bind_to_dik(key_bindings.kNA_USE_BINOC) then
        if self.object:active_slot() == 8 then
        self.object:activate_slot(slot_before_binoc)
        elseif self.object:item_in_slot(8) and self.object:item_in_slot(8):is_binoculars() then
        slot_before_binoc = db.actor:active_slot()
        self.object:activate_slot(8)
    end
    end
    end

     

    function actor_binder:on_mouse_wheel(vol)
        if level.main_input_receiver() then
            return
        end
        xr_signals.on_event("mouse_wheel", vol)

        if self.object:has_info("ui_inventory") then
            return
        end

        if self.object:has_info("ui_pda") then
            return
        end

        if self.object:active_slot() == 5 and vol > 0 then
            if self.object:item_in_slot(8) and self.object:item_in_slot(8):is_binoculars() then
                self.object:activate_slot(8)
            end
        elseif self.object:active_slot() == 8 and vol > 0 then
            if self.object:item_in_slot(5) and not self.object:zoom_mode() then
                self.object:activate_slot(5)
            end
        end
    end

    В external:

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

    [custom_keyboard_action]
    na_use_binoc=kNA_USE_BINOC

    В ui_keybinding:

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

    <command id="kb_na_use_binoc"        exe="na_use_binoc"/>

    В игре назначил кнопку и результат 0.

    Изменено пользователем Colder

    Подарки

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

    Возможно в чистом ТЧ получить координаты точки, на которую нацелен/смотрит ГГ?

    @Кекс в логику рестриктора функцию:

    =set_squad_enemy_to_actor(id_сквада)

     

    God save Hatsune Miku!


    Подарки

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

    @Colder Чтож вы все пытаетесь игрока(т.е. живого человека) загнуть в ваши похотелки??? Ну всунешь ты ГГ бинокль скриптом в руки, что мешает игроку тут-же нажать назначенную клавишу другого снаряжения или колесико мыши крутнуть? В ЧЕМ смысл?

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

    Подозреваю, кат-сцену делают... где по сюжету ГГ должен бинокль достать, да еще наверное посмотреть в строго определенном направлении, чтобы там чего-то нужное увидеть.

    Проще всё нужное в этом случае, отснять на видео, перегнать в формат интро-роликов игры, и уже это в игре запускать. По образу-подобию снов Стрелка после прохождения Х-18 и иже с ними.

    • Согласен 1
    • Полезно 1

    Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

    Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

    AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

    @Zander_driver 

    Так я ж об этом самом: на кой игроку руки заламывать, сделайте в виде кат-сцены или ролика.

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

    Всем привет. Пытаюсь дать рандомный хит заспавненому предмету ГГ в рюкзак.

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

    function parse_list_box(obj)

        local sec = obj:section()

        local ac = sys_ini:r_float_ex(sec, "amount_content")

        local at = sys_ini:r_string_ex(sec, "amount_target")


            if rand(100) < ac then

            if ini_pack:section_exist(at) then


            local n = ini_pack:line_count(at)

            local key = rand(0,n-1)

            local result, item, num = ini_pack:r_line(at, key, "", "")


            alife():create(item, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())


            item:set_condition((math.random(5)+15)/100) -- делаю так, получаю вылет

            local name = tostring(sys_ini:r_string(item, "inv_name_short"))

                axr_txt_tip.send_tip_attach("%c[d_cyan]"..gts("st_ui_package").." %c[ui_white]"..gts(name))

                return item, num

            end

        end

    end

    Можно ли вообще каким нибудь путём дать хит?


    Подарки

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

    Пытаюсь дать рандомный хит заспавненому предмету ГГ в рюкзак

    Хит наносится так - 

    Скрытый текст
    	local h = hit()
    	h.power = 0.3
    	h.direction = vector():set(0, 0, 0)
    	h.impulse = 0
    	h.draftsman = db.actor
    	h.type = hit.fire_wound
    	obj:hit(h)  -- obj в данном случае клиентский объект, которому наносится хит

     

     item:set_condition((math.random(5)+15)/100)

    Метод set_condition применяется к клиентским объектам. А в вашем случае item - это, скорее всего, строка, поэтому и вылет.

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

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

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

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

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

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

    Войти

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

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

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

    AMK-Team.ru

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