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

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

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

Не хватает сала в черепе.

В task_manager.script добавлена множественность целей.

Т.е. по аналогии с существующими параметрами добавлено количество необходимых для выполнения объектов, условно:

        if self.task_ini:line_exist(id, "target_count") then
            curr_task_info.target_count = self.task_ini:r_u32(id, "target_count")
        end

 

Как добавить считывание параметра  в диалоги и описание задания?

 

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

 

Screenshot-1.jpg

 

Screenshot.png

 

 

 

Где бы подсмотреть?

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

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

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

@Domestoz , там база - старый, добрый XRE c минимальными изменениями в движке на самом деле, собирается одним батником после настройки и очень просто настраивается. Не факт, что для модуля апгрейда используется что-то из его функционала. Главное, аккуратно перетащить добавленную скриптовую "обвязку". Вылетает  GetUpgrade?

-- вот эта функция что использует?
function GetUpgrade(sSection)
	return cfg_read(system_ini(), "str", sSection, "upg", "nil")
end

->

lwc_utils.script:

-- Функция чтения из конфига значений(string, float, boolean)
_G.cfg_read = function(ini, mode, section, line, val)
    ini = ini or system_ini()
    if is_sect_exist(section, ini) and is_line_exist(section, line, ini) then
        if mode == "str" then
            return tostring(ini:r_string(section, line) )
        elseif mode == "num" then
            return tonumber(ini:r_float(section, line) )
        elseif mode == "bool" then
            return ini:r_bool(section, line)
        end
    end
    return val
end

Добавленная очередная оптимизация "потому что мы сделаем так".

 

И т.д., весело насвистывая :biggrin:

 

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

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

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

@Stalkersof , alife.ltx:

[alife]

...
    autosave_interval = ...

 

Не оно?

Изменено пользователем Купер
  • Спасибо 1
Ссылка на комментарий
12 минут назад, Купер сказал:

autosave_interval =

А оно работает? У меня что-то не получалось... Или где-то надо подкрутить, что б заработало?

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

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

@mole venomous , да, откровенно говоря, не помню :biggrin:. Быстрее ingame попробовать, имхо, чем в исходниках лазить. Поставить меньший интервал и посмотреть. Время, по-моему, реальное.

---

Как ни странно :biggrin:, но да. По крайней мере, на "оригинальных" движках.

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

@Stalkersof misc\zone_mosquitobald.ltx

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

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

 

13 часов назад, Купер сказал:

Как ни странно :biggrin:, но да

Что "да"? В оригинале работает?

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

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

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

@mole venomous , в оригинале оно, по идее, здесь: autosave_manager.cpp. В OGSR вполне могли "оторвать" за ненадобностью. Т.е. оно даже банально поиском по файлам в сырцах не ищется. Но лучше, конечно, у разработчиков уточнить.

Ссылка на комментарий
3 минуты назад, Купер сказал:

@mole venomous  В OGSR вполне могли "оторвать" за ненадобностью. 

Я на огср автосохранение есть а вот точно не знаю если редактировать время сработает или нет. Скоро проверю.

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

@Stalkersof , не буду спорить, конечно. Проверял на XRE. Это уже надо непосредственно у разработчиков консультироваться. А быстрее всего самому в игре проверить :biggrin:.

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

Вот эти пар-мы:

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

    autosave_interval            = 01:05:00
    delay_autosave_interval        = 00:00:30

Ничего, на сколько помню, не менял. То есть так и должно быть в оригинале. Недавно тестировал сборку на ОГСР (2.1.320), с НИ и очень долгое время на Кордоне, т.е. без переходов. Никаких автосейвов создано не было...

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

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

Всех приветствую. В общем, я вновь ищу помощь. Мне нужно убрать затемнение экрана у Сидоровича в начале игры (ТЧ). Возможно я очень плохо искал, но я реально не нашёл, как это сделать. Я перерыл кучу файлов, а в Level Editor'е нашёл только зону, где у игрока оружие убирается. В общем, что нужно сделать, чтобы убрать этот эффект затемнения экрана? (Заранее извиняюсь, если не в тот раздел задал свой вопрос)

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

@Фёдор2016re2 данный эффект запускается из логики рестриктора trader_zone_task.

Ну, я вроде как его нашёл, но он у меня не выделяется в Level Editor'е. 
Вот скрин.
2.png

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

@Фёдор2016re2 , старым дедовским способом распакуй all.spawn, затем при помощи поиска найди строки:

[logic]
active = sr_idle
[sr_idle]
on_actor_inside = {-esc_kill_gunslinger} nil %+esc_kill_gunslinger =run_postprocess(agr_u_fade)%

Отсюда и вызывается эффект потемнения. Чтобы избавиться от эффекта необходимо удалить "=run_postprocess(agr_u_fade)" и запаковать all.spawn обратно.

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

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

 

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

Навеяло вертолётами из Солянки.

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

логика вертолёта:

[heli_move@idle]
path_move = esc_desant_heli_2_idle_move
engine_sound = false
combat_safe_altitude = 85
invulnerable = true
immortal = true
on_info = {+esc_blocpost_pust} heli_move@fly_sound %+esc_lager_alarm%

 

логика солдат на блокпосте, для "включения" вертушки:

[death@soldier_arhara]
on_info = {=killed_by_actor} %+esc_blocpost_pust%


[logic@esc_blockpost_patrol1]
active = patrol@esc_blokpost_day_patrol_commander
on_death = death@soldier_arhara

 

сама функция в xr_conditions.script

-- проверка, что убийца нпс - актер /amk_embankment/
function killed_by_actor(actor,npc)
    local tab = actor and npc and db.storage[npc:id()].death
    if tab and tab.killer then 
        return tab.killer == actor:id()
    end
    return false
end

 

Почему проверка на именно actora в качестве убивца {=killed_by_actor} не срабатывает? Или просто нам что-то не договаривают?

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

Собственно, в tab что будет? Как я понимаю, то результат логической операции and, т.е. булево значение.

А последующая проверка

if tab and tab.killer then

подразумевает, что tab - видимо таблица? Похоже очепятка?

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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