Перейти к содержанию

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

 

010cdbd72f.png

Тема посвящена моддингу на платформе Тень Чернобыля.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.

Поделиться сообщением


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

Paracetamol bind_stalker.script как обычно, но коллбеки сначала надо в него прописать, с движком не идет готовый файл. Можно посмотреть для примера в моде ogsr mod, как прописать и что передается аргументами (но не надо переносить этот файл себе, только как пример)


В беге за рассветом приближаешь свой закат

Поделиться сообщением


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

Подскажите, почему так?

При использовании движка OGSR 2.1.359 консоль и лог забиты такими строками:

Спойлер

[01.01.22 22:44:49.709] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_abakan_hud]
[01.01.22 22:44:49.725] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_abakan_hud]
[01.01.22 22:44:49.725] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_lr300_hud]
[01.01.22 22:44:49.877] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_ak74_hud]
[01.01.22 22:44:50.904] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_svu_hud]
[01.01.22 22:45:03.105] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:03.459] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:04.384] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:05.148] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:06.156] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:06.510] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:06.990] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:07.504] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:09.786] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:10.664] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:10.857] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:11.689] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:12.251] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:13.066] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:53.893] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:56.761] ~~[CHudItem::PlayHUDMotion] Motions [anm_idle_sprint, anm_idle, anim_idle_sprint, anim_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:57.736] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:58.392] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:45:59.544] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:46:00.942] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:46:01.869] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:46:11.021] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:46:11.982] ~~[CHudItem::PlayHUDMotion] Motions [anm_idle_sprint, anm_idle, anim_idle_sprint, anim_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:46:13.597] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:46:14.656] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:46:15.187] ~~[CHudItem::PlayHUDMotion] Motions [anm_idle_sprint, anm_idle, anim_idle_sprint, anim_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:46:18.782] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]
[01.01.22 22:46:18.958] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_svu_hud]
[01.01.22 22:46:20.975] ~~[CHudItem::PlayHUDMotion] Motions [anim_idle, anm_idle, ] not found for [wpn_binoc_hud]

На 2.1.320 такого нет. Оружие тоже самое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
26 минут назад, Sikorskyi сказал:

Подскажите, почему так?

У этих HUD-моделях оружия отсутствуют указанные анимации.

Например: у модели wpn_abakan_hud, отсутствуют анимации anim_idle, anm_idle.

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


EaRLNb6.gif
AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
22 минуты назад, WolfHeart сказал:

У этих HUD-моделях оружия отсутствуют указанные анимации.

Например: у модели wpn_abakan_hud, отсутствуют анимации anim_idle, anm_idle.

Если бы в модели нехватало анимаций,  происходил бы вылет, однако оружие работает нормально. 

Поделиться сообщением


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

Sikorskyi Не обращай внимание, это дебаг анимаций.

Поделиться сообщением


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

I am dead убрать нельзя какой нибудь командой?

Поделиться сообщением


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

Sikorskyi Нет, скорее всего

Поделиться сообщением


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

Всем добра! С Новым Годом!

Знатоки!

Нужна помощь, а то я задолбался уже в край. т_т

Такой вопросец: как сделать в ТЧ так, чтобы с каждого НПС падала бронька сходная с его визуалом?

Спойлер

Чего добился я на сегодня (колупаюсь с прошлого года ^_^):

  • Хорошо знаю файлы "death_items_by_communities.ltx", "death_items_by_levels.ltx", "death_items_count.ltx", "death_manager.script", "character_desc_escape.xml".
  • Сначала пытался заспавнить при создании НПС им в инвентарь outfit, однако, спавнится таким образом только wpn да ammo .
  • Пошел другим путём, через death_items. Сначала вроде всё неплохо, outfit падает с соответствующей фракции, однако, нет дифференцировки между спецназером и рядовым или сталкером-новичком и тёртым сталкером.
  • Продолжил колупаться в коде, пытался привязаться к понятию class у НПС которое можно посмотреть в "npc_profile.xml", всё лучше, чем каждому по id выписывать outfit'ы, но здесь вляпался с разгону в жука и косяк наблюдался вот здесь "death_manager.script".

Под это дело у меня STALKER_Shadow_of_Chernobyl_1.0006_(2.0.0.5) без модов, окромя моего колупания кривыми лапками в файлах.

В алл.спавн не посылайте, я там уже блуждал, заблудился, хватило.

Честно говоря, уже просто устал ковыряться сам, хочется всё же хоть чу-чуть, а побегать по Зоне покуда выходные))

И да, код пока не кидаю, ибо кодил много, долго, со вкусом, и, скорее всего - дичь.

Поделиться сообщением


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

Alolenr есть мод smart marauder, там вроде по рангу выпадает, но для примера пойдет, можно будет поменять на другое условие


В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 минуты назад, vader_33 сказал:

Alolenr есть мод smart marauder, там вроде по рангу выпадает, но для примера пойдет, можно будет поменять на другое условие

а ссылку можно?

Так-то я его видел, но не уверен, что у меня получится с ранга перевести на класс...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 минуты назад, Alolenr сказал:

а ссылку можно?

первая же ссылка в гугле https://ogsmod.ru/smart-marauder-mod-v1-5/


В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
5 минут назад, vader_33 сказал:

первая же ссылка в гугле https://ogsmod.ru/smart-marauder-mod-v1-5/

благодарю!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
32 минуты назад, Alolenr сказал:

И да, код пока не кидаю, ибо кодил много, долго, со вкусом, и, скорее всего - дичь.

Тут перво- наперво нужно создать таблицу соответствия визуала бронекостюму.

Вот так я это делал в ЗП.

Спойлер

local visual_of_outfit = {
                         ["novice_outfit"]            = "actors\\stalker_neutral\\stalker_neutral_1",
                         ["stalker_outfit"]         = "actors\\stalker_neutral\\stalker_neutral_2",
                         ["svoboda_light_outfit"]    = "actors\\stalker_freedom\\stalker_freedom_2",
                         ["dolg_outfit"]             = "actors\\stalker_dolg\\stalker_dolg_2",
                         ["scientific_outfit"]         = "actors\\stalker_neutral\\stalker_neutral_nauchniy",
                         ["military_outfit"]         = "actors\\stalker_soldier\\stalker_soldier_2",
                         ["cs_heavy_outfit"]         = "actors\\stalker_neutral\\stalker_neutral_3",
                         ["svoboda_heavy_outfit"]    = "actors\\stalker_freedom\\stalker_freedom_3",
                         ["specops_outfit"]         = "actors\\stalker_soldier\\stalker_soldier_3",
                         ["dolg_heavy_outfit"]         = "actors\\stalker_dolg\\stalker_dolg_3",
                         ["exo_outfit"]             = "actors\\stalker_neutral\\stalker_neutral_4"
                         }

Затем (  в ЗП есть готовый движковый метод get_visual_name(), а в ТЧ его нет  ) раз у вас ТЧ, то нужно прочитать нет пакет НПС и получить оттуда его visual_name

Дальше в соответствие с таблицей проспавнить в рюкзак НПС бронекостюм.

Все это делается в файле death_manager.script

Но если вы не скриптер, то это вам будет очень сложно реализовать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 минуты назад, makdm сказал:

Тут перво- наперво нужно создать таблицу соответствия визуала бронекостюму.

Вот так я это делал в ЗП.

  Таблица (Скрыть контент)

local visual_of_outfit = {
                         ["novice_outfit"]            = "actors\\stalker_neutral\\stalker_neutral_1",
                         ["stalker_outfit"]         = "actors\\stalker_neutral\\stalker_neutral_2",
                         ["svoboda_light_outfit"]    = "actors\\stalker_freedom\\stalker_freedom_2",
                         ["dolg_outfit"]             = "actors\\stalker_dolg\\stalker_dolg_2",
                         ["scientific_outfit"]         = "actors\\stalker_neutral\\stalker_neutral_nauchniy",
                         ["military_outfit"]         = "actors\\stalker_soldier\\stalker_soldier_2",
                         ["cs_heavy_outfit"]         = "actors\\stalker_neutral\\stalker_neutral_3",
                         ["svoboda_heavy_outfit"]    = "actors\\stalker_freedom\\stalker_freedom_3",
                         ["specops_outfit"]         = "actors\\stalker_soldier\\stalker_soldier_3",
                         ["dolg_heavy_outfit"]         = "actors\\stalker_dolg\\stalker_dolg_3",
                         ["exo_outfit"]             = "actors\\stalker_neutral\\stalker_neutral_4"
                         }

 

 

Круто! Не, я до такого ещё не дошел))

У меня всё чуток сложнее/проще:

Спойлер

В "death_items_by_communities.ltx" понадобавлял (кусочек, а то там много):

"[esc_wolf]:stalker
;Броники
stalker_outfit = 1

[esc_fanat]:stalker
;Броники
stalker_outfit = 1

[esc_fox]:stalker
;Броники
stalker_outfit = 1

[esc_tutorial_wounded]:stalker
;Броники
novice_outfit = 1

[esc_shustryi]:stalker
;Броники
novice_outfit = 1 "

Потом в "death_manager.script" изменил "local community_list = {}" он крашился, поэтому создал "local class_list = {}" куда вписал все классы с "esc_..", это помогло, невылетало, но теперь спавна брони не было, пришлось колупаться в "function drop_manager:__init(npc)", однако, я подзавис на моменте того, как сделать из "local spawn_items = item_by_community[self.npc:character_community()] " то, что мне надо, ибо если менять на local spawn_items = item_by_class[self.npc:id()]   то лист почему-то пуст, и проявляется жук...

4 минуты назад, makdm сказал:

Затем (  в ЗП есть готовый движковый метод get_visual_name(), а в ТЧ его нет  ) раз у вас ТЧ, то нужно прочитать нет пакет НПС и получить оттуда его visual_name

Дальше в соответствие с таблицей проспавнить в рюкзак НПС бронекостюм.

Все это делается в файле death_manager.script

Но если вы не скриптер, то это вам будет очень сложно реализовать.

 

"Нет пакет НПС" это "npc_profile"?

Не то что б я не скриптер, но лапки - очумелые)))


Дополнено 7 минуты спустя

makdm А подскажите, пожалуйста, скрипт на определение ранга у нпс вот такой да - "npc_rank=ranks.get_obj_rank_name(npc)" ?

А для определения класса будет вот так тогда - "npc_class=class.get_obj_class_name(npc)" ?


Дополнено 24 минуты спустя

makdm А подскажите, пожалуйста, скрипт на определение ранга у нпс вот такой да - "npc_rank=ranks.get_obj_rank_name(npc)" ?

А для определения класса будет вот так тогда - "npc_class=class.get_obj_class_name(npc)" ?

 

Я НАШЕЛ!!! УРА!!!

Суть в чём, есть такой документик, "death_generic.ltx", а в нём есть раздел [keep_items] и короче прописать туда всю бронь и она не будет удаляться по дефолту!

Спойлер

Вот так теперь выглядит этот раздел!

[keep_items]
af_blood_tutorial        = true
esc_wounded_flash        = true
quest_case_02            = true
dar_document4            = true
kruglov_flash            = true
lab_x16_documents        = true
good_psy_helmet            = true
bad_psy_helmet            = true
decoder                    = true
dynamite                = true
quest_case_01            = true
hunters_toz                = true
bar_ecolog_flash        = true
bar_tiran_pda            = true
bar_lucky_pda            = true
outfit_stalker_m1        = true
wpn_fort_m1                = true
outfit_specnaz_m1        = true
wpn_lr300_m1            = true
crazy_flash                = true
novice_outfit                = true
bandit_outfit                = true
killer_outfit                = true
monolit_outfit                = true
specops_outfit                = true
military_outfit                = true
stalker_outfit                = true
scientific_outfit                = true
exo_outfit                = true
svoboda_light_outfit            = true
svoboda_heavy_outfit            = true
dolg_outfit                = true
dolg_scientific_outfit
ecolog_outfit                = true
protection_outfit                = true

Правда я ещё не разобрался, какой из документов теперь работает и спавнит на НПС бронь, то ли созданный мной "death_items_by_class.ltx", то ли отредаченный "death_by_community"... НО главное - РАБОТАЕТ!!! УРААА!! Пойду, просплюсь, а то с прошлого года на пару часиков только вырубался...

Поделиться сообщением


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

Где в gamedata находиться файлы  отвечающие за аномалии и как их редактировать?

Поделиться сообщением


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

solix gamedata\config\misc 

редактировать молча...

ну правда, редактировать что?


76561198152189716.png

Поделиться сообщением


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

ian98  спасибо что ответил.  gamedata\config\misc  - вроде отвечает за торговлю. Я пытался удалить аномалии через скрипт амк  но оставался крутящийся дым вместо той аномалии что была.

Поделиться сообщением


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

solix gamedata\config\misc конфиги начинающиеся с zone

Если тебе нужно удалить их, то лучше через спавн это сделать, наверное...


76561198152189716.png

Поделиться сообщением


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

Я понял использовать SDK.

Поделиться сообщением


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

Есть вопрос к людям, умеющим в сфере скриптов больше, чем остальные.
Появилась идея связать скрипт главного меню и скрипта загрузки сохранения таким образом, что бекграунд видео менялось бы в зависимости от того, на какой локации был сделан quicksave.

Алгоритм работы таков:
Из скрипта меню делаем проверку, на какой локации было сохранение.
Если сохранения нет или нельзя получить оттуда локацию, то кастуем стандартное бекграунд видео.
Если локация и сохранение есть, то действуем по условию 
if <<локация>>
local vid_file ="ui\\ui_vid_back_<<локация>>_0" .. math.random(1,4)

Основывалось бы это на рандоме видео в меню из 2571, которое я уже адаптировал в игру  - https://disk.yandex.ru/d/23SwQPUG0l6aSA

Я вообще никак не умею в программирование, из-за чего пришел сюда за помощью.


Дополнено 8 минуты спустя
11 часов назад, solix сказал:

Где в gamedata находиться файлы  отвечающие за аномалии и как их редактировать?

config\misc\zone_<<аномалия>>

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

Поделиться сообщением


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

Deathman насчет видео без понятия, не добавлял никогда, насчет картинок, например, добавить в main_menu:InitControls() что-то типа этого (может сойдет и для видео)

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

Спойлер

всякие "bkg_escape_1" (без разницы какое название, главное, чтобы локации были прописаны правильно) прописать в ui_mm_main.xml.  Родной xml:InitStatic("background", self) оставить, дефолтом будет


local bkg_tbl = {
			["l01_escape"] = {
						"bkg_escape_1",
						"bkg_escape_2",
						"bkg_escape_3",
						"bkg_escape_4",
					},
			["l02_garbage"] = {
						"bkg_garbage_1",
						"bkg_garbage_2",
					}
		}


local fs = getFS()
local flist = fs:file_list_open_ex("$game_saves$",bit_or(bit_or(FS.FS_ListFiles,FS.FS_RootOnly), FS.FS_ClampExt),"*.sav")
local f_cnt = flist:Size()
flist:Sort(FS.FS_sort_by_modif_down)
	
	if f_cnt > 0 then
		for it=0, f_cnt-1 do
			local file = flist:GetAt(it)			
			local file_name = file:NameFull()
				if string.find(file_name,"quicksave") then
					local sg = CSavedGameWrapper(file_name)
					local lvl = sg:level_name()
						if bkg_tbl[lvl] then
							local rnd = math.random(#bkg_tbl[lvl])
							local new_bkg = bkg_tbl[lvl][rnd]
							xml:InitStatic(new_bkg, self)
        							break
						end
				end	
		end
	end

 

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

Спойлер

в ui_mm_main.xml картинки прописывать в таком формате: bkg_уровень_номер. например, "bkg_l01_escape_1", "bkg_l01_escape_2"... "bkg_l02_garbage_1"... Изменить количество можно в строчке  local rnd = math.random(1,4)


local fs = getFS()
local flist = fs:file_list_open_ex("$game_saves$",bit_or(bit_or(FS.FS_ListFiles,FS.FS_RootOnly), FS.FS_ClampExt),"*.sav")
local f_cnt = flist:Size()
flist:Sort(FS.FS_sort_by_modif_down)
	
	if f_cnt > 0 then
		for it=0, f_cnt-1 do
			local file = flist:GetAt(it)			
			local file_name = file:NameFull()
				if string.find(file_name,"quicksave") then
					local sg = CSavedGameWrapper(file_name)
					local lvl = sg:level_name()
					local rnd = math.random(1,4)
					local new_bkg = "bkg_"..lvl.."_"..rnd
					xml:InitStatic(new_bkg, self)
						break
				end	
		end
	end

 


Дополнено 4 минуты спустя
22 часа назад, solix сказал:

но оставался крутящийся дым вместо той аномалии что была

может еще партикл скриптом к ней добавлялся. Если нет и если эта аномалия в онлайне - пробовать перед удалением сначала отключить ее obj:disable_anomaly() , а потом удалять (отключать клиентский объект, удалять серверный)

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

В беге за рассветом приближаешь свой закат

Поделиться сообщением


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

Есть кто-то, кто адекватно реализовал детекторы артефактов из ЧН/ЗП/ЛАДС в ТЧ на движке ОГСР?
А то на АМК-форуме один из кадров Кродина задвинул, что надо конфиги вписать из ЗП.
Возможно троллинга ради, чем они и занимались впринципе, пока я их не начал поносить ранее за их грешки в мою сторону.
Но путём эксперемента было выявлено, что предложенный вариантов не работает, либо работает с вылетом по понятным причинам.
У кого есть нормально рабочие конфиги по работе детекторов с пояснением по тому как заставить работать тот же Сварог юзая шейдер ОГСРки?
А то кучка зумеров на меня держит не то что зло, а у них нет желания относится нормально к моему существованию.
Ведут себя как коммунисты и леваки, которые для Оскара выбирают фильмы и ноют в твиттере...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, vader_33 сказал:

Deathman насчет видео без понятия, не добавлял никогда, насчет картинок, например, добавить в main_menu:InitControls() что-то типа этого (может сойдет и для видео)

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

  Скрыть контент

всякие "bkg_escape_1" (без разницы какое название, главное, чтобы локации были прописаны правильно) прописать в ui_mm_main.xml.  Родной xml:InitStatic("background", self) оставить, дефолтом будет



local bkg_tbl = {
			["l01_escape"] = {
						"bkg_escape_1",
						"bkg_escape_2",
						"bkg_escape_3",
						"bkg_escape_4",
					},
			["l02_garbage"] = {
						"bkg_garbage_1",
						"bkg_garbage_2",
					}
		}


local fs = getFS()
local flist = fs:file_list_open_ex("$game_saves$",bit_or(bit_or(FS.FS_ListFiles,FS.FS_RootOnly), FS.FS_ClampExt),"*.sav")
local f_cnt = flist:Size()
flist:Sort(FS.FS_sort_by_modif_down)
	
	if f_cnt > 0 then
		for it=0, f_cnt-1 do
			local file = flist:GetAt(it)			
			local file_name = file:NameFull()
				if string.find(file_name,"quicksave") then
					local sg = CSavedGameWrapper(file_name)
					local lvl = sg:level_name()
						if bkg_tbl[lvl] then
							local rnd = math.random(#bkg_tbl[lvl])
							local new_bkg = bkg_tbl[lvl][rnd]
							xml:InitStatic(new_bkg, self)
        							break
						end
				end	
		end
	end

 

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

  Скрыть контент

в ui_mm_main.xml картинки прописывать в таком формате: bkg_уровень_номер. например, "bkg_l01_escape_1", "bkg_l01_escape_2"... "bkg_l02_garbage_1"... Изменить количество можно в строчке  local rnd = math.random(1,4)



local fs = getFS()
local flist = fs:file_list_open_ex("$game_saves$",bit_or(bit_or(FS.FS_ListFiles,FS.FS_RootOnly), FS.FS_ClampExt),"*.sav")
local f_cnt = flist:Size()
flist:Sort(FS.FS_sort_by_modif_down)
	
	if f_cnt > 0 then
		for it=0, f_cnt-1 do
			local file = flist:GetAt(it)			
			local file_name = file:NameFull()
				if string.find(file_name,"quicksave") then
					local sg = CSavedGameWrapper(file_name)
					local lvl = sg:level_name()
					local rnd = math.random(1,4)
					local new_bkg = "bkg_"..lvl.."_"..rnd
					xml:InitStatic(new_bkg, self)
						break
				end	
		end
	end

 


Дополнено 4 минуты спустя

может еще партикл скриптом к ней добавлялся. Если нет и если эта аномалия в онлайне - пробовать перед удалением сначала отключить ее obj:disable_anomaly() , а потом удалять (отключать клиентский объект, удалять серверный)

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

Поделиться сообщением


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

Deathman так делать там больше нечего, просто вставить готовый код в функцию и прописать в ui_mm_main.xml текстуры


Дополнено 4 минуты спустя

Yarkov Desorec видел на стримах беты radiophobia 3, она на движке огср, но не знаю, огср-овские детекторы или своя реализация. Сама бета и актуальные патчи в дискорде разработчик выкладывает (на moddb есть ссылка на дискорд)


Дополнено 25 минуты спустя

Deathman вот пример для оригинала, для кордона и свалки

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

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

В беге за рассветом приближаешь свой закат

Поделиться сообщением


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

vader_33 спасибо. Буду с ними на инглише этот вопрос решать тогда уж.
Бета найдена!

Изменено пользователем Yarkov Desorec
Нашёл ссылку на бету на вашем форуме

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу