Overf1rst 1 422 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Тень Чернобыля. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 6 4 1 3 1 3 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 576 Опубликовано 30 июля, 2023 (изменено) frankenshtayn он разбивает архивы? В самом первом есть папка sounds? Изменено 30 июля, 2023 пользователем N42 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 554 Опубликовано 31 июля, 2023 frankenshtayn для распаковки и запаковки ТЧ архивов самый лучший это проверенный временем конвертер от Бардака, всё остальное дилетантская васня) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 917 Опубликовано 31 июля, 2023 (изменено) N42 не помогает пытался двумя методами: Спойлер function see_actor(actor, npc) return npc:alive() and npc:see(actor) end function see_actor2(actor, npc) return npc:alive() and npc:see_right_now(actor) end такая проверка показывает что нпс всё же видит гг, но это лишь проверка и нпс тот - нейтрал Спойлер local npc = level_object_by_sid(6) if npc and npc:alive() and npc:see(db.actor) then log1("npc can see actor now") end логика такого плана: Спойлер [logic@esc_bandit_atp_5_walker] active = walker@esc_bandit_atp_5 [walker@esc_bandit_atp_5] path_walk = 5_walk path_look = 5_look on_info = {+esc_bandit_detail_start =see_actor} %+esc_bandit_detail_fail% копаю дальше - проверка работает только в случае если нпс нейтрален к ГГ и/или не состоит в состоянии danger в этом и проблема... править как хз Дополнено 25 минуты спустя докопал всё же, вставил в логику: combat_ignore_cond = {!is_night} allways Дополнено 37 минуты спустя Так, вопрос по гулагам Спойлер по идеи нпс должен переходить в другое состояние (день-ночь, ночью спит, днём охраняет), но вместо того чтобы перейти в другое состояние он уходит в оффлайн как править? Изменено 31 июля, 2023 пользователем imcrazyhoudini Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 244 Опубликовано 1 августа, 2023 В чем проблема? Бандиты должны игнорировать нас, а они стреляют в меня( [smart_terrains] none = true [logic] active = walker [walker] path_walk = gar_rob_walker_2_walk path_look = gar_rob_walker_2_look combat_ignore = combat_ignore [combat_ignore] [remark] anim = claim snd = gar_dm_bandit_demand target = actor Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 554 Опубликовано 1 августа, 2023 Stalkervernite а где условие combat_ignore_cond = always Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 917 Опубликовано 1 августа, 2023 [smart_terrains] none = true [logic] active = walker combat_ignore = combat_ignore [walker] path_walk = gar_rob_walker_2_walk path_look = gar_rob_walker_2_look combat_ignore_cond = always [remark] anim = claim snd = gar_dm_bandit_demand target = actor combat_ignore_cond = always [combat_ignore]Stalkervernite 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 244 Опубликовано 1 августа, 2023 imcrazyhoudini Мое почтение! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
frankenshtayn 17 Опубликовано 1 августа, 2023 В 30.07.2023 в 15:22, N42 сказал: он разбивает архивы? В самом первом есть папка sounds? sounds есть в 4 и 5 архиве. Проблема не в этом, повторю "условие задачи загадки"): - При наличии в корне игры папки gamedata, и отсутствии db-архивов (gamedata.db0-gamedata.dbb удалены, их нет в корне игры) - всё нормально, игра запускается, работает. Проблема начинается после упаковки геймдаты в db-архивы. Причем поисковик показывает, что эти файлы присутствуют по указанному в вылетах пути. В 31.07.2023 в 03:01, CiberZold сказал: frankenshtayn для распаковки и запаковки ТЧ архивов самый лучший это проверенный временем конвертер от Бардака, всё остальное дилетантская васня) Так с него и начинал) А вообще, пробовал разными конвертерами. ПС. Вообще склоняюсь в сторону "криворукости", хотя не понимаю каким образом - если кидаю свои звуки, модели, шейдеры в геймдату и упаковываю её в архивы, а скрипты, конфиги, аллспавн и т.д. в отдельный архив, то начинаются танцы с вылетами по [error]Description : Can't open wave file: [error]Arguments : d:\game\stalker\s.t.a.l.k.e.r. - shadow of hernobyl\gamedata\sounds\material\human\step\tmp_default4.ogg А вот если оригинал (урезанный) упаковать отдельно, а мои все файлы отдельно, то всё работает. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 576 Опубликовано 1 августа, 2023 frankenshtayn распакуй первый оригинальный архив и посмотри, как он устроен. Может в этом причина. Вроде как в первом архиве должны быть все папки (хоть пустые), но это не точно, не помню уже. Если не поможет - без понятия тогда 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
frankenshtayn 17 Опубликовано 1 августа, 2023 В 31.07.2023 в 16:42, imcrazyhoudini сказал: по идеи нпс должен переходить в другое состояние (день-ночь, ночью спит, днём охраняет), но вместо того чтобы перейти в другое состояние он уходит в оффлайн как править? Ну может быть задать для каждого состояния то, что он должен делать? Т.е. Для состояния 0 - одна логика, для состояния 1 другая? Как пример простейшего гулага с двумя состояниями: гулаг.скрипт: Спойлер local t = {} function load_job(sj, gname, type, squad, groups) --'-------------------------------------------------------------------------- --' GARBAGE --'-------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ----------первый-------------- if type == "sv_st_smart_terrain" then t = { section = "logic@sv_st_smart_terrain_walker1", idle = 0, prior = 5, state = {0}, online = true, in_rest = "", out_rest = "", } table.insert(sj, t) end if type == "sv_st_smart_terrain" then t = { section = "logic@sv_st_smart_terrain_kamp1", idle = 0, prior = 5, state = {1}, online = true, in_rest = "", out_rest = "", } table.insert(sj, t) end ----------второй----------- if type == "sv_st_smart_terrain" then t = { section = "logic@sv_st_smart_terrain_walker2", idle = 0, prior = 5, state = {0}, online = true, in_rest = "", out_rest = "", } table.insert(sj, t) end if type == "sv_st_smart_terrain" then t = { section = "logic@sv_st_smart_terrain_kamp2", idle = 0, prior = 5, state = {1}, online = true, in_rest = "", out_rest = "", } table.insert(sj, t) end ------третий------------- if type == "sv_st_smart_terrain" then t = { section = "logic@sv_st_smart_terrain_walker3", idle = 0, prior = 5, state = {0}, online = true, in_rest = "", out_rest = "", } table.insert(sj, t) end if type == "sv_st_smart_terrain" then t = { section = "logic@sv_st_smart_terrain_sleeper", idle = 0, prior = 5, state = {1}, online = true, in_rest = "", out_rest = "", } table.insert(sj, t) end end function load_states(gname, type) if type == "sv_st_smart_terrain" then return function(gulag) if db.actor ~= nil then if ( level.get_time_hours() >= 5 and level.get_time_hours() <= 22 ) then return 0 -- день else return 1 -- ночь end else return gulag.state end end end end -------------------------------------------------------------------------- -- Dynamic ltx -------------------------------------------------------------------------- function load_ltx(gname, type) return nil end function checkStalker(npc_community, gulag_type, npc_rank, se_obj) --------- if gulag_type == "sv_st_smart_terrain" then return npc_community == "stalker" end return false end function checkMonster(npc_community, gulag_type) if gulag_type == "gar_boars_nest2" then return npc_community == "boar" end if gulag_type == "gar_boars_nest" then return npc_community == "boar" end if gulag_type == "gar_nest_flesh" then return npc_community == "flesh" end if gulag_type == "gar_dogs_nest" then return npc_community == "dog" end if gulag_type == "gar_dogs_nest2" then return npc_community == "dog" end return false end гулаг.лтх: Спойлер ;;;--------------------------------------------------- ;;;-- сталкер1 walker 0, днем) [logic@sv_st_smart_terrain_walker1] active = walker@odin_hodit on_hit = hit_w [hit_w] on_info = %=zasada_spawn% [walker@odin_hodit] path_walk = odin_walk danger = danger_condition def_state_moving1 = patrol def_state_moving2 = patrol def_state_moving3 = patrol meet = meet ;;;-- сталкер1 kamp 1, ночью) [logic@sv_st_smart_terrain_kamp1] active = kamp@odin_sidit on_hit = hit_k [hit_k] on_info = %=zasada_spawn% [kamp@odin_sidit] center_point = pole_kamp meet = no_meet ;;;---------------------------------------------------------------- ;;;-- сталкер2 walker 0, днем) [logic@sv_st_smart_terrain_walker2] active = walker@dva_hodit [walker@dva_hodit] path_walk = dva_walk danger = danger_condition def_state_moving1 = patrol def_state_moving2 = patrol def_state_moving3 = patrol meet = meet ;;;-- сталкер2 kamp 1, ночью) [logic@sv_st_smart_terrain_kamp2] active = kamp@dva_sidit [kamp@dva_sidit] center_point = pole_kamp meet = no_meet ;;;---------------------------------------------------------------------------- ;;;-- сталкер3 walker 0, днем) [logic@sv_st_smart_terrain_walker3] active = kamp@tri_sidit [kamp@tri_sidit] center_point = pole_kamp meet = meet ;-- сталкер3 sleeper 1, ночью) [logic@sv_st_smart_terrain_sleeper] active = sleeper@tri_slip [sleeper@tri_slip] path_main = moy_sleep wakeable = false meet = no_meet И всё нормально работает: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 917 Опубликовано 1 августа, 2023 frankenshtayn да у меня такой же код ещё раз попробовал - уже в оффлайн никто не уходит, странная херня Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
frankenshtayn 17 Опубликовано 1 августа, 2023 21 минуту назад, N42 сказал: распакуй первый оригинальный архив и посмотри, как он устроен. Может в этом причина. Вроде как в первом архиве должны быть все папки (хоть пустые), но это не точно, не помню уже. Если не поможет - без понятия тогда Папки есть везде, не пустые. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 576 Опубликовано 1 августа, 2023 frankenshtayn у тебя самого на скрине в db0 4 папки только Дополнено 0 минут спустя Оригинальный этот архив посмотри 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
frankenshtayn 17 Опубликовано 1 августа, 2023 13 минут назад, imcrazyhoudini сказал: да у меня такой же код ещё раз попробовал - уже в оффлайн никто не уходит, странная херня Разве? В скрипте для обоих состояний одна и та же логика, причем секции дублируются, например t = { section = "logic@esc_atp_bandit_kamp1" idle = 0, prior = 9, state = {0,1}, in_rest = "", out_rest = "", } t = { section = "logic@esc_atp_bandit_kamp1" idle = 0, prior = 9, state = {0,1}, in_rest = "", out_rest = "", } Чем они отличаются? Для чего это дублирование? Почему для обоих состояний 0 и 1 одна и та же логика? По идее тут должен быть вылет, ибо игра вряд ли может понять "кто есть кто", и кто что должен делать. Посмотри внимательнее, как сделано у меня - для каждого НПС в скрипте отдельный код для каждого состояния с ссылкой на РАЗНУЮ секцию логики, соответственно в конфиге для каждого НПС две секции логики для каждого состояния. Представь себе - работает))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 917 Опубликовано 1 августа, 2023 frankenshtayn да а с этим то какие проблемы? всё как в оригинале, 3 одинаковые логики использует и всё отлично работать, зачем кучу дубликатов создавать Дополнено 0 минут спустя пример с оригинала например: гулаг esc_specnaz Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
frankenshtayn 17 Опубликовано 1 августа, 2023 7 минут назад, N42 сказал: frankenshtayn у тебя самого на скрине в db0 4 папки только Дополнено 0 минут спустя Оригинальный этот архив посмотри Так эти 4 папки и весят 678 мГ, так же как и архив db0 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 576 Опубликовано 1 августа, 2023 (изменено) frankenshtayn я тебе про пустые папки говорю, ешкин кот, открой уже оригинальный db0 Изменено 1 августа, 2023 пользователем N42 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
frankenshtayn 17 Опубликовано 1 августа, 2023 16 минут назад, imcrazyhoudini сказал: да а с этим то какие проблемы? всё как в оригинале, 3 одинаковые логики использует и всё отлично работать, зачем кучу дубликатов создавать Так чтобы не путаться) Ну в принципе моё дело предложить, я не настаиваю) 21 минуту назад, imcrazyhoudini сказал: пример с оригинала например: гулаг esc_specnaz Гм... И? Если мне память не отшибает, то у них у всех всего одно состояние, и они все кемперы, то бишь тусуются кучкой вокруг одной общей точки. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 917 Опубликовано 2 августа, 2023 frankenshtayn ну если мне нужно чтобы 3 чувака тусили возле костра, то зачем разную логику им делать) дубликат всего-то а переход из одного состояния в другое сейчас происходит штатно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Кефир 609 Опубликовано 2 августа, 2023 Есть ли в оружейных конфигах параметр, отвечающий за расположение оружия на спине у сталкера? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 640 Опубликовано 2 августа, 2023 5 минут назад, Кефир сказал: Есть ли в оружейных конфигах параметр, отвечающий за расположение оружия на спине у сталкера? Поищи в конфигах по слову strap. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 917 Опубликовано 2 августа, 2023 как заставить монстра смотреть куда мне нужно в mob_remark? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 244 Опубликовано 4 августа, 2023 Приветствую всех! Делаю кастцену, камера смотрит туда куда не надо, что делать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 917 Опубликовано 4 августа, 2023 Stalkervernite сделай чтобы смотрела куда надо. В чём проблема? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 244 Опубликовано 4 августа, 2023 imcrazyhoudini У меня вей поинт должен смотреть в другую сторону, а камера смотрит туда куда не надо, а как сделать, как исправить ошибку? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты