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

imcrazyhoudini

Жители
  • Число публикаций

    1 197
  • Регистрация

  • Последнее посещение

  • Дней в топе

    1
  • AMKoin

    18,644 [Подарить AMKoin]

imcrazyhoudini последний раз побеждал 23 Августа

imcrazyhoudini - автор самых популярных публикаций!

Баланс оценок

209

Звание

  • Звание
    Профессор

Донаты

  • Карта банка
    4441 1144 0008 6888

Недавние посетители профиля

4 881 просмотр профиля

Закладки

  1. Новые локации
    Новые локации

     

    В 18.03.2020 в 21:17, Никсон сказал:

    Вот бы еще билдосвалку сделать и привести в порядок. 

    То, что ещё не успел перевести на текстуры зп: https://drive.google.com/file/d/1ggUHq5h2dF_NWPaD7h_iUt43DXQ_p-q5/view?usp=sharing

     

    билдовые версии свалки, бара и завода Росток.
    (только исходники, без наполнения - деревья / пропсы)

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

    33fMH.jpg

    33fMJ.jpg

    33fMK.jpg

    33fML.jpg

     

    - исправлены вывернутые / двойные / инвалид-полигоны
    - настроены все материалы****
    - перетекстурены* / заменены некоторые объекты**
    - добавлены фейки, где есть ступеньки (а также hom, nosun)
    - объекты разделены на группы / сектора
    - сделаны _det*** / _mask текстуры

     

    * - максимально сокращено использование текстур низкого разрешения, типа:
    crete_floor3
    crete_roof1_border
    crete_st_rg01
    crete_stena_gr
    crete_walls8
    mtl_walls1
    mtl_walls1_b
    ston_bricks7
    ston_walls2
    ston_white_wall_a

     

    ** - билдовые дерев.дома в баре; на заводе идентичными объектами с мп-карты зп

    *** - альфа-канал оставлен чисто белым (255), для уменьшения плотности травы следует затемнить нужные участки, а чёрным закрасить всё, что за игровыми границами уровня (это может существенно снизить время компила травы)

    **** - в архиве имеется инфа (текстуры, значения для масштабирования) для создания шейдеров террейна


  2. [SoC] Ковыряемся в файлах
    [SoC] Ковыряемся в файлах
    5 часов назад, Houdini_one сказал(а):

    Как можно сделать в самой игре снимок локации сверху, если статическое освещение в игре отсутсвует? Нужно для того, чтобы создать det карту. На динамике снимок жёлтым заливает, может исправить это как-то можно, или ещё какой способ снимка есть?

    Сперва выставить погоду с именем map:

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

    Подходит для снимков на р2

     

    \config\weathers\weather_mаp.ltx

     

    [map_01]
    flares        =
    sky_texture    = sky\sky_7_cube
    sky_rotation    = 0
    sky_color    = 0.344, 0.344, 0.344
    clouds_texture    =
    clouds_color    = 0, 0, 0, 0
    far_plane    = 9000
    fog_distance    = 8900
    fog_color    = 1, 1, 1
    fog_density    = 0
    rain_density    = 0
    rain_color    = 1, 1, 1
    thunderbolt    =
    bolt_period    = 0
    bolt_duration    = 0
    wind_velocity    = 0
    wind_direction    = 0
    ambient        = 0.6, 0.6, 0.6
    hemi_color    = 0.5, 0.5, 0.5, 1.0
    sun_color    = 0, 0, 0
    sun_dir        = -0.1, 0

     

    Если нужно с солнцем, сперва отключить тени от облаков (заремить #define USE_SUNMASK в \shaders\r2\common.h), и в игре выставить r2_sun_depth_near_bias: -.5 (убирает баг с тенями во время снимка, но после обязательно вернуть значение: 0)

     

    [map_01]
    flares        = flares_default10
    sky_texture    = sky\sky_7_cube
    sky_rotation    = 0
    sky_color    = 0.344, 0.344, 0.344
    clouds_texture    =
    clouds_color    = 0, 0, 0, 0
    far_plane    = 9000
    fog_distance    = 8900
    fog_color    = 1, 1, 1
    fog_density    = 0
    rain_density    = 0
    rain_color    = 1, 1, 1
    thunderbolt    =
    bolt_period    = 0
    bolt_duration    = 0
    wind_velocity    = 0
    wind_direction    = 0
    ambient        = 0.6, 0.6, 0.6
    hemi_color    = 0.5, 0.5, 0.5, 1.0
    sun_color    = 1, 0.957, 0.859
    sun_dir        = -90, 292

     

    Ещё можно в папке с уровнем, создать папку detail и туда закинуть текстуру жёлтого цвета с именем detail_grnd_asphalt

     


  3. [SoC] Ковыряемся в файлах
    [SoC] Ковыряемся в файлах
    1 час назад, Houdini_one сказал:

    подвида мутантов

    В оригинале в коде есть предикаты, вот кусок из gulag_bar.script

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

    ...

        -- ARENA MONSTERS
        if type == "bar_arena_monstr" then
            t = { section = "logic@bar_arena_monstr_pseudodog", 
                idle = 0,
                prior = 5, state = {1}, squad = squad, group = groups[0],
                in_rest = "", out_rest = "bar_arena_sr",
                predicate = function(obj_info)
                                 return obj_info.section_name == "pseudodog_arena"
                            end
            }

    ...

    Но работает ли это дело с монстрами... Проверь.

    1 час назад, андрей дронав сказал:

      скрипт некролога (Показать)

    Это весь скрипт? :crazy2:


  4. [SoC] Ковыряемся в файлах
    [SoC] Ковыряемся в файлах
    1 час назад, Houdini_one сказал:

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

    А зачем такие сложности?

    Пропиши в эту бутылку (physic_object) логику - когда ГГ её use'нет она удаляется, а настоящая водка спавнится в инвентарь.

    Ну, а дальше: db.actor:eat(db.actor:object("vodka"))


  5. [SoC] Ковыряемся в файлах
    [SoC] Ковыряемся в файлах
    4 часа назад, Houdini_one сказал:

    каким образом реализовывается дневные-ночные монстры

    Задать условия по времени для состояний, например.

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

    function load_job(sj, gname, type, squad, groups)
        --" Кровосос, хоум недалеко на восток от грузовика смерти
        if type == "esc_smart_bloodsucker" then
            -- днём оффлай
            t = { section = "logic@esc_smart_bloodsucker_day",
            idle = 0,
            prior = 5, state = {0},
            online = false,
            in_rest = "", out_rest = ""
            }
            table.insert(sj, t)
            -- ночью резвится
            t = { section = "logic@esc_smart_bloodsucker_night",
            idle = 0,
            prior = 5, state = {1},
            online = true,
            in_rest = "", out_rest = ""
            }
            table.insert(sj, t)
        end

        ...

    end

    ...

    function load_states(gname, type)
        if type == "esc_smart_bloodsucker" then
            return function(gulag)
                if db.actor ~= nil then
                    if ( level.get_time_hours() >= 3 and level.get_time_hours() <= 21 ) then
                        return 0  -- день
                    else
                        return 1  -- ночь
                    end
                else
                    return gulag.state
                end
            end
        end

        ...

    end

     


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

    @Hind так я же тебе кидал нормальную статью со всем этим(

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

     

    function actor_binder:net_destroy()

    после

        self.object:set_callback(callback.take_item_from_box, nil)

    вставляешь
        self.object:set_callback(callback.use_object, nil)

    function actor_binder:reinit()

    после
        self.object:set_callback(callback.use_object, self.use_object, self)


    вставляешь
        self.object:set_callback(callback.use_object, self.use_object, self)

    после

    function actor_binder:on_item_drop (obj)
        level_tasks.proceed(self.object)
        --game_stats.update_drop_item (obj, self.object)
    end
    ----------------------------------------------------------------------------------------------------------------------

    вставляешь:
    function actor_binder:use_object(obj)
      use_item(obj)    
    end

     

    function use_item(obj) 
        local obj = obj:section()
        if obj then  
            if obj == "medkit" then 
                -- юзанули аптечку - торкнуло (к вопросу о головокружении)
                level.add_pp_effector("alcohol.ppe", 100, false)  

                level.add_pp_effector("duality_circle.ppe", 100, false)
                -- и спавним "пустую" аптечку, например (к вопросу о выдаче нового айтема взамен использованого)
                alife():create("medkit_empty", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) 
            end
        end
    end

     

     


  7. [SoC] Вопросы по SDK
    [SoC] Вопросы по SDK
    7 часов назад, DarkSnowder сказал:

    функционирующий ключ -terrain

    https://disk.yandex.ru/d/Qe2RuMSBimPJVg 

    У этого в коде присутствует, как работает - не знаю.


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

    @Houdini_one

    Файл xr_gulag.script, в ф-цию
    -- получить имя пути места работы
    function gulag:get_job_path_name( job )


        ----- добавлено чтение конд-листа -----
    --    local active_section = self.ltx:r_string( section, "active" ) <-- это было изначально, добавить две строки, которые ниже
        local active_section_cond = xr_logic.cfg_get_condlist(self.ltx, section, "active", self)
        local active_section = xr_logic.pick_section_from_condlist(db.actor, self, active_section_cond.condlist)

     

    Вроде это все, что нужно изменить. Потести, если не взлетит, посмотрю внимательнее.


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