Overf1rst 1 441 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 16 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
progkuchumov 5 Опубликовано 1 августа, 2021 Всем привет! Подскажите пожалуйста, как сделать, чтобы при подходе к НПС диалог появлялся автоматически? Я как ни пробовал, у меня не получается. Что я сделал: 1. Создал спейс рестриктор, где стоит нужный непись. 2. Прописал ему логику, чтобы при заходе в рестриктор запускалась нужная функция. Здесь всё норм. Пробовал в этой функции для теста другое что-нибудь делать, например, спавн других НПС - логика срабатывает. Но вот что в моей функции написать, чтобы автоматом диалог начинался - не пойму. В гайдах находил db.actor:run_talk_dialog(npc), но это похоже для тени чернобыля только, потому что у меня эта функция не заработала. Дополнено 0 минут спустя Разобрался сам. Надо было неписю логику прописывать, а не спейс рестриктор создавать. Чего-то я намудрил ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 832 Опубликовано 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 832 Опубликовано 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 832 Опубликовано 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 577 Опубликовано 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 441 Опубликовано 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 577 Опубликовано 3 августа, 2021 Могу ли я, имея имя секции артефакта в скрипте, получить его параметры? Например, свойства, иконку, описание и тд. Как оформить тему Правила форума Вопросы по сайту Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Overf1rst 1 441 Опубликовано 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 110 Опубликовано 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 Еще один злодей! 20 ГБ ОЗУ DDR3 2133 МГц (Разносорт) Процессор Intel Core i5 7600k 3.80 ГГц Видеокарта Gigabyte Radeon RX 580 8192 МБ GDDR5 (Micron) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
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 110 Опубликовано 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) Еще один злодей! 20 ГБ ОЗУ DDR3 2133 МГц (Разносорт) Процессор Intel Core i5 7600k 3.80 ГГц Видеокарта Gigabyte Radeon RX 580 8192 МБ GDDR5 (Micron) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
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 791 Опубликовано 4 августа, 2021 (изменено) Kamr4d В чем проблема!? Создаете ppe-файл с требуемыми настройками и запускаете стандартным методом. А если действительно хотите запуск эффектов секцией с набром цифровых параметров - модифицируйте движок. Изменено 4 августа, 2021 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kamr4d 21 Опубликовано 4 августа, 2021 denis2000 Спасибо за ответ. А как мне создать .ppe файл именно с такими настройками? Дельных уроков и статей по этой теме нет или очень мало Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AziatkaVictor 3 577 Опубликовано 4 августа, 2021 Я так понял, если указать в XML тег complex_mode="1", то функция SetEllipsis() перестаёт работать. Как это починить? И как исправить отображение текстуры у широкоформатников при InitTexture()? Я прописал SetTextureRect(Frect():set(0,0,102,128)), текстура обрезается, но все-равно выглядит растянуто. Оригинал по размерам 128 на 128. Но при этом, текстура "ui\ui_noise" выглядит нормально. Как оформить тему Правила форума Вопросы по сайту Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 791 Опубликовано 4 августа, 2021 37 минут назад, Kamr4d сказал: А как мне создать .ppe файл именно с такими настройками? В комплекте SDK есть специальная программа Postprocess.exe. Она предельно простая, разобраться, как настраивать эффекты не сложно. Для начала выставьте четыре кейфрейма по таймингам согласно конфигу (time, time_attack, time_release), затем в центральных точках параметры по отдельным эффектам опять же согласно цифрам из конфига. Сохраните в файл и проиграйте его в игре, если эффектор будет отличаться от требуемого, то придется играть с параметрами индивидуально (но не думаю, что это потребуется). 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kamr4d 21 Опубликовано 4 августа, 2021 denis2000 Благодарю за помощь Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 4 августа, 2021 Подскажите пожалуйста, в каком ui файле можно поправить координаты полоски загрузки на загрузочном экране, хочу шире и толще ее слелать ?! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Fly2 9 Опубликовано 4 августа, 2021 Доброго времени суток, господа, хочу поинтересоваться у опытных движкоправов и скриптеров насчёт создания скриптов. Меня терзают вопросы касательно того, нужно ли в сталкере жёстко уходить в программирование (то есть учить с++), для того чтобы писать скрипты уровня "добавить новый слот под патроны/бинокль для CoP", или создание, например, биорадара/разгрузки, контейнеров для артов и вот подобных манипуляций с интерфейсом и симуляцией? С чего начинается изучение движка (статьи, уроки может есть?), или это здесь доступно только "избранным"? Просто, насколько я знаю, для написания скриптов в игре используется язык Lua, принцип работы с котором я на базовом уровне понимаю и готов его изучать (мне это, в принципе и самому интересно), а вот с плюсами связываться желания нет вообще никакого ибо я наслышан об этом достаточно (С от слова "смерть" ++ - это два ряда могил, решивших постичь плюса без навыков программирования?) . И ещё такой вопрос, сильно ли работа с движком и скриптами принципиально различаются между разными платформами (тч, зп, чн)? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты