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

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

12 минут назад, AndreySol сказал(а):

Например от голода - разве это признак ранения?

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

 

15 минут назад, AndreySol сказал(а):

что там в x-ray extension накрутили - надо в описании и читать.

// CEntityAlive
heal_wounds(float)

- там вот так и описано, что-де добавлен метод такой.


Подарки

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

    Решил сделать горячие кнопки на установку/снятие глушителя для оружия в активном слоте.

    Снятие сделал. Глушитель снимается и оказывается в инвентаре. Condition его при этом сохраняется. 

    В очень усечённом виде это выглядит так:

    local w = db.actor:active_item() --активный ствол
    local w_sect=w:section()
    if w:has_silencer() then				
    	local addon_sect=w:detach_silencer(true) --ph: false - снятый глушитель исчезает, true - попадает в инвентарь
    end

    Установка: а вот тут возникла проблемка. Имеется такой метод установки  глушителя:

    weapon:attach_silencer(sil)  --здесь sil - имя секции глушителя.

    При этом устанавливается вновь заспавненный глушитель. Мне же нужно

    или - 1)  брать уже имеющийся из инвентаря 

    или - 2)  менять condition на установленном указанным выше методом, а из инвентаря соответственно просто удалять

    Есть ли методы для вариантов 1 или 2? 

     

     

     

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

    @phalcor , что за движок? В ванильном нет ни has, ни detach, ни attach_silencer

    • Согласен 1

    Аддон для ОП-2.09.2: Яндекс/Google/GitHub

    naxac.gif


    Подарки

    Ссылка на комментарий
    16.07.2021 в 01:17, phalcor сказал(а):

    Есть ли методы для вариантов 1 или 2?

    Для ответа на этот вопрос, нужно либо иметь исходники движка, либо lua_help к нему, на худой конец...

    С ванильным движком такое "не обязательно" лишь потому, что он уже изучен и заезжен до дыр вдоль и поперек.

    • Согласен 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.

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

    Ребята, беда. Обнаружил, что в SAV сохраняются все СМС-сообщения. (Распаковал SAV и ахнул!)

    Естественно, я на смс-сообщения в своих скриптах не скупился. В результате размер SAVов увеличивался, и соответственно, увеличивается занимаемая оперативная память.

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

    Посоветуйте пожалуйста, как их можно из SAV удалить! Может скриптовый доступ есть, или в конфигах какая настройка на количество хранимых смс, или в движке такая настройка (мне не в лом exe-шник пропатчить, сменив эту цифру). Короче, я в шоке - год игры реального времени, и тут такая подстава! (зачем хранить смс, если мы видим лишь последние пару десятков в ПДА).

     

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

    Здравствуйте. 
    Не подскажете, есть ли возможность в ТЧ сделать тайники изначально заполненными, без надобности обшаривать каждый труп на наличие записи о тайнике? Ну то есть - ты сам должен будешь искать тайники, обшаривать каждый угол, нет никаких пометок на мини-карте/карте, нет такого, что какой-либо труп даёт заметку о каком-либо тайнике? 
    Просто всегда раздражала фигня, что пока не получишь наводку, тайник останется пустовать. Много больше нравилась система как в ЗП, хотя там как таковых тайников в виде сундучков/ящиков нету, все предметы валяются.

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

    @Firestarter Можно выдать тайники где-нибудь в начале новой игры. Для этого нужен список всех тайников. Список всех "ванильных" тайников и функция для выдачи :

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

    local treasure_list = {

            "esc_secret_bridge_vagon",
            "esc_secret_anomaly_dead",
            "esc_secret_bandit_cross",
            "esc_secret_bandit_supply",
            "esc_secret_under_cross",
            "esc_secret_refuge",
            "esc_secret_safe_farm",
            "esc_secret_vagon_container",
            "esc_secret_stalker_things",
            "esc_secret_box_bridge",
            "esc_secret_village_rucksack",
            "esc_secret_village_roof",
            "esc_secret_nice_place",
            "esc_secret_vorpal",
            "esc_secret_commander_goods",
            "esc_secret_road",
            "esc_secret_thief",
            "esc_secret_gas_pipe",
            "esc_secret_truck_goods",
            "esc_secret_kpp_tower",
        
            "gar_secret_bandit_hiding",
            "gar_secret_old_kran",
            "gar_secret_grizly",
            "gar_secret_north_tube",
            "gar_secret_metal_hiding",
            "gar_secret_cistern_pipe",
            "gar_secret_east_tube",
            "gar_secret_rucksack_noones",
            "gar_secret_murdered",
            "gar_secret_rotted_stump",
            "gar_secret_forest_log",
            "gar_secret_shooters_supply",
            "gar_secret_car_hiding",
            "gar_secret_bus_rucksack",
            "gar_secret_toilet",
            "gar_secret_south_safe",
            "gar_secret_metal_hiding2",
            "gar_secret_box_supply",
            "gar_secret_bus_tube",
            "gar_secret_rucksack_ruins",
            "gar_secret_box_blockpost",
            "gar_secret_deadman",
            "gar_secret_avoska",
            "gar_secret_escavator",
            "gar_secret_concrete_blocks",
        
            "agr_secret_gray",
            "agr_secret_stump",
            "agr_secret_cross",
            "agr_secret_tree_rucksack",
            "agr_secret_pipe_rucksack",
            "agr_secret_roof_box",
            "agr_secret_rucksack_blue",
            "agr_secret_cisterne",
            "agr_secret_rucksack_window",
            "agr_secret_box_radiation",
            "agr_secret_box_stairs",
            "agr_secret_box_factory",
            "agr_secret_bag_stand",
            "agr_secret_box_trash",
            "agr_secret_safe_tree",
            "agr_secret_rucksack_laketube",
            "agr_secret_tube_radiactive",
            "agr_secret_pipe_breakdown",
            "agr_secret_safe_bush",
            "agr_secret_box_archive",
            "agr_secret_sewers",
            "agr_secret_safe_wall",
            "agr_secret_box_institute",
            "agr_secret_agrosafe",
            "agr_secret_truck",
            "agr_secret_rotted_log",
            "agr_secret_box_zavhoz",
            "agr_secret_inventory_schlosser",
        
            "agru_secret_bandit_obschak",
            "agru_secret_rucksack_corner",
            "agru_secret_box_bloodsucker",
            "agru_secret_box_habar",
            "agru_secret_mole_cave",
        
            "val_secret_0000",
            "val_secret_0001",
            "val_secret_0002",
            "val_secret_0003",
            "val_secret_0004",
            "val_secret_0005",
            "val_secret_0006",
            "val_secret_0007",
            "val_secret_0008",
            "val_secret_0009",
            "val_secret_0010",
            "val_secret_0011",
            "val_secret_0012",
            "val_secret_0013",
            "val_secret_0014",
            "val_secret_0015",
            "val_secret_0016",
            "val_secret_0017",
            "val_secret_0018",
            "val_secret_0019",
            "val_secret_0020",
            "val_secret_0021",
            "val_secret_0022",
            "val_secret_0023",
            "val_secret_0024",
            "val_secret_0025",
            "val_secret_0026",
            "val_secret_0027",
            "val_secret_0028",
            "val_secret_0029",
            "val_secret_0030",
            "val_secret_0031",
            "val_secret_0032",    
        
            "x18_secret_0000",
            "x18_secret_0001",
        
            "bar_secret_0000",
            "bar_secret_0001",
            "bar_secret_0002",
            "bar_secret_0003",
            "bar_secret_0004",
            "bar_secret_0005",
            "bar_secret_0006",
            "bar_secret_0007",
            "bar_secret_0008",
            "bar_secret_0009",
            "bar_secret_0010",
            "bar_secret_0011",
            "bar_secret_0012",
            "bar_secret_0013",
            "bar_secret_0014",
            "bar_secret_0015",
            "bar_secret_0016",
            "bar_secret_0017",
            "bar_secret_0018",
            "bar_secret_0019",    
        
            "ros_secret_0000",
            "ros_secret_0001",
            "ros_secret_0002",
            "ros_secret_0003",
            "ros_secret_0004",
            "ros_secret_0005",
            "ros_secret_0006",
            "ros_secret_0007",
            "ros_secret_0008",
            "ros_secret_0009",
            "ros_secret_0010",
            "ros_secret_0011",
            "ros_secret_0012",
            "ros_secret_0013",
            "ros_secret_0014",
            "ros_secret_0015",
            "ros_secret_0016",
            "ros_secret_0017",
            "ros_secret_0018",
            "ros_secret_0019",
            "ros_secret_0020",
            "ros_secret_0021",
            "ros_secret_0022",
            "ros_secret_0023",
            "ros_secret_0024",
            "ros_secret_0025",    
        
            "yan_secret_0000",
            "yan_secret_0001",
            "yan_secret_0002",
            "yan_secret_0003",
            "yan_secret_0004",
            "yan_secret_0005",
            "yan_secret_0006",
            "yan_secret_0007",
            "yan_secret_0008",
            "yan_secret_0009",
            "yan_secret_0010",
            "yan_secret_0011",
            "yan_secret_0012",
            "yan_secret_0013",
        
            "x16_secret_0000",
            "x16_secret_0001",
        
            "mil_secret_0000",
            "mil_secret_0001",
            "mil_secret_0002",
            "mil_secret_0003",
            "mil_secret_0004",
            "mil_secret_0005",
            "mil_secret_0006",
            "mil_secret_0007",
            "mil_secret_0008",
            "mil_secret_0009",
            "mil_secret_0010",
            "mil_secret_0011",
            "mil_secret_0012",
            "mil_secret_0013",
            "mil_secret_0014",
            "mil_secret_0015",
            "mil_secret_0016",
            "mil_secret_0017",
            "mil_secret_0018",
            "mil_secret_0019",
            "mil_secret_0020",
            "mil_secret_0021",
            "mil_secret_0022",
            "mil_secret_0023",
            "mil_secret_0024",
            "mil_secret_0025",
            "mil_secret_0026",
            "mil_secret_0027",
            "mil_secret_0028",
                
            "rad_secret_0000",
            "rad_secret_0001",
            "rad_secret_0002",
            "rad_secret_0003",
            "rad_secret_0004",
            "rad_secret_0005",
        
            "pri_secret_0000",
            "pri_secret_0001",
            "pri_secret_0002",
            "pri_secret_0003",
            "pri_secret_0004", 
        
    }    
        
    function give_treasures()
        for i = 1, #treasure_list do
            tr = treasure_list
            treasure_manager.get_treasure_manager():give_treasure(tr)        
        end
    end    

    Это именно запланированные тайники, т.е. вовсе не все ящики будут с хабаром. Плюс в некоторых случаях на ванили будет пропажа содержимого.

    Можно ещё подавить выдачу СМС и метки тайника, закомментировав строки

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

    news_manager.send_treasure(v.name)

    local text = "%c[255,238,155,23]"..game.translate_string(v.name).."\\n".."%c[default]"..game.translate_string(v.description)
    level.map_add_object_spot_ser(obj.id, "treasure", text)

    в функции CTreasure:give_treasure(k) (treasure_manager.script).

     

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

     

    PS Но я бы всё же выдавал тайники постепенно. Хотя бы на текущей локации.

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

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


    Подарки

  • 4
  • 5
  • 5
  • 2
  • Ссылка на комментарий
    1 час назад, mole venomous сказал(а):

    Можно выдать тайники где-нибудь в начале новой игры.

    Т.е., то, что я описал - нереализуемо? Только лишь выбрать конкретно один ящик, и туда всё содержимое всех тайников запихать?
    Разве вообще никак нельзя сделать так, как я описал?

    • Сомнительно 1
    Ссылка на комментарий
    17 минут назад, Firestarter сказал(а):

    то, что я описал - нереализуемо?

    Можно выдать ВСЕ существующие базовые тайники. Я вроде, так и написал в начале предыдущего поста.

    А потом добавил, что это не отменяет получение тайников при обыске и желательно лучше сразу ВСЁ не спаунить.

    • Спасибо 1
    • Согласен 1

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


    Подарки

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

    @Firestarter Повторять список тайников вручную не требуется – достаточно пройтись по таблице self.treasure_info в [treasure_manager.script] и применить к каждому [id] тайника метод CTreasure:give_treasure, отключив в нем расстановку меток. Обычную выдачу тайников можно не глушить – в указанном методе есть переключение флага id.done (тайник выдан), и этот же флаг проверяется в методе CTreasure:use(npc) при обыскивании трупов.

    • Спасибо 1

    Мини-моды: ТЧ ЧН ЗП

    Шпаргалка

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

    Я вроде, так и написал в начале предыдущего поста.

    Значит я не понял, виноват, буду пробовать.

    3 часа назад, mole venomous сказал(а):

    Можно ещё подавить выдачу СМС и метки тайника, закомментировав строки

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

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

    ТЧ 1.0006.

    Задача: подключить расширенную библиотеку из мода OGSE для доступа к флагам предмета can_trade (4) и quest_item (2048) через метод set_inventory_item_int16.

     

    Год назад просто заменял [bin\xrGame.dll], ссылался на новый метод в своих скриптах и менял флаги предмета, а сейчас не могу даже запустить игру с этой библиотекой – судя по логу вылета, игра пытается нарисовать и вывести видимый слот ножа. Файлы оригинальной игры те же и на том же диске, папка [gamedata] чистая.

    Что я упускаю?

     

    Пост от прошлого года

    On 3/1/2020 at 2:43 PM, Norman Eisenherz said:

    Изменение статуса через get/set_inventory_item_int16 с другой библиотекой xrGame.dll работает

     

    Библиотека из OGSE:

    https://drive.google.com/file/d/1X3RjfIRClpwxSx6Uhw9m8qAyP7Qu-FXD

     

    Пример применения метода:

    function set_ii_flags(item, mask, value)      -- mask = 4 или 2048, value = true/false
        item: set_inventory_item_int16( 132, flags16():assign( item :get_inventory_item_int16(nil, 132) ) :set(mask, value) :get() )
    end

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

    Мини-моды: ТЧ ЧН ЗП

    Шпаргалка

    Ссылка на комментарий
    3 часа назад, Шипэтя сказал:

    или написать свою?

    Конечно, есть. Берешь и пишешь.

    • Согласен 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.

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

    @Norman Eisenherz , ну так либа-то OGSE-шная собрана из расчёта добавления новых худовых слотов. (нож, бинокль, etc).

     

    вар1:  добавить эти слоты (config + ui)

    вар2: пересобрать либу под собственные нужды. Емнип, нужные методы уже добавлены в "стандартный" X-Ray Ext. Недостающее для сборки с репо можно взять со второй ссылки. Ну и батники для сборки при этом поправить.

     

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

    @Купер Хитрость не в том, что библиотека не работает сейчас, а в том, что она работала год назад при простой замене базового файла ТЧ.

    Может ли на это влиять мини-патч от GSC? Как раз у файла xrGame.dll дата последнего изменения обновилась. В игре это сказалось, как минимум, на правильном чтении "show_ammo = false" в конфиге бинокля.

    Мини-моды: ТЧ ЧН ЗП

    Шпаргалка

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

    Как делается функция которая отвечает за включение и выключение ну допустим худ маски или поднятие денег с трупов и т.п в настройка игры?


    Подарки

  • Ссылка на комментарий
    3 минуты назад, I am Dead сказал:

    Это называется условие

    Извиняюсь за не знание, не судите я начинаю осваивать скрипты и по это много ошибаюсь, а может есть статейка где что то подобное рассказывается ?


    Подарки

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

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

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

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

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

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

    Войти

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

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

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

    AMK-Team.ru

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