Перейти к содержанию

Neptun

Разработчики
  • Публикаций

    691
  • Зарегистрирован

  • Посещение

  • Победитель дней

    9

Весь контент Neptun

  1. Только через правку движка. Можно попробовать через СДК поставить рестриктор и поставить галочку, чтобы он работал для всех локаций, и через его логику уже пускать стандартный таймер, который как раз работает через движок.
  2. Добро. Надо, чтобы НПС во время смерти произнёс определённый звук, делал так же, как и пысы для отряда в путепроводе, но прикол в том, что НПС я убиваю через функцию =kill_npc, и выходит, что игра такой способ убийства не засчитывает, и они умирают молча. Как можно добиться желаемого при том же условии?
  3. Для этого НПС создаётся сквад, и он спавнится в любое время. Урок ТЫК
  4. Так делали пысы. Твоя функция не работает, потому что нет именно подсчёта одинаковых предметов.
  5. Должны быть выполнены все условия. function bar_balamut_kpk_items(first_speaker, second_speaker) local item_sections = { [1] = "device_pda_quest_bar" } local needed = 5 local count = 0 local item_section local function calc(temp, item) if item:section() == item_section then count = count + 1 end end for k,v in pairs(item_sections) do item_section = v get_story_object("actor"):iterate_inventory(calc, actor) -- printf("?bar_balamut_kpk_items? : section [%s] count [%s]", tostring(v), tostring(count)) end return count >= needed end function bar_relocate_items_balamut(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "device_pda_quest_bar", 3) end
  6. Пардон, а как вы её ставили? Я делаю так: local box_1 = get_story_object_id("ид_объекта") level.map_add_object_spot_ser(box_1, "иконка_метки", "описание") Потом удалить метку этой функцией: level.map_remove_object_spot(box_1, "иконка_метки")
  7. Никакой. В смарте создаются специальные точки, которые НПС займут, если начнётся выброс, никакие другие схемы поведения именно из-за выброса мне неизвестны.
  8. Ничего не понял. Как правильно: в вейпоинте название должно быть таким: [имя_смарта_Название_пути] А в самой логике путь читается таким образом: path_walk = Название_пути
  9. У тебя написано в смарте: zat_skad_sniper_1 А в логике уже: [logic@zat_skad_sniper] Единицу потерял.
  10. В meet этого НПС добавляешь строчку: use = {=dist_to_actor_le(5)} self, true Когда игрок приблизится к нему на 5 метров, он автоматом начнёт беседу. Дополнено 1 минуту спустя Проблема не в смарте, а, вероятно, в логике подключённого к нему НПС.
  11. =enable_ui() Без скобок. %=run_postprocess(black:1:false)% У тебя уже написано false, этот процесс не надо останавливать, хотя это не влияет на игру, просто к слову. Дополнено 1 минуту спустя После взаимодействия с тутором логика уходит в nil, как я понимаю. Так вот, останавливать тутор уже не надо. Дополнено 2 минуты спустя Можно сделать и так: =turn_on(second_level_light_2:second_level_light_3)
  12. Что, правда? Вы тестировали на СЛЕПОЙ СОБАКЕ? [hit@dog_1] on_info = {=hitted_on_bone(bip01_head)} %=messege_head_shot%, {!hitted_on_bone(bip01_head)} %=messege_loser% Как бы я не изворачивался, но всё время прилетало сообщение, что я промахнулся, то есть срабатывала вторая часть проверки. Дополнено 25 минуты спустя Серьёзно, именно этой гадской собаке невозможно сделать хедшот.
  13. Ок, и что? Я прописываю в hit мутанта, что: {=hitted_on_bone(bip01_head)} %+info% - ничего не происходит. Вплотную стреляю в голову, точно не промахнулся, и ничего. Что, вызывать проверку из самого бинда?
  14. Не могу сделать проверку, что слепой собаке был нанесен хит в голову. Использую ту же проверку хита по кости, что и для НПС, но что-то не срабатывает она. Такая проверка вообще доступна для монстров и как её реализовать?
  15. Тип звука: undefined. Дополнено 4 минуты спустя Ну, смотри, одна функция выключает фонарик, другая - включает: function disable_actor_torch(actor, npc) local torch = db.actor:object("device_torch") if torch ~= nil and torch:torch_enabled() then torch:enable_torch(false) actor_torch = true end end function enable_actor_torch(actor, npc) db.actor:object("device_torch"):enable_torch(true) end Осталось написать скрипт, который бы вызывал их поочерёдно с радномным интервалом времени.
  16. gamedata\scripts\cam_effector_sets.script В конце создаёшь секцию, типа: название_секции = { start = { }, idle = { {anim = "scenario_cam\\путь\\кат_сцена_1", looped = "false", global_cameffect = true}, {anim = "scenario_cam\\путь\\кат_сцена_2", looped = "false", global_cameffect = true}, }, finish = { } } А потом просто запускаешь как обычную кат-сцену, только изменена будет эта строчка: cam_effector = название_секции Ну и глобальный эффект можешь не прописывать, так как он уже учтён.
  17. on_info = {+info} %=spawn_art_anomal_zone(аномальная_зона:артефакт)% В xr_effects.script добавить: function spawn_art_anomal_zone(actor, obj, p) _g.add_art(p[1], p[2]) end В _g.script добавить: function add_art(zone_name, art_section) local binder = db.anomaly_by_name[zone_name] binder:set_forced_override(art_section) binder:spawn_artefact_randomly() end
  18. Через ActorEditor открой модель и присвой ей новую текстуру.
  19. Всё гораздо прозаичнее. Зашел в сдк, поставил камеру и перевернул её, зациклил на одной секунде и запустил через xr_effects.
  20. У меня только такое получилось: максимально странно, но забавно.
  21. Братан, открой PaintNET и расширенную палитру, всегда оттуда беру значения.
  22. В статье всё максимально разжёвано, и все ответы на ваши вопросы там тоже есть. Всё то же самое, что и в ТЧ, только логика теперь прописывается не внутри, а в отдельном файле.

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек. Оставаясь на сайте, вы подтверждаете свое согласие на их использование. Политика конфиденциальности | Условия использования