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

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

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

А как ввести поддержку клавиш "fn" в игру? Ибо неудобно постоянно игру сворачивать чтобы громкость убавить/прибавить.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий
Поделиться на других сайтах

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

Ссылка на комментарий
Поделиться на других сайтах

@I am Dead у меня как раз он, команду подскажешь?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий
Поделиться на других сайтах

14 часов назад, Houdini_one сказал:

неудобно постоянно игру сворачивать чтобы громкость убавить/прибавить.

Регулировать громкость в меню игры, не?

Отношения между людьми- главная ценность в человеческом обществе.
Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

Ссылка на комментарий
Поделиться на других сайтах

@aromatizer у меня везде всё стоит на максимум и я управляю регулировкой звука клавишами, так ведь удобнее.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий
Поделиться на других сайтах

7 часов назад, I am Dead сказал:

мультимедийные клавиши игра блокирует.

А если сделать регулировку громкости в игре у Сидора, за деньги? :hm:

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

Отношения между людьми- главная ценность в человеческом обществе.
Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

Ссылка на комментарий
Поделиться на других сайтах

Проблема в квесте: защитить лагерь новичков от наёмников. Толик и Шустрый не прячутся вместе со всеми. Толик бегает вокруг одного из подвалов, а Шустрый просто садится около костра.  Как их исправить?

Изменено пользователем андрей дронав
Ссылка на комментарий
Поделиться на других сайтах

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

Как их исправить?

Я Шустрого выгнал из гулага на персональную логику. Он больше не тупить. Ну Толику логику глянуть, пути им отредактировать в олл-спавне.

Но в любом случае, если они начали так себя на ванили вести, слетела логика или там уже ковырялись. Логика слетает, тут нужно исключить сохранения сразу после загрузки. И что-то в лог или сообщением выводить, если логика повисла.

02.12.2021 в 10:16, Houdini_one сказал:

так ведь удобнее

Ничего ещё не встречал удобнее "кругляшка". Только руку протянуть надо :biggrin:

Ссылка на комментарий
Поделиться на других сайтах

7 часов назад, mole venomous сказал:

слетела логика или там уже ковырялись.

Такое постоянно на OGSM 2.4.3, и на Патче ivg_brest, и на Bug Fix Attempt вроде такое встречал. 

Я не знаю как называется файлы логики, и как их править. 

Ещё вопрос. 

Как изменить визуал рандомным NPC? Добавил экзу бандитов, теперь нужно чтобы все мастера бандитов носили экзу, и те что вновь спавнятся. Прописал визуалы в character_desc_bandit,  мастера бандиты все равно ходят в плащах, что я делаю не так? 

Ссылка на комментарий
Поделиться на других сайтах

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

изменить визуал рандомным NPC

С одной стороны, приоритет визуала в файлах типа character_desc_, но не знаю структуру папок в OGSM, вообще ещё должны быть _general и _simulation. Можно, конечно и в all.spawn поменять "для общего развития", но там не приоритетно и ничего не должно измениться.

Что касается логики, опять же не известно, что там в ОГСМ сделано, но оригинале логика Шустрого в гулаге misc\gulag_escape.ltx, но он будет себя "плохо" вести, года оффлайн, постоянно спавнясь на АТП. У меня вопрос решён переводом его на персональную логику, но это далеко не пара правок. Я менял пути, смарт, правил логику, что-то там ещё, с ходу только накосячишь, если раньше не делал.

Логика Толика в том же гулаге, секция logic@esc_lager_defend10.

Тут, наверное, нужны спецы по ОГСМ, кто точно знает, что там менялось и, возможно, сможет пофиксить/скинуть фикс.

Изменено пользователем mole venomous
Ссылка на комментарий
Поделиться на других сайтах

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

Прописал визуалы в character_desc_bandit,  мастера бандиты все равно ходят в плащах, что я делаю не так? 

Скорее всего просто не везде прописал.

Конфиги НПС различных группировок могут быть в любых файлах character_desc_. Нужно открывать каждый файл и искать конфиги нужных тебе бандитов. Они могут быть прописаны (добавлены) в любое место в файле - хоть в начале, хоть в конце. 

Ссылка на комментарий
Поделиться на других сайтах

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

что я делаю не так? 

Может НИ не начинаешь?

В твоём случае проще подменить модельки .ogf на те, что в экзе. Либо новые скачать, чтобы братьев-близнецов не плодить. И НИ начинать не придётся.

Вопрос не в том чего ты хочешь, вопрос в том, на что ты готов пойти ради этого...
Ссылка на комментарий
Поделиться на других сайтах

23 минуты назад, Rock`n_Roll сказал:

проще подменить модельки .ogf

А как же пар-ры костюма, если они ему нужны, как экзовые, конечно...

Ссылка на комментарий
Поделиться на других сайтах

Спасибо всем! С визуалами разобрался! Я не дописал визуалы в некоторых файлах. НИ всегда начинаю если ковыряю геймдату. 

Теперь бы с логикой Шустрого и Толика разобраться. 

Изменено пользователем андрей дронав
Ссылка на комментарий
Поделиться на других сайтах

@андрей дронав я уж и не помню, что в xr_gulag.script изменить нужно, вроде это:
 

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

 

function cfg_get_condlist(ini, section, field, npc)
    local str = utils.cfg_get_string(ini, section, field, npc, false, "")
    if not str then
        return nil
    end

    local par = utils.parse_params(str)
    if not par[1] then
        abort_syntax_error_in_cond(npc, section, field)
    end

    local t = {}

    t.name = field
    t.condlist = parse_condlist(npc, section, field, par[1])

    return t
end

-- получить имя пути места работы
function gulag:get_job_path_name( job )
    local section = job.section
    
    if not self.ltx:line_exist(section, "active") then
        log("(%s):get_job_path_name: Wrong section=[%s] :<%s>", self.name, section, "Error!")
        table.print(job, sModule..":job|"..self.name)
        if self.ltx:section_exist(section) then
            abort("%s: ltx=[%s] no 'active' in section=[%s]", sModule, self.ltx_name, section, "")
        else
            abort("%s: ltx=[%s] no section=[%s]", sModule, self.ltx_name, section, "")
        end
    end
    
    local active_section = xr_logic.determine_section_to_activate(self, self.ltx, section, db.actor)
    --local active_section = self.ltx:r_string(section, "active")
    local path_field = nil
    for _,v in ipairs(path_fields) do
        if self.ltx:line_exist(active_section, v) then
            path_field = v
            break
        end
    end
    if not path_field then
        abort("%s: ltx=[%s], there is no path in section=[%s]", sModule, self.ltx_name, active_section, "")
    end
    --/ check for mismatching paths
    local path_name = self.name .. "_" .. self.ltx:r_string(active_section, path_field)
    if path_field == "center_point" then
        --/ fix for npcs respawning in firebins!
        if level.patrol_path_exists(path_name .. "_task") then
            return path_name .. "_task" --/>
        end
    end
    if not level.patrol_path_exists(path_name) then
        if not validate_patrol_path(path_name) then
            abort("%s: gulag=[%s] section=[%s] field=[%s] path=[%s]~doesn't exist!", sModule, self.name, active_section, path_field, path_name, "")
        end
    end
    --/ logging for specified "gulag_name" logic
    --if self.name == "esc_village_lager" then
    --    log("(%s):get_job_path_name:logic=[%s],active=[%s],path=[%s]", self.name, section, active_section, self.ltx:r_string(active_section, path_field))
    --end
    return path_name --/>
end

 

Потом нужно поле active править типо такого:
 

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

active = {+gar_stalker_kill} walker@gar_dolg_vhod_2, {-gar_stalker_kill} walker@gar_dolg_vhod_2a

И после сэйв-лоада товарищ не будет начинать свою жизнь с самой первой секции.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий
Поделиться на других сайтах

Не понятно, что происходит, просто оставлю здесь, может у кого так же...

После обновления движка OGSR до 2.1.320, перестало нормально отображаться влияние арта на выносливость (когда смотришь на плюсы/минусы при "нацепленном" артефакте). Что бы убедиться, что мне не показалось, выставил арту  

power_restore_speed   = 0.075, 

Это большой плюс, но в ячейке показано красным -1500 (или около того). При этом ГГ с нагрузкой около 80% от абсолютного максимума делает нехилый спринт с "прыжками с препятствиями", а выносливость не падает ниже 90%.

Может я уже что-то подзабыл о свойствах артов или лыжи не смазал... 

ЗЫ - Если не понятно обозначил, то это то, что арт показывает "минус выносливость" красным, но на проверку работает как "плюс выносливость" на те же цифры (типа зелёным).

Изменено пользователем mole venomous
Ссылка на комментарий
Поделиться на других сайтах

@mole venomous , создай проблему на гитхабе: https://github.com/OGSR/OGSR-Engine. Это явно проблема движка.

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

naxac.gif

Ссылка на комментарий
Поделиться на других сайтах

@андрей дронав , очередная ПЫС-кая каша с гулагами:

gulag_esc.script:

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

 

Состояние гулага:

if type == "esc_lager" then
...
            if has_alife_info("escape_lager_help") and not has_alife_info("escape_lager_killers_die") then
                return 2 -- оборона лагеря
...
end

      

 Работы Шустрого:

...
        table.insert(sj, t)
        t = { section = "logic@esc_lager_kamp1", --* а мы в кампе посидим
...
            prior = 16, state = {2}, --* оборона лагеря
...
        }
        table.insert(sj, t)

 

Ой, мама, да там ещё и Петруха:

        t = { section = "logic@esc_lager_defend9",
            predicate = function(obj_info)
                            return obj_info.name == "esc_novice_attacker1"
                        end
        }

 

И с Толиком, небось, что-то подробное.

Изменено пользователем Купер
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

AMK-Team.ru

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