-
Публикаций
2 042 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Тип контента
Профили
Форумы
Блоги
Календарь
Новости
Моды
Весь контент denis2000
-
Скелеты стандартной модели Сидора и модели на скелете обычных сталкеров ЕСТЕСТВЕННО отличаются, а значит анимации не совместимы. Соответственно конфиг, спавн, логика для таких моделей разная! Определитесь, какую модель вы используете и настройте все для нее. Если планируется использовать обе модели, то каждая из них должна будет иметь свое назначение, свою спан секцию, свой спавн/удаление, свою логику (от скрипта схемы поведения до конфига). Похоже, что ХУД-анимации для оружия не корректные.
-
Yura001 Получаете координаты ГГ, по ним ищите координаты ближайшего левел вертекса, тепортируете на них НПС. В коде выглядит примерно так: function teleport_npc_to_actor(npc) npc:set_npc_position(level.vertex_position(db.actor:level_vertex_id())) end Дополнено 5 минуты спустя Kamr4d Как то так: ranks.get_obj_rank_name(npc) == "veteran"
-
Stepan_sovok1917 Начните с понимания, что такое рестриктор и как его используют. А далее четко ставим техзадачу и средства ее реализации. Видео прикольное, но информации ноль. Задать задержку выполнения функции можно методом level.add_call : local end_of_timer = time_global() + 2000 --Задержка 2000 мс level.add_call( function() if end_of_timer < time_global() then return true end end, function() ..... end ) lua_help.script
-
Kalambur Объект на который будет установлена метка этого задания указан в параметре target. По сути это кондлист: target = {условие установки метки} стори_ид_объекта, ... Stepan_sovok1917 Логика рестриктора: [logic] active = sr_idle@waiting_1 [sr_idle@waiting_1] on_game_timer = 200 | sr_idle@waiting_1 %=Первая_функция% [sr_idle@waiting_2] on_game_timer = 400 | nil %=Вторая_функция% on_game_timer = 200 - время в игровых секундах. on_timer = 2000 - время в реальных миллисекундах.
-
AsuraH В чем проблема в логе написано. Настройте Bone Parts (пункт в меню Model). Как нужно распределить суставы гуглите.
-
Paradox27kms К сожалению, без лога или других подробностей, что то посоветовать вряд ли получиться.
-
liner Если вейпоинты (или смарт-коверы) указаны в нескольких работах (не важно эксклюзивные это работы или дефолтные, которые формируются автоматически при помощи gulag_general.script) то НПС будут их занимать одновременно ведь скрипт назначающий НПС на работы делает это ориентируясь на общую таблицу работ на смарте, а не на вейпоинты или смарт-ковкры. Он будет считать, что это РАЗНЫЕ работы и спокойно назначать туда НПС.
-
Kamr4d В настройки Квеста добавляете параметр: wait_time = 1000 - время на выполнение квеста в игровых секундах. В скрипт task_objects.script возвращаете чтение этого параметра в функции CGeneralTask:__init: self.wait_time = utils.cfg_get_number(task_ini, id, "wait_time", nil, false, nil) Ну или же в логике рестриктора обслуживающего эту линейку квестов добавляете таймер, который по истечении заданного времени выдаст инфопорцию на провал квеста (логику таймера не привожу примеров масса в оригинале). Заготовки при себе нет, но это довольно просто. В скрипте gulag_general.script смотрите как добавляется логика для НПС в смартковерах (XR_ANIMPOINT), делаете аналогично но с более высоким приоритетом работы и в прекондишене работы указываете, что она доступна только при выбросе (как в работе типа SURGE). Собственно все - добавляете смртковеры с соответствующими именами и настройками, вот и работы готовы.
-
Встречный вопрос: каким образом задана логика поведения этих НПС. Абсолютно верно НПС (или целиком сквадам) которым задан параметр story id от выброса не умирают, поскольку этот параметр обычно означает квестового НПС/сквад. Если вам нужно чтобы НПС/сквад погибал вне укрытия этот параметр следует удалить.