Overf1rst 1 503 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Тень Чернобыля. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 6 4 1 3 1 3 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 921 Опубликовано 6 января, 2022 vader_33 нужно вывести иконку на худ когда гг стоит у костра, хотя лучше типс с юзаньем. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 6 января, 2022 Paracetamol а, это не ко мне, не разбираюсь в логике. Вот надо сразу писать, что помощь по логике нужна, распугали тут всех нет-пакетами. Если именно через рестрикторы иконку выводить - добавить в логику рестриктора on_actor_inside = ... - это на вход, сюда функцию добавления custom static. on_actor_outside = .. - это на выход, сюда функцию удаления 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vetalion 0 Опубликовано 6 января, 2022 Всем привет! Помогите, пожалуйста, советом: как получить через скрипт активное задание или строковое представление его title(показывается по нажатию на TAB и выбирается в ПДА) или это вшито в движок? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 6 января, 2022 (изменено) vetalion в оп 2/2.1 при нажатии на tab в сообщения выводился список активных заданий, которые можно сдать на текущей локации, может получится оттуда выдрать (не знаю, правился ли для этого движок, готовой удобной функции для этого нету) Изменено 6 января, 2022 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 921 Опубликовано 7 января, 2022 Всем привет, снова я. Нужно проиграть скриптом звук в определённом месте по квесту, спейсом не хочется. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 7 января, 2022 (изменено) Paracetamol local snd = xr_sound.get_safe_sound_object("helicopter\\hit_2") snd:play_at_pos(obj, позиция, sound_object.s3d) позиция либо по какому-нибудь объекту obj:position() либо vector():set(x,y,z) Изменено 7 января, 2022 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1beer 275 Опубликовано 7 января, 2022 как можно скриптово добавить туман вокруг actor? буквально в радиусе 10-20 метров нужно.. Слишком огромная подпись. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 7 января, 2022 1beer поменять погоду не пойдет? В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1beer 275 Опубликовано 7 января, 2022 6 минут назад, vader_33 сказал: 1beer поменять погоду не пойдет? нужно скриптово буквально на пару секунд закинуть на одну локу, а потом обратно.. в будующем данная лока еще будет использоваться.. Слишком огромная подпись. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Sikorskyi 279 Опубликовано 7 января, 2022 1beer создать аномалию "туман" ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1beer 275 Опубликовано 7 января, 2022 Только что, Sikorskyi сказал: 1beer создать аномалию "туман" ? такая есть в тч? можешь примерный код накидать? Слишком огромная подпись. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Sikorskyi 279 Опубликовано 7 января, 2022 Что-то типа: Спойлер ;----------- Облако ----------------------- [zone_clouds_bad] GroupControlSection = spawn_group_zone $spawn = "zones\zone_clouds_bad" $prefetch = 16 class = ZS_MBALD hit_impulse_scale = 0 effective_radius = 0 actor_blowout_radius_percent = 0.0 ef_anomaly_type = 1 ef_weapon_type = 13 sound = zone_mosquito_bald postprocess = postprocess_fog BirthProbability = 0.0 hit_type = chemical_burn min_start_power = 0.99 max_start_power = 1.00 attenuation = 1 period = 1 min_artefact_count = 0 max_artefact_count = 0 idle_particles = a_ufp_particles\clouds_bad blowout_particles = a_ufp_particles\clouds_bad idle_sound = ambient\x18\x18_wind_1 blowout_sound = ambient\x18\x18_wind_1 hit_sound = ambient\x18\x18_wind_1 entrance_sound = ambient\x18\x18_wind_1 awaking_time = 100 blowout_time = 500 accamulate_time = 245 blowout_light_time = 200 blowout_explosion_time = 200 blowout_particles_time = 200 blowout_sound_time = 100 disable_time = 5000 disable_time_small = 5000 disable_idle_time = 100 ignore_nonalive = false ignore_small = false ignore_artefacts = false blowout_light = off light_color = 0.01,0.4,0.01 light_range = 6.0 light_time = 0.4 light_height = 0.4 idle_light = off idle_light_range = 8.0 idle_light_range_delta = 0.2 idle_light_anim = koster_01 idle_light_height = 0.70 visible_by_detector = off artefacts = af_gold_fish, 0.4 spawn_blowout_artefacts = off artefact_spawn_probability = 0.2 artefact_spawn_particles = anomaly\a-01-heat-smoke_old00 artefact_born_sound = ambient\silence throw_out_power = 0.6 artefact_spawn_height = 0.3 blowout_wind = off blowout_wind_time_start = 0 blowout_wind_time_peak = 300 blowout_wind_time_end = 600 blowout_wind_power = 0.9 Это из ОГСЕ. Дополнено 19 минуты спустя Вот конфиг Тумана: Спойлер ;----------- Туман ----------------------- [zone_fog] GroupControlSection = spawn_group_zone $spawn = "zones\zone_fog" $prefetch = 16 class = ZS_MBALD hit_impulse_scale = 0 effective_radius = 0 actor_blowout_radius_percent = 0 ef_anomaly_type = 1 ef_weapon_type = 13 sound = ambient\random\rt_sickened1 postprocess = postprocess_fog BirthProbability = 0.2 hit_type = burn min_start_power = 0.99 max_start_power = 1.00 attenuation = 1 period = 1 min_artefact_count = 0 max_artefact_count = 0 idle_particles = a_ufp_particles\fog_01 blowout_particles = a_ufp_particles\fog_01 idle_sound = ambient\random\rt_sickened1 blowout_sound = ambient\random\rt_sickened1 hit_sound = ambient\random\rt_sickened1 entrance_sound = ambient\random\rt_sickened1 awaking_time = 100 blowout_time = 500 accamulate_time = 245 blowout_light_time = 200 blowout_explosion_time = 200 blowout_particles_time = 200 blowout_sound_time = 100 disable_time = 5000 disable_time_small = 5000 disable_idle_time = 100 ignore_nonalive = false ignore_small = false ignore_artefacts = false blowout_light = off light_color = 0.5,0.4,0.3 light_range = 30.0 light_time = 0.9;0.35 light_height = 1.5 idle_light = off visible_by_detector = off artefacts = spawn_blowout_artefacts = off artefact_spawn_probability = 0 artefact_spawn_particles = artefact_born_sound = throw_out_power = 0 artefact_spawn_height = 0 blowout_wind = off blowout_wind_time_start = 0 blowout_wind_time_peak = 300 blowout_wind_time_end = 600 blowout_wind_power = 0.9 ;----------- Сигаретный дым в помещении ----------------------- [zone_fog_cigarette] GroupControlSection = spawn_group_zone $spawn = "zones\zone_fog_cigarette" $prefetch = 16 class = ZS_MBALD hit_impulse_scale = 0 effective_radius = 0 actor_blowout_radius_percent = 0 ef_anomaly_type = 1 ef_weapon_type = 13 sound = ambient\random\rt_sickened1 postprocess = postprocess_fog BirthProbability = 0.2 hit_type = burn min_start_power = 0.99 max_start_power = 1.00 attenuation = 1 period = 1 min_artefact_count = 0 max_artefact_count = 0 idle_particles = a_ufp_particles\cigarette_dust blowout_particles = a_ufp_particles\cigarette_dust idle_sound = ambient\random\rt_sickened1 blowout_sound = ambient\random\rt_sickened1 hit_sound = ambient\random\rt_sickened1 entrance_sound = ambient\random\rt_sickened1 awaking_time = 100 blowout_time = 500 accamulate_time = 245 blowout_light_time = 200 blowout_explosion_time = 200 blowout_particles_time = 200 blowout_sound_time = 100 disable_time = 5000 disable_time_small = 5000 disable_idle_time = 100 ignore_nonalive = false ignore_small = false ignore_artefacts = false blowout_light = off light_color = 0.5,0.4,0.3 light_range = 30.0 light_time = 0.9;0.35 light_height = 1.5 idle_light = off idle_light_range = 8.0 idle_light_range_delta = 0.2 idle_light_anim = koster_01 idle_light_height = 0.70 visible_by_detector = off artefacts = spawn_blowout_artefacts = off artefact_spawn_probability = 0 artefact_spawn_particles = artefact_born_sound = throw_out_power = 0 artefact_spawn_height = 0 blowout_wind = off blowout_wind_time_start = 0 blowout_wind_time_peak = 300 blowout_wind_time_end = 600 blowout_wind_power = 0.9 ;----------- Туман в помещении ----------------------- [zone_fog_indoor] GroupControlSection = spawn_group_zone $spawn = "zones\zone_fog_indoor" $prefetch = 16 class = ZS_MBALD hit_impulse_scale = 0 effective_radius = 0 actor_blowout_radius_percent = 0 ef_anomaly_type = 1 ef_weapon_type = 13 sound = ambient\random\rt_sickened1 postprocess = postprocess_fog BirthProbability = 0.2 hit_type = burn min_start_power = 0.99 max_start_power = 1.00 attenuation = 1 period = 1 min_artefact_count = 0 max_artefact_count = 0 idle_particles = a_ufp_particles\fog_indoor blowout_particles = a_ufp_particles\fog_indoor idle_sound = ambient\random\rt_sickened1 blowout_sound = ambient\random\rt_sickened1 hit_sound = ambient\random\rt_sickened1 entrance_sound = ambient\random\rt_sickened1 awaking_time = 100 blowout_time = 500 accamulate_time = 245 blowout_light_time = 200 blowout_explosion_time = 200 blowout_particles_time = 200 blowout_sound_time = 100 disable_time = 5000 disable_time_small = 5000 disable_idle_time = 100 ignore_nonalive = false ignore_small = false ignore_artefacts = false blowout_light = off light_color = 0.5,0.4,0.3 light_range = 30.0 light_time = 0.9;0.35 light_height = 1.5 idle_light = off idle_light_range = 8.0 idle_light_range_delta = 0.2 idle_light_anim = koster_01 idle_light_height = 0.70 visible_by_detector = off artefacts = spawn_blowout_artefacts = off artefact_spawn_probability = 0 artefact_spawn_particles = artefact_born_sound = throw_out_power = 0 artefact_spawn_height = 0 blowout_wind = off blowout_wind_time_start = 0 blowout_wind_time_peak = 300 blowout_wind_time_end = 600 blowout_wind_power = 0.9 ;----------- Туман на земле ----------------------- [zone_fog_ground] GroupControlSection = spawn_group_zone $spawn = "zones\zone_fog_ground" $prefetch = 16 class = ZS_MBALD hit_impulse_scale = 0 effective_radius = 0 actor_blowout_radius_percent = 0 ef_anomaly_type = 1 ef_weapon_type = 13 sound = ambient\random\rt_sickened1 postprocess = postprocess_fog BirthProbability = 0.2 hit_type = burn min_start_power = 0.99 max_start_power = 1.00 attenuation = 1 period = 1 min_artefact_count = 0 max_artefact_count = 0 idle_particles = a_ufp_particles\fog_ground blowout_particles = a_ufp_particles\fog_ground idle_sound = ambient\random\rt_sickened1 blowout_sound = ambient\random\rt_sickened1 hit_sound = ambient\random\rt_sickened1 entrance_sound = ambient\random\rt_sickened1 awaking_time = 100 blowout_time = 500 accamulate_time = 245 blowout_light_time = 200 blowout_explosion_time = 200 blowout_particles_time = 200 blowout_sound_time = 100 disable_time = 5000 disable_time_small = 5000 disable_idle_time = 100 ignore_nonalive = false ignore_small = false ignore_artefacts = false blowout_light = off light_color = 0.5,0.4,0.3 light_range = 30.0 light_time = 0.9;0.35 light_height = 1.5 idle_light = off idle_light_range = 8.0 idle_light_range_delta = 0.2 idle_light_anim = koster_01 idle_light_height = 0.70 visible_by_detector = off artefacts = spawn_blowout_artefacts = off artefact_spawn_probability = 0 artefact_spawn_particles = artefact_born_sound = throw_out_power = 0 artefact_spawn_height = 0 blowout_wind = off blowout_wind_time_start = 0 blowout_wind_time_peak = 300 blowout_wind_time_end = 600 blowout_wind_power = 0.9 ;----------- Туман движется ----------------------- [zone_fog_move] GroupControlSection = spawn_group_zone $spawn = "zones\zone_fog_move" $prefetch = 16 class = ZS_MBALD hit_impulse_scale = 0 effective_radius = 0 actor_blowout_radius_percent = 0 ef_anomaly_type = 1 ef_weapon_type = 13 sound = ambient\random\rt_sickened1 postprocess = postprocess_fog BirthProbability = 0.2 hit_type = burn min_start_power = 0.99 max_start_power = 1.00 attenuation = 1 period = 1 min_artefact_count = 0 max_artefact_count = 0 idle_particles = a_ufp_particles\fog_move blowout_particles = a_ufp_particles\fog_move idle_sound = ambient\random\rt_sickened1 blowout_sound = ambient\random\rt_sickened1 hit_sound = ambient\random\rt_sickened1 entrance_sound = ambient\random\rt_sickened1 awaking_time = 100 blowout_time = 500 accamulate_time = 245 blowout_light_time = 200 blowout_explosion_time = 200 blowout_particles_time = 200 blowout_sound_time = 100 disable_time = 5000 disable_time_small = 5000 disable_idle_time = 100 ignore_nonalive = false ignore_small = false ignore_artefacts = false blowout_light = off light_color = 0.5,0.4,0.3 light_range = 30.0 light_time = 0.9;0.35 light_height = 1.5 idle_light = off visible_by_detector = off artefacts = spawn_blowout_artefacts = off artefact_spawn_probability = 0 artefact_spawn_particles = artefact_born_sound = throw_out_power = 0 artefact_spawn_height = 0 blowout_wind = off blowout_wind_time_start = 0 blowout_wind_time_peak = 300 blowout_wind_time_end = 600 blowout_wind_power = 0.9 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vetalion 0 Опубликовано 7 января, 2022 vader_33 Спасибо, но... Сам код в движке выглядит так case kSCORES: { SDrawStaticStruct* ss = AddCustomStatic("main_task", true); SGameTaskObjective* o = pActor->GameTaskManager().ActiveObjective(); if(!o) ss->m_static->SetTextST ("st_no_active_task"); else ss->m_static->SetTextST (*(o->description)); }break; Кроме статика в gamedata ничего не нашёл, возможно не там искал? Есть возможность без сборки движка импортировать недостающий функционал? Как добраться до ActiveTask или ActiveObjective или типа того? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 7 января, 2022 (изменено) vetalion без ковыряний движка не добавить ничего нового, только пользоваться тем, что разработчики вывели в скрипты (всякие функции, методы есть в lua_help.script, описание большинства есть в теме справочника по функциям и классам на амк). Легко можно получить только квесты, прописанные в task_manager.ltx (табличка self.active_task_by_type в task_manager.script), а вот с остальными квестами беда. Наверно, только велосипедами можно получить, не нашел ничего подходящего в lua_help. Поэтому предложил посмотреть реализацию в оп (лучше в оп-2, а не в 2.1, в оп 2 вроде не особо было движковых правок) Дополнено 9 минуты спустя 3 часа назад, 1beer сказал: нужно скриптово буквально на пару секунд закинуть на одну локу, а потом обратно Скриптом поменять level.set_weather("секция", true), потом либо сама сменится либо снова поменять на обычную. Или отдельно эффект через level.set_weather_fx. С аномалией хороший вариант, но помню, что на склонах выглядело не очень, только на ровной поверхности красиво стелилась. Если на локации нет склонов, то аномалия пойдет Изменено 7 января, 2022 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vetalion 0 Опубликовано 8 января, 2022 vader_33 Спасибо. В оп 2.1 я сгенерил справку: Локация -->Квестовики --> Задания-Награды(чтобы не выходя из игры знать, что нести) с помощью их же скриптов, но там ничего не нашлось. В общем получилось как и предполагалось, что нельзя. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
muzafir 32 Опубликовано 10 января, 2022 Всем привет! Подскажите, как можно организовать удар от НПС в морду актера? Может у кого есть готовая функция, чтобы ее можно было вызвать экшеном из диалога в нужном месте? Буду рад любым предложениям. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 10 января, 2022 muzafir https://ap-pro.ru/forums/topic/93-soc-modostroy-voprosnica/?do=findComment&comment=115976 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
muzafir 32 Опубликовано 10 января, 2022 (изменено) Спасибо, это я видел. Но в xr_effects.script - только проверка на присутствие оружия в руках и эффекты от удара, самой анимации удара нет. xr_abuse.script - как я понял, используется для вызова из логики НПС. Как там сама анимация удара задействуется не пойму - не на том уровне у меня скрипты. Поэтому и подумал, может кто-нибудь уже знает ответ Изменено 10 января, 2022 пользователем muzafir Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 10 января, 2022 muzafir добавить свою отдельную функцию, в которой будет вызов abuse и следом добавить эффект камеры с функции из xr_effects 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1beer 275 Опубликовано 11 января, 2022 ребят, подскажите как скриптово убрать предмет из определенного слота в рюкзак? Слишком огромная подпись. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
muzafir 32 Опубликовано 11 января, 2022 Заработало! Может кому-нибудь пригодится: function actor_punch(npc) if db.actor:position():distance_to_sqr(npc:position()) > 4 then return else npc:add_animation("udar_0") end set_inactivate_input_time(30) local snd_obj = xr_sound.get_safe_sound_object([[affects\hit_fist]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "") end Можно вызывать из диалога экшеном, тогда ГГ получит по морде от собеседника. Только перед вызовом этой функции вставьте стандартный <action>dialogs.break_dialog</action> чтобы прервать диалог. Ну или засуньте это тоже в функцию. Всем удачи! 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 января, 2022 1beer в оригинале никак, только удалить и заспавнить новый, на огср движке через move_to_ruck В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1beer 275 Опубликовано 11 января, 2022 5 минут назад, vader_33 сказал: 1beer в оригинале никак, только удалить и заспавнить новый, на огср движке через move_to_ruck а есть ли пример с move_to_ruck? Слишком огромная подпись. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 января, 2022 (изменено) 1beer что-то вроде db.actor:move_to_ruck(obj), нет щас под рукой ничего с огср. Объект в слоте получить можно так db.actor:item_in_slot(слот) Изменено 11 января, 2022 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sexys 139 Опубликовано 14 января, 2022 подскажите как выключить уборщик трупов в оп 2.2. сам скрипт Дополнено 23 минуты спустя как сделать чтобы аптечки лечили постепенно? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты