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

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


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

@RSFSR, да, проверка на нахождение в рестрикторе и вне (пару лет уже не трогал сталкера, но на память все правильно), все будет переключаться автоматически.

 

45 минут назад, RSFSR сказал:

сильно осложнит дело?

Мне кажется подобную проверку просто надо засунуть в функцию смены погоды, чтобы сначала проверялся тип рендера, а в зависимости от него уже задавалась погода р1 или р2.

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

@RSFSR,  я бы лучше сделал в рестрикторе выдачу инфопоршня, а в менеджере погоды на апдейте - проверку этого поршня, и в зависимости от поршня/рендера и т.д., включение соответствующей погоды. Это, в том числе, нужно для того, чтобы погода не сбрасывалась обратно на дефолтную при переключении секций по времени, если актёр в это время всё ещё в рестрикторе.

Изменено пользователем naxac
  • Нравится 1

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

naxac.gif

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

@naxac, дополню : и не забыть забрать инфопоршень, при выходе из рестриктора. 

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

Столкнулся с такой проблемой:
Допустим, прописываю в конфиг персонажа какой либо предмет, условно "Документы". После смерти персонажа эти документы у него в трупе, но если перезагрузить сохранение они исчезают.
Что надо править что бы после перезагрузки сохранения предмет оставался в трупе?

Изменено пользователем Robbie's Mods

bar.jpg

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

@Robbie's Mods Базовая текстура – [textures\ui\ui_load.dds]. Создать там же текстовый файл [ui_load.seq], в первой строке указать частоту смены кадров, в последущих ссылки:

5

ui\ui_load_1

ui\ui_load_2

ui\ui_load_3

 

Даже при минимальном количестве модов бут-скрин большую часть времени висит на одном кадре, но стартует каждый раз со случайного кадра – может, этого будет достаточно.

  • Нравится 1

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

Шпаргалка

Ссылка на комментарий
47 минут назад, Norman Eisenherz сказал:

бут-скрин большую часть времени висит на одном кадре

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

А когда все загрузилось, обновляется он вполне с тем FPS, которое и в игре будет.

И кроме того, число 5 тут даст частоту смены - 5 кадров в секунду. Для смены кадра реже, чем раз в секунду, требуется реализовывать чтение float числа меньше единицы из seq-файла, по умолчанию движок ТЧ такое не поддерживает. 

18 часов назад, Robbie's Mods сказал:

Как это было сделано в ОП-2.1

Почему бы там и не посмотреть?

Скорее всего, скриптовый интерфейс с выбором текстуры скриптом же.

xml:ParseFile("ui_mm_main.xml")
	local bg = xml:InitStatic("background", self)
	local bgname = string.format("ui_menu_backgraund_%i", math.random(1,8))
	bg:InitTexture(bgname)

Что-то вроде такого. Правда, это не экран загрузки, а главное меню, и не ОП, а моё. Но принцип тот же, вероятно.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

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

Это когда игра уже загрузилась. А речь про скрин, который появляется при нажатии "новая игра / загрузить" и висит, пока не появится картинка соответствующая локации.

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

@Robbie's Mods

Способ 1)

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


local Crank = db.actor:character_rank()

	if Crank < 300 then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank >= 300 and Crank < 600 then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank >= 600 and Crank < 900 then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank >= 900 then
		db.actor:give_info_portion("Выдача_инфопоршня")
	end

 

 

Способ 2)

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


local Crank = ranks.get_obj_rank_name(db.actor)

	if Crank == "novice" then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank == "experienced" then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank == "veteran" then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank == "master" then
		db.actor:give_info_portion("Выдача_инфопоршня")
	end

 

 

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

Здрасьте.

 

Теория:

1. Конфиги можно формировать ссылками на несколько секций: [new_sect]: base_1, base_2, base_3.

2. При ссылках на существующие секции новый файл достаточно прописать в [config\system.ltx] после базовых файлов, чтобы секции были прочитаны в правильном порядке.

 

Практика:

Создал общую секцию

[q_item]
quest_item            = true

Создал файл с набором секций вида [novice_outfit_q]:novice_outfit, q_item и указал его в [system.ltx] после #include "misc\outfit.ltx" и #include "misc\unique_items.ltx".

Проблема:

• если секция [q_item] указана в любом файле, который загружается до дополнительного файла, броня успешно создается с новой секцией;

• если секция [q_item] указана в самом дополнительном файле, в первых его строках, то уже на старте случается вылет с ошибкой "невозможно открыть секцию".

Такое впечатление, что дополнительный файл читается не сверху вниз, а в каком-то случайном порядке, и игра пытается, образно говоря, возвести стену до фундамента, хотя фундамент указан в списке первым.

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

Шпаргалка

Ссылка на комментарий
только что, Norman Eisenherz сказал:

дополнительный файл читается не сверху вниз, а в каком-то случайном порядке

1. Что такое "дополнительный файл" и чем он отличается от просто файла.

2. Если бы было так, многочисленные вариации всяческого оружия, которые пишут в конфиг родителя в конце и наследуют от него же, приводили бы к вылетам. А этого не происходит.

  • Согласен 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
3 часа назад, Norman Eisenherz сказал:

2. При ссылках на существующие секции новый файл достаточно прописать в [config\system.ltx] после базовых файлов, чтобы секции были прочитаны в правильном порядке.

Можно делать инклуды в любом файле, не только в system.ltx (environment.ltx, weapons.ltx) , пример: в outfit.ltx - в последней строке добавляешь #include "мой_файл.ltx", в котором уже будут новые секции.

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

@Norman Eisenherz, а если q_item указать сразу после двоеточия, а другую секцию - потом?

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

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

naxac.gif

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

Схема такая:

Spoiler

[config\misc\outfit_q.ltx]
  [q_item]
  quest_item				= true

[config\misc\outfit_quest.ltx]
  [novice_outfit_q]:novice_outfit, q_item
  [outfit_novice_m1_q]:outfit_novice_m1, q_item
  [bandit_outfit_q]:bandit_outfit, q_item
  …

[config\system.ltx]
  …
  #include "misc\outfit.ltx"			-- базовая броня
  …
  #include "misc\unique_items.ltx"		-- моды
  …
  #include "misc\outfit_q.ltx"			-- секция [q_item]
  #include "misc\outfit_quest.ltx"		-- "квестовая" броня (ссылки на базовую броню, моды и q_item)

 

Ссылки читаются правильно, только если прогрузить их все через отдельные файлы (хоть новые, хоть старые), стоящие выше по списку в [system.ltx], в противном случае вылет вне зависимости от порядка ссылочных секций.

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

Шпаргалка

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

@Norman Eisenherz, как уже и отвечали выше - всё должно работать.

 

2 часа назад, Norman Eisenherz сказал:

противном случае вылет вне зависимости от порядка ссылочных секций

Выложите файл вызывающий вылет, посмотрим.

  • Согласен 1

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

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

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

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

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

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

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

Войти

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

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

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