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

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


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

@h0N0r @ZeeK то есть условно поставить надо такие точки возле смарта указаного в targets?

Возможно вообще в targets ничего не писать?

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

@imcrazyhoudini 

Нет, все смарт_террейны записаны в алл.спавн в файлы локаций, например alife_l07_yantar

В описании смарт_террейна есть раздел

[smart_terrain]
targets = yan_smart_terrain_4_2, yan_smart_terrain_5_3

Значит из смарт_террейна yan_smart_terrain_6_2 может отряд уйти в yan_smart_terrain_4_2, yan_smart_terrain_5_3

Вам необходимо сделать по аналогии со своими террейнами.

Не соответствует. N6260

@ZeeK у меня к примеру смарт террейны просто для заселения, я могу в каждый смарт просто указать один смарт другой, а после вэй поинты наставить рядом с ним?

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

@imcrazyhoudini Вы уже определитесь как хотите, чтобы НПС двигались по карте: с помощью симуляции или по скриптам и логике (вей поинты).

Для движения отрядов через симуляцию между смарт_террейнами не нужны вей поинты.

 

Опишите подробно, что Вы хотите реализовать, а то сейчас не очень понятно

 

Не соответствует. N6260

@ZeeK вот возьмём обычный лагерь монолитовцев.
Мне нужно просто чтобы они были в этом лагере и не думали вообще ни на кого нападать.
Но так как есть поле targets - я пишу туда смарт, хотя повторюсь мне в целом не нужно чтобы монолитовцы на кого либо нападали.

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

@imcrazyhoudini чтобы отряд никуда не уходил, то пропишите в его описании в  squad_descr_название_локации следующее:

target_smart = название_смарт_террейна.

Отряд займет точку и никуда не уйдет до своей смерти.

 

Можно писать target_smart = название_смарт_террейна:название_смарт_террейна и тогда отряд будет двигаться между зацикленными смарт террейнами туда-сюда

Не соответствует. N6260

4 часа назад, ZeeK сказал:

target_smart = название_смарт_террейна.

Свой же вписать?
В ltx имеет приоритет над названием в custom_data?

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

30.05.2025 в 12:47, imcrazyhoudini сказал:

В ltx имеет приоритет над названием в custom_data?

это разные target_smarts:

в squad_descr_название_локации он указывает КУДА идти конкретному отряду
в алл.спавн в alife_название_локации он указывает откуда можно придти в конкретный смарт_террейн и куда из него можно уйти.

 

Соответственно, если в squad_descr_название_локации вы указываете отряду НПС смарт, куда нужно придти, то они смогут туда добраться, если только есть цепочка смарт_террейнов, которые могут довести до него. Иначе будет вылет.

Если же отряда появляется сразу на этой точке, то он никуда не пойдет, но и к нему никто никогда не придет из НПС, если в alife_название_локации в описании смарт_террейна нет связей с иными смарт_террейнами.

Не соответствует. N6260

@Lieutenant Novikov Все правки сделал как написано в этом сообщении о губной гармошке для Чистого Неба. Мелодии обработал, по битрейту, моно, частота правильная, громкость и расстояние выставил как у мелодий гитар. Мелодии брал из Зов Припяти, они рабочие. В итоге - НПС предупреждают о начале "музыкальной паузы", вынимают гармошки, играют, но нет звуков. Гитары работают. В чём может быть причина?

1.jpg

 

UPD:

@Kirgudu  https://vkvideo.ru/video-230118273_456239023  :)

Спасибо.

Изменено пользователем Челдон
07.06.2025 в 19:49, Челдон сказал:

В чём может быть причина?

В упомянутой инструкции не хватает одного маленького, но важного пункта.

5. Открываем скрипт по адресу "gamedata\scripts\state_mgr_animation_list.script" на редактирование. Находим анимацию "harmonica" (в оригинале это строки 437-452) и для элемента "into_music" меняем значение "harmonica" на "play_harmonica" (используем ровно то самое имя, которое дали добавленной в script_sound_music_and_stories.ltx секции, содержащей описание звуковых файлов).

И всё заработает.

Скрытый текст
harmonica    = {    prop    = { maxidle = 3,
                                    sumidle = 3,
                                    rnd = 80 },
                        into    = { [0]    = {"sit_2_harmonica_1_0", {a="harmonica_a"}, "sit_2_harmonica_1_1"}},
                        out        = { [0]    = {"harmonica_1_sit_2_0", {d="harmonica_a"}, "harmonica_1_sit_2_1"} },
                        idle    = { [0]    = "harmonica_1" },
                        rnd        = { [0]    = {    "harmonica_2",
                                            "harmonica_3" } },
                        subanim = { [1] = {    prop = { maxidle = 3,
                                                     sumidle = 3,
                                                     rnd = 0 },
                                            into_music = "play_harmonica", --/ вот здесь
                                            into    = nil,
                                            out        = nil,
                                            idle    = { [0]    = "harmonica_0" },                                            
                                            rnd        = nil }}},

Анимация гитары чуть повыше содержит правильное наименование секции звуковых файлов, поэтому с ней всё в порядке.

 

Модераторам: прошу добавить этот пятый пункт в самом конце инструкции. Можно в виде примечания "если у вас есть анимация, но нет звука губной гармошки...".

 

  • Нравится 2

Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD

Полезное: модули Артоса, XML парсер

Продолжу смарты...
 

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

! [LUA][ERROR] ERROR: Path between [rad_monolith_base] and [yan_zombied] doesnt exist for [7].
! [LUA]  0 : [C  ] error_log
! [LUA]  0 : [C  ] error_log
! [LUA]  1 : [Lua] e:\s.t.a.l.k.e.r. clear sky\gamedata\scripts\_g.script(1103) : abort
! [LUA]  2 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(204) : iterate_point
! [LUA]  3 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(786) : find_path
! [LUA]  4 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(530) : get_next_action
! [LUA]  5 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(462) : update
! [LUA]  6 : [Lua] ...a.l.k.e.r. clear sky\gamedata\scripts\sim_faction.script(240) : 
! [LUA]  1 : [Lua] e:\s.t.a.l.k.e.r. clear sky\gamedata\scripts\_g.script(1103) : abort
! [LUA]  0 : [C  ] error_log
! [LUA]  1 : [Lua] e:\s.t.a.l.k.e.r. clear sky\gamedata\scripts\_g.script(1103) : abort
! [LUA]  2 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(204) : iterate_point
! [LUA]  3 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(786) : find_path
! [LUA]  4 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(530) : get_next_action
! [LUA]  5 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(462) : update
! [LUA]  6 : [Lua] ...a.l.k.e.r. clear sky\gamedata\scripts\sim_faction.script(240) : 
! [LUA]  2 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(204) : iterate_point
! [LUA]  0 : [C  ] error_log
! [LUA]  1 : [Lua] e:\s.t.a.l.k.e.r. clear sky\gamedata\scripts\_g.script(1103) : abort
! [LUA]  2 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(204) : iterate_point
! [LUA]  3 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(786) : find_path
! [LUA]  4 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(530) : get_next_action
! [LUA]  5 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(462) : update
! [LUA]  6 : [Lua] ...a.l.k.e.r. clear sky\gamedata\scripts\sim_faction.script(240) : 
! [LUA]  3 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(786) : find_path
! [LUA]  0 : [C  ] error_log
! [LUA]  1 : [Lua] e:\s.t.a.l.k.e.r. clear sky\gamedata\scripts\_g.script(1103) : abort
! [LUA]  2 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(204) : iterate_point
! [LUA]  3 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(786) : find_path
! [LUA]  4 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(530) : get_next_action
! [LUA]  5 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(462) : update
! [LUA]  6 : [Lua] ...a.l.k.e.r. clear sky\gamedata\scripts\sim_faction.script(240) : 
! [LUA]  4 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(530) : get_next_action
! [LUA]  0 : [C  ] error_log
! [LUA]  1 : [Lua] e:\s.t.a.l.k.e.r. clear sky\gamedata\scripts\_g.script(1103) : abort
! [LUA]  2 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(204) : iterate_point
! [LUA]  3 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(786) : find_path
! [LUA]  4 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(530) : get_next_action
! [LUA]  5 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(462) : update
! [LUA]  6 : [Lua] ...a.l.k.e.r. clear sky\gamedata\scripts\sim_faction.script(240) : 
! [LUA]  5 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(462) : update
! [LUA]  0 : [C  ] error_log
! [LUA]  1 : [Lua] e:\s.t.a.l.k.e.r. clear sky\gamedata\scripts\_g.script(1103) : abort
! [LUA]  2 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(204) : iterate_point
! [LUA]  3 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(786) : find_path
! [LUA]  4 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(530) : get_next_action
! [LUA]  5 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(462) : update
! [LUA]  6 : [Lua] ...a.l.k.e.r. clear sky\gamedata\scripts\sim_faction.script(240) : 
! [LUA]  6 : [Lua] ...a.l.k.e.r. clear sky\gamedata\scripts\sim_faction.script(240) : 
! [LUA]  0 : [C  ] error_log
! [LUA]  1 : [Lua] e:\s.t.a.l.k.e.r. clear sky\gamedata\scripts\_g.script(1103) : abort
! [LUA]  2 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(204) : iterate_point
! [LUA]  3 : [Lua] ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script(786) : find_path
! [LUA]  4 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(530) : get_next_action
! [LUA]  5 : [Lua] ...e.r. clear sky\gamedata\scripts\sim_squad_generic.script(462) : update
! [LUA]  6 : [Lua] ...a.l.k.e.r. clear sky\gamedata\scripts\sim_faction.script(240) : 
*********************************************************************************
[ResourceManager_Scripting.print_output([ResourceManager.lua_pcall_failed])] SCRIPT RUNTIME ERROR!
stack traceback:
*********************************************************************************
 
FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : lua_pcall_failed
[error]File          : G:\GitHub\xray_null\xray\Layers\xrRenderDX10\dx10ResourceManager_Scripting.cpp
[error]Line          : 431
[error]Description   : <no expression>
[error]Arguments     : [ResourceManager.lua_pcall_failed]: ...t.a.l.k.e.r. clear sky\gamedata\scripts\sim_board.script:729: attempt to index local 'smart' (a nil value)

Вроде понятно, но я уже убрал вызов этого смарта:
 

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

[smart_terrain]
targets = rad_monolith_perehod
sim_type = base
important_point = true
squad_capacity = 4
mutant_lair = false
group_id = 1
spawn_point = rad_monolith_base_spawn_point
att_restr = rad_monolith_base_space
def_restr = rad_monolith_base_space
sim_avail = true
respawn_sector = monolith
no_mutant = false
respawn = 
actor_hides =
surge_hide_avaliable = false


Зачем ему нужен теперь смарт аж на другой локации?

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

11.06.2025 в 23:31, imcrazyhoudini сказал:

Зачем ему нужен теперь смарт аж на другой локации?

Не уверен, но кажется между локациями тоже должны быть смарты для переходов, не может быть локации не связанной хотя бы одним переходом с иной локацией (для движения ИИ сквадов).
не обязательно должны быть связки именно между двумя смарт_террейнами, указанными в логе, но между ними должна быть связь через 1-3-5-100500 смарт_террейнов.

  • Согласен 1

Не соответствует. N6260

Друзья, напомните, по дроби конфиг патрона это на каждую дробину или на все 10?

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

@Челдон , в net_spawn - можно вставить в любое место. В update - тоже. В save - лучше в начале функции, сразу после set_save_marker, потому что там в пстор переменная пишется.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

@ZeeK это вообще как-то исключить возможно? Ну реально какой-то бред...

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

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

Рассматривай это как третий слой графов навигации ии :) типа самый высокоуровневый - это граф лагерей, ты его можешь править через конфиг. низкоуровневые - это квадратики ии-сетки в ле (онлайн-навигация) и вершины глобального графа (графпойнты, оффлайн-навигация).

 

В этой теме есть ссылка на картинку с графом лагерей оригинального чн: www.amk-team.ru/forum/topic/15168-analiz-grafa-lagerej-chistogo-neba/

можно заметить, что существует лагерь agru_smart_terrain_1, не связанный с остальными лагерями. 

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

Можно сделать вывод, что подобный лагерь может существовать в изолированном виде, но если попытаться в него/из него послать отряд (то есть связать с графом лагерей), то произойдёт вылет, т.к. изолированная вершина превратится в сточную.

 

Инб4: проектируй граф лагерей вида A->B->C->A или A<->B<->C, но не A->B->C, т.к. в последнем случае отряд, появившийся в A, успешно пройдёт B, но не сможет покинуть C.

@rdpthn так, визуализируем:

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

image.png

З нападают на С1, если успех, то спавнится С2 и нападает на С1 который заняли З.
Остальные зелёные  - другие смарты.
И собственно вопрос - они тоже должны иметь связь с З/С1/С2, или могут быть без targets?
Я собственно уже у них отнял targets, то ловлю вылет.)))

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

@imcrazyhoudini никакой это не бред, тут настройки на 5 минут работы в алл.спавн и в конфигах.

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

 

  • Полезно 1

Не соответствует. N6260

@ZeeK да нет у меня никаких локаций оригинала в целом.
Вот казалось бы оставил смарты без targets - всё равно просит пути указать.

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

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

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

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

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

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

Войти

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

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

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