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

[SoC] Ковыряемся в файлах

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

10 часов назад, Stalkersof сказал(а):

походу нет такой функции.

Можно делать скриптовый постпроцесс. И к нему добавлять какие угодно функции.

https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkciyam-i-klassam/?do=findComment&comment=473063

 

  • Полезно 4

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

@KERIXFIX337X эта папка вообще нужна для СДК и в игре не используется.

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

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 11 PRO x64 / Samsung Curved 27" x2


Подарки

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

    @Stalkersof , ага. Поэтому и полез уточнять, спрашивать. Наличие звука или партикла в игре можно отследить. Для постпроцесса, похоже, подобного функционала нет.

    @Zander_driver , полезно. Мощная штука. Но в данном случае субъективное ощущение, что "из пушки по воробьям" - "городить огородами", чтобы просто отследить активность постпроцесса? Проще уж по старинке, level.add_pp_effector() -> trigger=true, level.remove_pp_effector() -> trigger=false, с проверкой по значению trigger.

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

    Можно ли заспавнить предмет в инвентарь ГГ рандомно по классу?

    Мне нужно что-то типо:

    local misc = {
        [clsid.obj_medkit] = true,
        [clsid.obj_antirad] = true
    }

    function misc_test(obj)
        if misc[obj:clsid()] then

    ....

    end

     

    Или как-то так.

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

    Подарки

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

    @Colder 

    Ф-ции движка, которые спавнят объекты, принимают секцию конфига, а явной связи между движковым clsid и конфиговой секцией нет. А в чем собственно смысл, спавнить аптечку по clsid, а не по секции?

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

    Да бы не перечислять все предметы которые надо заспавнить,получиться длинющий список! Я хотел сделать это по классу что бы по короче. Ну раз нельзя.... спасибо!

    Другой вопрос спавню предметы и хочу получить сообщение о полученых, делаю так:

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

    local partn = {
        "grenade_rgd5",
        "ammo_9x18_fmj",
        "bandage",
        "antirad",
        "stim_bad",
        "medkit"
    }

     

    function random_item(obj)

        for i = 1, 2 do

        local a = partn[math.random(table.getn(partn))]

        local sect = obj:section()
        local name = tostring(system_ini():r_string(obj:section(),"inv_name_short"))

        local text = "\\n%c[white]"..game.translate_string(tostring(name))

        alife():create(a, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
        db.actor:give_game_news(text, "ui_libery\\ui_coal_air_iconstotal", Frect():set(415,94,83,47), 0, 6000)
    end
    end

    Но игра вылетает...

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

    Подарки

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

    @Colder 

    В конфигах есть три разных аптечки, но движковый clsid у них одинаковый. И так с оружием и многими другими предметами. Как будешь выбирать, что именно спавнить? Проще сделать таблицу секций, чем городить нехилый скриптовый огород, тем более, что удобной движковой ф-ции, которая может сопоставить clsid с секцией конфига - нет.

    Насчет вылета - что пишет-то в логе?

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

    @AndreySol

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

    Expression    : fatal error
    Function      : CInifile::r_string
    File          : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp
    Line          : 352
    Description   : <no expression>
    Arguments     : Can't find variable inv_name_short in [dog_weak]

    Пытаюсь доспавнить некоторые предметы Актору при срезании трофеев с мутантов!

    А он почему то считает секцию самого мутанта

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

    @Colder 

    В конфигах есть три разных аптечки, но движковый clsid у них одинаковый. И так с оружием и многими другими предметами. Как будешь выбирать, что именно спавнить? Проще сделать таблицу секций, чем городить нехилый скриптовый огород, тем более, что удобной движковой ф-ции, которая может сопоставить clsid с секцией конфига - нет.

    Насчет вылета - что пишет-то в логе?

    А можешь пж привести пример как сделать таблицу секций или можно где то подглядеть?


    Подарки

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

    @Colder 

    Ну так уже есть твой-же пример:

    local partn = {"grenade_rgd5",
        "ammo_9x18_fmj",
        "bandage",
        "antirad",
        "stim_bad",
        "medkit"}

     

    function random_item(obj)

        local sect = partn[math.random(table.getn(partn))]
        local name = system_ini():r_string(sect, "inv_name_short")
        local text = "%c[white]" .. name
        alife():create(sect, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
        db.actor:give_game_news(text, "ui_libery\\ui_coal_air_iconstotal", Frect():set(415,94,83,47), 0, 6000)
    end

    В таком виде ф-ция будет спавнить один объект из таблицы partn и выводить сообщение с коротким названием этого объекта.

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

    Пытаюсь создать тайник через скрипт с присвоением Сида

     

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

    local id_inv_box_1 = 48802
    function yashik_habar()
    local soObj = alife():create("esc_tainik_ferma",vector():set(-421.03182983398,1.2585370540619,40.20238494873),152517,3660)                                                           
    if soObj then
    id_inv_box_1 = soObj.id
    end
    end

    Тайник то спаунится, а вот сид не работает. Не пойму в чем ошибка?

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

    Да все работает, только когда приходит смс то там вот что)

    Посмотри что у тебя в конфигах предметов. А Именно в секции inv_name_short. Походу у тебя там строковые переменные. Варианта два либо в этой секции прописать нормальное название предмета либо по аналогии с остальными предметами внести строковый индификатор в конфиги.

    Ссылка на комментарий
    6 минут назад, Colder сказал(а):

    @Stalkersof В том то и проблема что в конфингах все у меня нормально!

    @Stalkersof Я так понимаю по другому ни как?

    Почему все должно работать. У Тебя в скрипте берется название предмета из секции inv_name_short предмета. Что в этой секции то и выводиться в сообщении. Не знаю в чем проблема должно все работать.

    Добавлено  Опричник,

    Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

    Устное предупреждение.

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

    @Stalkersof Попробывал inv_name и: https://yadi.sk/i/0Ys1hQGBoYZTzw

    Я непонимаю почему так, есть подобные функции и работают нормально а эта.....


    Подарки

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

    @WinCap Заработало:

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

    Вместо:

    function random_partn_monsters_item(obj)
        local sect = partn[math.random(table.getn(partn))]
        local name = system_ini():r_string(sect, "inv_name_short")
        local text = "%c[ui_white]"..game.translate_string("st_body_knife_parts").."\\n"..name
        alife():create(sect, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
        db.actor:give_game_news(text, "ui\\ui_coal_air_iconstotal", Frect():set(166,517,83,47), 0, 5000)
    end

     

    Сделал так:

    function random_partn_monsters_item(obj)
        local sect = partn[math.random(table.getn(partn))]
        local name = game.translate_string(system_ini():r_string(sect, "inv_name_short"))
        local text = "%c[ui_white]"..game.translate_string("st_body_knife_parts").."\\n"..name
        alife():create(sect, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
        db.actor:give_game_news(text, "ui\\ui_coal_air_iconstotal", Frect():set(166,517,83,47), 0, 5000)
    end

     

    Результат: https://yadi.sk/i/0agThJHHTEN5Wg

     

    • Нравится 2

    Подарки

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

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

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

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

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

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

    Войти

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

    Войти

    AMK-Team.ru

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