Overf1rst 1 490 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 786 Опубликовано 1 августа, 2021 Кажется я понял причину вылета. Скажите, пожалуйста, в этих логиках все хорошо? Спойлер [logic@building_sector] active = walker@1 suitable = {=check_npc_name(building_sector)} true prior = 200 [walker@1] path_walk = sector_walk path_look = sector_look meet = no_meet on_info = {+pri_sector_building_start_dialog_open_info} walker@2 invulnerable = true combat_ignore_cond = true gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false def_state_moving = rush def_state_standing = threat_danger [walker@2] path_walk = sector_walk path_look = sector_look meet = meet@2 on_info = {+pri_sector_quest_place_door_open_info} walker@3 invulnerable = true combat_ignore_cond = true gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false def_state_moving = rush def_state_standing = threat_danger [meet@2] close_snd_hello = nil close_snd_bye = nil close_victim = nil far_victim = nil close_distance = 0 far_distance = 0 close_snd_distance = 3 use = {-pri_sector_building_start_dialog_end_info !actor_enemy =dist_to_actor_le(20)} self, true allow_break = false trade_enable = false meet_on_talking = false meet_dialog = pri_sector_building_start_dialog [walker@3] path_walk = sector_2_walk path_look = sector_2_look meet = no_meet on_info = {=npc_in_zone(fourth_level_sector_quest_restr)} walker@4 %+sector_in_zone_info% on_actor_dist_ge_nvis = 50 | walker@4 %=kill_actor% invulnerable = true combat_ignore_cond = true gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false def_state_moving = rush def_state_standing = threat_danger [walker@4] path_walk = sector_2_walk path_look = sector_2_look meet = no_meet invulnerable = true combat_ignore_cond = true gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false def_state_moving = rush def_state_standing = threat_danger Спойлер [logic@building_poltergest_squad] active = mob_home@pri_start suitable = {=target_squad_name(building_poltergest_squad)} true prior = 70 monster_job = true [mob_home@pri_start] path_home = poltergeist_walk out_restr = pri_b35_military_out_restr home_min_radius = 10 home_max_radius = 20 aggressive = true Дополнено 15 минуты спустя Все, спасибо всем! Причина вылета устранена! 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lenya056 1 Опубликовано 1 августа, 2021 (изменено) Я создал смарт но вот такая ошибка: ...call of pripyat\gamedata\scripts\xr_motivator.script:161: attempt to index local 'smart_task' (a nil value) Вот его логика [smart_terrain] max_population = 1 [exclusive] zat_skad_sniper_1 = zaton\zat_skad_sniper_1.ltx Изменено 1 августа, 2021 пользователем Lenya056 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
progkuchumov 5 Опубликовано 1 августа, 2021 Всем привет! Подскажите пожалуйста, как сделать, чтобы при подходе к НПС диалог появлялся автоматически? Я как ни пробовал, у меня не получается. Что я сделал: 1. Создал спейс рестриктор, где стоит нужный непись. 2. Прописал ему логику, чтобы при заходе в рестриктор запускалась нужная функция. Здесь всё норм. Пробовал в этой функции для теста другое что-нибудь делать, например, спавн других НПС - логика срабатывает. Но вот что в моей функции написать, чтобы автоматом диалог начинался - не пойму. В гайдах находил db.actor:run_talk_dialog(npc), но это похоже для тени чернобыля только, потому что у меня эта функция не заработала. Дополнено 0 минут спустя Разобрался сам. Надо было неписю логику прописывать, а не спейс рестриктор создавать. Чего-то я намудрил ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 882 Опубликовано 2 августа, 2021 (изменено) 3 часа назад, progkuchumov сказал: чтобы при подходе к НПС диалог появлялся автоматически? В meet этого НПС добавляешь строчку: use = {=dist_to_actor_le(5)} self, true Когда игрок приблизится к нему на 5 метров, он автоматом начнёт беседу. Дополнено 1 минуту спустя 4 часа назад, Lenya056 сказал: Я создал смарт но вот такая ошибка: Проблема не в смарте, а, вероятно, в логике подключённого к нему НПС. Изменено 2 августа, 2021 пользователем Neptun 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lenya056 1 Опубликовано 2 августа, 2021 Neptun Вот логика НПС [logic@zat_skad_sniper] active = walker [walker] path_walk = zat_skad_sniper_walk Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 882 Опубликовано 2 августа, 2021 9 минут назад, Lenya056 сказал: Вот логика НПС У тебя написано в смарте: zat_skad_sniper_1 А в логике уже: [logic@zat_skad_sniper] Единицу потерял. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lenya056 1 Опубликовано 2 августа, 2021 (изменено) Neptun Название в смарте я поменял Я так понял spawn_point в squad_descr это одиночный вейпоинт типо: [zat_skad_sniper_spawn] points = p0 p0:name = wp00 p0:position = 115.6721496582,2.2605323791504,183.47236633301 p0:game_vertex_id = 316 p0:level_vertex_id = 1165999 Изменено 2 августа, 2021 пользователем Lenya056 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 882 Опубликовано 2 августа, 2021 4 часа назад, Lenya056 сказал: Я так понял spawn_point в squad_descr это одиночный вейпоинт типо: Ничего не понял. Как правильно: в вейпоинте название должно быть таким: [имя_смарта_Название_пути] А в самой логике путь читается таким образом: path_walk = Название_пути Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lenya056 1 Опубликовано 2 августа, 2021 Neptun Извиняюсь за тупость но вот все связанные файлы alife_zaton [1866] ; cse_abstract properties section_name = smart_terrain name = zat_b500 position = 115.6721496582,2.2605323791504,183.47236633301 direction = 0.149253994226456,0.00221799989230931,-0.0149170001968741 ; cse_alife_object properties game_vertex_id = 316 distance = 17.5 level_vertex_id = 1165999 object_flags = 0xffffff3e custom_data = <<END [smart_terrain] max_population = 1 [exclusive] zat_skad_sniper = zaton\zat_skad_sniper_1.ltx ;cfg = scripts\zaton\smart\zat_b500.ltx END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2 ; cse_alife_space_restrictor properties restrictor_type = 3 ; se_smart_terrain properties way_zaton [zat_b500_skad_sniper_spawn] points = p0 p0:flags = 0x1 p0:name = wp00 p0:position = 115.6721496582,2.2605323791504,183.47236633301 p0:game_vertex_id = 316 p0:level_vertex_id = 1165999 [zat_b500_skad_sniper_walk] points = p0,p1,p2,p3 p0:flags = 0x1 p0:name = wp00 p0:position = 115.6721496582,2.2605323791504,183.47236633301 p0:game_vertex_id = 316 p0:level_vertex_id = 1165999 p1:name = wp01 p0:flags = 0x2 p1:position = 116.11437988281,1.9611202478409,190.39184570313 p1:game_vertex_id = 316 p1:level_vertex_id = 1166012 p1:links = p2(1),p0(1) p2:name = wp02 p0:flags = 0x4 p2:position = 110.01203918457,1.3603667020798,189.93905639648 p2:game_vertex_id = 316 p2:level_vertex_id = 1155278 p2:links = p3(1),p1(1) p3:name = wp03 p0:flags = 0x8 p3:position = 116.53996276855,2.2526621818542,187.29321289063 p3:game_vertex_id = 316 p3:level_vertex_id = 1166010 p3:links = p2(1) squad_descr [zat_skad_sniper_squad]:online_offline_group faction = stalker npc = zat_skad_sniper_1 target_smart = zat_b500 spawn_point = skad_sniper_spawn simulation zat_skad_sniper_squad = zat_b500 файл логики нпс [logic@zat_skad_sniper] active = walker [walker] path_walk = skad_sniper_walk Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AziatkaVictor 3 875 Опубликовано 2 августа, 2021 Такой вопрос по GUI. Могу ли я в объекте типа CUIListBoxItem хранить таблицу Lua? Естественно, чтобы её не было видно, а отображался просто st_текст (Эту часть я уже сделал). Конечно, я мог бы просто отображать id или техническое название, но это бы выглядело странно... Отбой, все решилось этой строчкой: _itm.id = _itm:AddTextField(массив.id, 40) Как оформить тему Правила форума Вопросы по сайту Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 3 августа, 2021 Добрый день. Для квеста создал аномальную зону. Все аномалии в этой зоне имеют стори-ид. Такие: stc_angel_anomali_1 stc_angel_anomali_2 и т.д. Всего аномалий больше сотни. Их нужно отключить. Можно написать в логике рестриктора =disable_anomaly(stc_angel_anomali_1) =disable_anomaly(stc_angel_anomali_2) Можно ли отключить их одной функцией, если аномалий, допустим, 100? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Overf1rst 1 490 Опубликовано 3 августа, 2021 В логику: %=disable_stc_anomalies% В xr_effects.script: function disable_stc_anomalies(actor, npc, p) for i = 1, 100 do disable_anomaly(actor, npc, {"stc_angel_anomali_" .. i}) end end 1 1 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AziatkaVictor 3 875 Опубликовано 3 августа, 2021 Могу ли я, имея имя секции артефакта в скрипте, получить его параметры? Например, свойства, иконку, описание и тд. Как оформить тему Правила форума Вопросы по сайту Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Overf1rst 1 490 Опубликовано 3 августа, 2021 Шаблон: local param = system_ini():r_string(item_section, param_name) Пример: local name = system_ini():r_string("wpn_ak74", "inv_name") 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
o4kostr3l 57 Опубликовано 3 августа, 2021 denis2000 Не знаете, возможно ли как-то поменять имя у гг в онлайне, т.е. не перезаходя в игру Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hozar_2002 127 Опубликовано 4 августа, 2021 o4kostr3l Обсуждалось на второй страничке этого топика. function change_actor_name(new_name) local sobj = alife():actor() local tbl = stpk_utils.get_object_data(sobj) tbl.character_name = new_name stpk_utils.set_object_data(tbl, sobj) end Вызывать например как change_actor_name("Strelok1986"). Не помню нужно ли транслитить строку. Делается это функцией game.translate_string(string). Файл, необходимый для работы скрипта, можно скачать с сообщения по ссылке. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
o4kostr3l 57 Опубликовано 4 августа, 2021 (изменено) 6 часов назад, Hozar_2002 сказал: o4kostr3l Обсуждалось на второй страничке этого топика. function change_actor_name(new_name) local sobj = alife():actor() local tbl = stpk_utils.get_object_data(sobj) tbl.character_name = new_name stpk_utils.set_object_data(tbl, sobj) end Вызывать например как change_actor_name("Strelok1986"). Не помню нужно ли транслитить строку. Делается это функцией game.translate_string(string). Файл, необходимый для работы скрипта, можно скачать с сообщения по ссылке. Спасибо. Саму функцию, как я понять, вписать в xr_effects.script, да? Изменено 4 августа, 2021 пользователем o4kostr3l Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hozar_2002 127 Опубликовано 4 августа, 2021 1 минуту назад, o4kostr3l сказал: xr_effects Для нее немного придется переделать. function change_actor_name(actor, npc, p) local sobj = alife():actor() local tbl = stpk_utils.get_object_data(sobj) tbl.character_name = p[1] stpk_utils.set_object_data(tbl, sobj) end Применять в логике примерно change_actor_name(st_achievement_13_name) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
o4kostr3l 57 Опубликовано 4 августа, 2021 6 минут назад, Hozar_2002 сказал: Для нее немного придется переделать. function change_actor_name(actor, npc, p) local sobj = alife():actor() local tbl = stpk_utils.get_object_data(sobj) tbl.character_name = p[1] stpk_utils.set_object_data(tbl, sobj) end Применять в логике примерно change_actor_name(st_achievement_13_name) Спасибо огромное. Вы мне сильно помогли Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kamr4d 21 Опубликовано 4 августа, 2021 Всем доброго дня. Есть ли возможность наложить на ГГ эффект не .ppe, а эффектора, например детекта бюрера из ТЧ? Прописать я его прописал, мне нужна скриптовая строка для вызова непосредственно этого эффекта [burer_scan_effector] duality_h = 0.003 duality_v = 0.002 blur = 1.5 gray = 0.3 noise_intensity = 0.0 noise_grain = 2 noise_fps = 8 color_base = 0.55,0.5,0.5;0.637,0.442,0.456 color_gray = 0.333,0.333,0.333 color_add = 0.05,0.0,0.0 time = 10.00 time_attack = 0.3 ; fade in time_release = 0.85 ; fade out Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 4 августа, 2021 (изменено) Kamr4d В чем проблема!? Создаете ppe-файл с требуемыми настройками и запускаете стандартным методом. А если действительно хотите запуск эффектов секцией с набром цифровых параметров - модифицируйте движок. Изменено 4 августа, 2021 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kamr4d 21 Опубликовано 4 августа, 2021 denis2000 Спасибо за ответ. А как мне создать .ppe файл именно с такими настройками? Дельных уроков и статей по этой теме нет или очень мало Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AziatkaVictor 3 875 Опубликовано 4 августа, 2021 Я так понял, если указать в XML тег complex_mode="1", то функция SetEllipsis() перестаёт работать. Как это починить? И как исправить отображение текстуры у широкоформатников при InitTexture()? Я прописал SetTextureRect(Frect():set(0,0,102,128)), текстура обрезается, но все-равно выглядит растянуто. Оригинал по размерам 128 на 128. Но при этом, текстура "ui\ui_noise" выглядит нормально. Как оформить тему Правила форума Вопросы по сайту Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 4 августа, 2021 37 минут назад, Kamr4d сказал: А как мне создать .ppe файл именно с такими настройками? В комплекте SDK есть специальная программа Postprocess.exe. Она предельно простая, разобраться, как настраивать эффекты не сложно. Для начала выставьте четыре кейфрейма по таймингам согласно конфигу (time, time_attack, time_release), затем в центральных точках параметры по отдельным эффектам опять же согласно цифрам из конфига. Сохраните в файл и проиграйте его в игре, если эффектор будет отличаться от требуемого, то придется играть с параметрами индивидуально (но не думаю, что это потребуется). 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kamr4d 21 Опубликовано 4 августа, 2021 denis2000 Благодарю за помощь Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты