Overf1rst 1 490 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 23 июня, 2023 15 минут назад, Drive сказал: Размеры которые нужны, они даже не соприкасаются друг с другом) Прохожу в одном, а логика срабатывает от другого Чудес не бывает, что проверяете то и срабатывает... Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Drive 13 Опубликовано 23 июня, 2023 @denis2000 я конечно могу что-то недопонимать, но уж я точно знаю где и как у меня расположены рестрикторы, поэтому я и попросил помощи в поиске ошибки в самой логике) 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 279 Опубликовано 23 июня, 2023 (изменено) Drive А проверь, у тебя вообще тот спавн в игре стоит? Мб ты что-то двигал, или рестрикторы не так назвал, или что-то исправлял. А потом забыл закинуть исправленный спавн в игру. Изменено 23 июня, 2023 пользователем Prostomod Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 23 июня, 2023 (изменено) 19 минут назад, Drive сказал: но уж я точно знаю где и как у меня расположены рестрикторы, поэтому я и попросил помощи в поиске ошибки в самой логике) В логике ошибки нет (кроме не фатального лишнего минуса перед 5000). Следующий вопрос. Изменено 23 июня, 2023 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Drive 13 Опубликовано 23 июня, 2023 (изменено) Вот собственно и "внутренности" Спойлер Спойлер [logic] active = sr_idle@1 [sr_idle@1] on_info = {=actor_in_zone(message_vstrechaet_sr) +actor_der_bas} sr_idle@end %=send_tip(podhodi_pogovorim) +actor_podoydi% [sr_idle@end] Изменено 23 июня, 2023 пользователем Drive Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 786 Опубликовано 23 июня, 2023 Neptun Спасибо! Дополнено 43 минуты спустя Возможно ли написать скриптовую функцию в диалоге, которая чинит все оружие и броню у игрока? Мне куда рыть? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 23 июня, 2023 Крим Спойлер function repair_actor_items_in_slots() local actor = db.actor local slot_tab = {2,3,7,12} for i = 1, #slot_tab do local item_in_slot = actor:item_in_slot(slot_tab) if item_in_slot ~= nil then item_in_slot:set_condition(1) end end end 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 279 Опубликовано 24 июня, 2023 (изменено) Появилась проблема: есть у меня смарт, где по задумке все НПС должны находиться в нём безвылазно, и воевать только в случае, если их атакуют. В онлайне всё нормально, но когда они оказались в оффлайне, то все дружно ушли в сторону вражеского смарта, а так как он располагается в изолированном участке АИ сетки (разделёны IN default рестриктором, сама сетка цельная), то если их перевести в онлайн, то они будут просто кучкой стоять в одном месте. Как такое поведение можно пофиксить? Хотелось бы без создания особой логики в смарте т.к. её почти нет, и все НПС просто ходят/стоят по вейпоинтам или сидят в смарткаверах. Спойлер [smart_terrain] squad_id = 2 max_population = 14 arrive_dist = 15 [exclusive] yan_vasilchuk_logic = yantar\npc\yan_vasilchuk_logic.ltx ;только для одного НПС есть особая работа, у остальных её нет Спойлер [logic@yan_vasilchuk_logic] suitable = {=check_npc_name(vasilchuk)} true active = walker@walker_1 prior = 200 [walker@walker_1] def_state_standing = wait_na corpse_detection_enabled = false gather_items_enabled = false combat_ignore_cond = true сombat_ignore = combat_ignore combat_ignore_keep_when_attacked = true invulnerable = true path_walk = vasilchuk_walk path_look = vasilchuk_look meet = meet [meet] no_move = false abuse = false allow_break = false meet_on_talking = false trade_enable = false close_snd_distance = 0 close_distance = 0 close_anim = wait_na close_victim = actor use = true UPD: я пофиксил это: сквад уникальный, поэтому в squad_descr_локация.ltx к нему я приписал параметр targer_smart = мой смарт. Дополнено 7 минуты спустя Другой вопрос: помню в ТЧ видел анимацию зомбированного: стоит у костра, иногда суёт руку туда, после чего отдёргивает и дальше стоит. В ЗП эта анимация сохранилась? И если да, то как она называется? Изменено 24 июня, 2023 пользователем Prostomod Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 279 Опубликовано 24 июня, 2023 (изменено) И сверху накину ещё вопрос: я пытаюсь сделать "зомби-стелс" как в Копачах в оригинале. Сделал логику для зомби, расставил вейпоинты и разные рескрикторы (NONE default) на территории. Однако, когда сквад зомби спавниться, то происходит безлоговый вылет (метод активации abort'ов отсюда (тык) я использую). Я смог определить, что вылет происходит немедленно после спавна сквада, и похоже, что проблема связана с логикой работ в смарте т.к. если их закомментировать, то вылета нет. Где я допустил ошибку? Спойлер [smart_terrain] ;имя смарта - yan_zavod_zombied_stealth_1_smart squad_id = 15 max_population = 1 arrive_dist = 100000 [exclusive] guard_1 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx guard_2 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx guard_3 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx guard_4 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx walker_1 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx walker_2 = yantar\npc\yan_zavod_zombied_stealth_1_logic.ltx Спойлер [walker@walker_universal_check] out_restr = yan_zavod_stealth_out_restrictor on_actor_dist_le_nvis = 5 | {-yan_zavod_stealth_failed} %+yan_zavod_stealth_failed% on_sound = actor|WPN_shoot|10000|0.3| {=dist_to_actor_le(15) -yan_zavod_stealth_failed} %+yan_zavod_stealth_failed% on_sound2 = actor|MST_step|10|0.1| {-yan_zavod_stealth_failed} %+yan_zavod_stealth_failed% on_sound3 = actor|WPN_empty|15|0.3| {-yan_zavod_stealth_failed} %+yan_zavod_stealth_failed% on_sound4 = actor|WPN_reload|15|0.3| {-yan_zavod_stealth_failed} %+yan_zavod_stealth_failed% sound_idle = state combat_ignore_cond = {!is_enemy_actor -yan_zavod_stealth_failed} true, false corpse_detection_enabled = false danger = danger wounded = wounded on_hit = hit [danger] ignore_distance = 0 [wounded] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false [hit] on_info = {is_alive() -yan_zavod_stealth_failed} %+yan_zavod_stealth_failed% [logic@guard_1] active = walker@guard_1 suitable = {=npc_community(zombied)} true [walker@guard_1]:walker@walker_universal_check path_walk = guard_1_walk path_look = guard_1_look [logic@guard_2] active = walker@guard_2 suitable = {=npc_community(zombied)} true [walker@guard_2]:walker@walker_universal_check path_walk = guard_2_walk path_look = guard_2_look [logic@guard_3] active = walker@guard_3 suitable = {=npc_community(zombied)} true [walker@guard_3]:walker@walker_universal_check path_walk = guard_3_walk path_look = guard_3_look [logic@guard_4] active = walker@guard_4 suitable = {=npc_community(zombied)} true [walker@guard_4]:walker@walker_universal_check path_walk = guard_4_walk path_look = guard_4_look [logic@walker_1] active = walker@walker_1 suitable = {=npc_community(zombied)} true [walker@walker_1]:walker@walker_universal_check path_walk = walker_1_walk path_look = walker_1_look [logic@walker_2] active = walker@walker_2 suitable = {=npc_community(zombied)} true [walker@walker_2]:walker@walker_universal_check path_walk = walker_2_walk path_look = walker_2_look Вейпоинты проверены: все они совпадают по шаблону с "имя_смарта"_"имя_пути_в_логике". Дополнено 6 минуты спустя Про безлоговый вылет сам нашёл ответ: он может быть в случае, если в секции path_look (а мб и path_walk) указан путь, которого вообще не существует. Я копировал логику волкеров с гардов, и у волкеров нет пути look, хоть он и прописан в логике. Короче, банальная невнимательность. Вопрос про анимацию зомби у костра ещё в силе. Изменено 24 июня, 2023 пользователем Prostomod Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 786 Опубликовано 24 июня, 2023 2 часа назад, Prostomod сказал: Вопрос про анимацию зомби у костра ещё в силе. 14 часов назад, Prostomod сказал: Другой вопрос: помню в ТЧ видел анимацию зомбированного: стоит у костра, иногда суёт руку туда, после чего отдёргивает и дальше стоит. В ЗП эта анимация сохранилась? И если да, то как она называется? Вообще не знаю, но попробуй: trans_zombied Название анимации отыскал в скриптах. Просмотреть пока не могу. Попробуй может это она. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 279 Опубликовано 24 июня, 2023 2 часа назад, Крим сказал: может это она. Да, это она, работает нормально. Спасибо. 1 Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 588 Опубликовано 25 июня, 2023 Подскажите пожалуйста, в чём ошибка в логике? [logic] active = mob_home on_death = death [mob_home] path_home = way_mod_insanity_home home_min_radius = 15 home_max_radius = 20 aggressive = true [death] on_info = %+aaa_mob_insanity_3% %=on_mob_3_kill% Работает всё (включая скрипт on_mob_3_kill) кроме выдачи инфопоршня +aaa_mob_insanity_3. Как я понимаю, строчка в [death] неправильно прописана. Но я не могу найти, как правильно ее написать, чтобы обе функции сработали. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 882 Опубликовано 25 июня, 2023 Mawrak on_info = %+aaa_mob_insanity_3% %=on_mob_3_kill% - в одни проценты! Вот так: %+aaa_mob_insanity_3 =on_mob_3_kill% 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AC6 33 Опубликовано 25 июня, 2023 Здравствуйте! Мы все знаем, что в оригинальной игре мы можем добавлять аксессуары, такие как прицелы или глушители, непосредственно к оружию, но как я могу добавить такие аксессуары, как расширяющий магазин (как в OGSE) или рукоятка? Что мне делать? Это касается двигателя? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 318 Опубликовано 25 июня, 2023 7 минут назад, AC6 сказал: Это касается двигателя? Ну да... явно не карбюратора..)) Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AC6 33 Опубликовано 25 июня, 2023 6 минут назад, Policai сказал: Ну да... явно не карбюратора..)) Извините, я не понимаю русский язык, поэтому я использую механический перевод, я имею в виду, такие вещи, как XRAY, которые мы здесь называем двигателями, извините, что принесли вам недоразумение Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 318 Опубликовано 25 июня, 2023 AC6 Да, это движковые правки... Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AC6 33 Опубликовано 25 июня, 2023 4 минуты назад, Policai сказал: Да, это движковые правки... Хорошо, скажите пожалуйста, трудно ли редактировать движок? Где я могу этому научиться? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AfterGlow 565 Опубликовано 25 июня, 2023 AC6 гайдов нет. Рекомендуется приступать к правкам движка хотя бы с минимальным знанием C++. Могу посоветовать скачать оригинальное репо сталкера и репо каких-либо других проектов вроде StCOP или OpenX-ray, чтобы посомтреть вообще, как это делать. По поводу первого твоего вопроса. Если такое оружие планируется в единичных экземплярах, то можно просто переделать модель (в случае с рукояткой и новые анимации сделать) и отредактировать конфиг. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AC6 33 Опубликовано 25 июня, 2023 5 минут назад, AfterGlow сказал: Рекомендуется приступать к правкам движка хотя бы с минимальным знанием C++. Хорошо... Я попробую. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Boomer 446 Опубликовано 25 июня, 2023 Mутант не хочет видеть мою логику. С обычными нпс всё всегда нормально, а мутанта делаю аналогично, но логику он не видит. Спойлер [smart_terrain];agr_kontrik_terrain squad_id = 13 max_population = 1 [exclusive] agr_controller_2part_normal = agroprom\quest_mutants_logic\agr_controller_2part_normal.ltx Спойлер [logic@agr_controller_2part_normal] active = mob_walker@stay suitable = {=check_npc_name(agr_controller_2part_normal)} true monster_job = true [mob_walker@stay] path_walk = kontrik_tonnel_stay path_look = kontrik_tonnel_look actor_friendly = true invulnerable = true aggressive = false Спойлер [agr_controller_2part_normal]:m_controller_normal $spawn = "respawn\agr_controller_2part_normal" story_id = agr_controller_2part_normal Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 93 Опубликовано 25 июня, 2023 Boomer Что-то не вижу чтобы он был в скваде. Также стоит указать prior = . По умолчанию приоритет равен 45 для эксклюзивов. Лучше его сделать больше! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Boomer 446 Опубликовано 25 июня, 2023 (изменено) 6 минут назад, Mass сказал: Что-то не вижу чтобы он был в скваде. Спойлер [agr_kontrik_terrain_kontroler_2part_squad]:online_offline_group faction = monster npc = agr_controller_2part_normal target_smart = agr_kontrik_terrain spawn_point = agr_kontrik_terrain_kontrik_tonnel_stay Он в скваде. Изменено 25 июня, 2023 пользователем Boomer Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 93 Опубликовано 25 июня, 2023 В 23.06.2023 в 00:25, SoDizzari сказал: Как сделать чтобы НПС после появления лежал раненным на земле? Лучше сделать ему сразу здоровье на 0.2! Можете сделать через схему remark и через диалог по инфопоршню поменять нпс'у анимацию Дополнено 9 минуты спустя В 22.06.2023 в 23:42, Prostomod сказал: victim = 30 | yan_expedition_dolg_1_copy ;стори_ид персонажа, на которого должен смотреть собеседник victim_wpn = 30 | yan_expedition_dolg_1_copy Формат настроек изменился в ЗП! Смотрите логику.Там появились параметры close_victim и far_victim вместо victim Дополнено 13 минуты спустя 13 минут назад, Boomer сказал: Он в скваде. Тогда последний вариант, опечатка при назначении файла с логикой. Проверьте правильность пути к папке и самого файла Дополнено 19 минуты спустя В 23.06.2023 в 21:14, Drive сказал: on_game_timer Сработает через определенный интервал в 60 сек игрового времени. Если вы уже пересекли рестриктор тогда и время пришло тогда по идее покажется снова не только в другом рестрикторе. при on_game_timer 10 == 1 сек Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 786 Опубликовано 25 июня, 2023 Boomer Проще спавнить контролера сквадом через симуляцию или через функцию =create_squad(имя_сквада:имя_смарта), вызываемую через рестриктор. И в логике написать так: suitable = {=target_squad_name(имя сквада)} true Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты