Kirgudu 1 238 Опубликовано 2 Июля 2020 Поделиться Опубликовано 2 Июля 2020 @Expropriator, ну, тут уж только тебе ведомо, что ты там со стартом накуролесил. Впрочем, на правильную инициализацию менеджера заданий это влиять всё равно не должно. Там главное, чтобы вызов любого метода менеджера из другого модуля шёл только через получение синглтона инициализированного экземпляра менеджера, например: ogsm_rt_manager.get_rt_manager():register_target(self) Инструмент Ссылка на комментарий
Expropriator 2 118 Опубликовано 2 Июля 2020 Поделиться Опубликовано 2 Июля 2020 (изменено) @Kirgudu, ничего понять не могу, Ладно, сперва вернусь к истокам, к нормальному алспавну и локациям. Может у меня алспавн баганутый получается? И кстати, я не внедряю ЧН локации в общий спавн, может причина, что нет смартов и другого спавна? Изменено 2 Июля 2020 пользователем Expropriator Ссылка на комментарий
Kirgudu 1 238 Опубликовано 3 Июля 2020 Поделиться Опубликовано 3 Июля 2020 (изменено) @Expropriator, теоретически all.spawn, конечно, может влиять. Например, для тех же заданий типа "kill_stalker" одним из свойств является свойство parent, указывающее на того, кто может выдать задание. Это story_id определённого персонажа, и если ты удалил его из спавна, задание с таким родителем будет полностью пропущено при инициализации, а значит не будет учтено при составлении массива task_id_by_type[type]. Таким образом, получается, чтобы ты не наталкивался на вылет, описанный выше, необходимо выполнение трёх условий: 1. Конфиг misc\rt_manager.ltx должен содержать как минимум одно задание типа "kill_stalker"; 2. All.spawn должен обеспечивать спавн как минимум одного персонажа со story_id, указанным в конфиге в заданиях типа "kill_stalker", причём этот спавн должен происходить до инициализации менеджера; 3. Вызов любого метода менеджера должен происходить только через получение его экземпляра: ogsm_rt_manager.get_rt_manager():method_name(). Конечно, менеджер можно доработать так, чтобы он был универсальным и стойким к разным условиям. Но на момент активной разработки ОГСМ такой задачи просто не возникало, поэтому имеем то, что имеем. 15 часов назад, Zander_driver сказал: Может там достаточно проверку if type() == 'table' воткнуть, и всего делов... И кстати, если ты действительно убрал весь классический спавн, тогда причина именно в этом согласно трём правилам, описанным выше. А значит, решение, предложенное @Zander_driver, скорее всего будет для тебя панацеей. Куда воткнуть такую проверку, объяснять не нужно? Вроде все тут - люди опытные. Изменено 3 Июля 2020 пользователем Kirgudu 2 1 Инструмент Ссылка на комментарий
phalcor 60 Опубликовано 4 Июля 2020 Поделиться Опубликовано 4 Июля 2020 А есть ли возможность поменять скриптом предмет в слоте актора? (текущий отправить в инвентарь, а вместо него взять из инвентаря) Ссылка на комментарий
UriZzz 1 004 Опубликовано 5 Июля 2020 Поделиться Опубликовано 5 Июля 2020 @phalcor, в оригинале пожалуй без особо злой чёрной магии нет. В XRay Ext добавлены соответствующие методы. 1 1 Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 5 Июля 2020 Поделиться Опубликовано 5 Июля 2020 Здрасьте. Как в ЧН отследить смену калибра оружия и вообще список установленных апгрейдов? Секция предмета остается той же, в нетпакете таких данных нет (если только они не пишутся в конец в виде набора stringZ). Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Serge_888 114 Опубликовано 6 Июля 2020 Поделиться Опубликовано 6 Июля 2020 У меня тоже вопросик. По ЗП. Нашел на сталкерине: function set_ammo_elapsed(number) void set_ammo_elapsed(int ammo_elapsed) заряжает магазин количеством патронов, равным ammo_elapsed. Размер магазина игнорируется. function unload_magazine() void unload_magazine() разряжает магазин оружия. Оружие должно быть в инвентаре/руках объекта CAI_Stalker. Патроны из ствола пропадают. Аргументов не принимает. А как это должно выглядеть в самом скрипте? Можно примерчик кода. А то, до сих пор в основном использовал функции которые получают значения, а не задают. И вообще, это было в 18-ом году. Сам удивился. Ссылка на комментарий
Serge_888 114 Опубликовано 7 Июля 2020 Поделиться Опубликовано 7 Июля 2020 Upd: Почему не срабатывает? local wpn = db.actor:active_item() local update_ammo = 5 wpn:set_ammo_elapsed(update_ammo) 1 Ссылка на комментарий
Okichi 922 Опубликовано 7 Июля 2020 Поделиться Опубликовано 7 Июля 2020 Уважаемые камрады, подскажите, пожалуйста, работает ли на оригинальном движке команда set_fov для мутантов? Если да - то параметры она принимает в градусах или радианах? Увеличение set_range( new_value ) отрабатывает, а вот на set_fov() никаких изменений отладка не показывает. И второй вопрос - параметр "освещенности" ( luminocity_factor ) для мутантов вообще скриптами можно менять? След от кругов на воде - это тоже след (с) Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 16 Июля 2020 Поделиться Опубликовано 16 Июля 2020 Здрасьте. Как научить NPC обходить ГГ, а не идти напролом? Я так понимаю, список "препятствий" динамический, без точных координат каждого ящика и каждой аномалии, только где он хранится? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
ted.80 293 Опубликовано 16 Июля 2020 Поделиться Опубликовано 16 Июля 2020 1 час назад, Norman Eisenherz сказал: Я так понимаю, список "препятствий" динамический, Вот тут ошибочка, нпс ходят по "нодам" - клеткам расставленным в сдк, а они статические, и предметы заспавленые скриптом - "динамические" они не видят в упор 2 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 @ted.80 Каким тогда образом NPC обходят динамические аномалии в модах? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
mole venomous 3 478 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 10 минут назад, Norman Eisenherz сказал: Каким тогда образом NPC в AMK запросто обходят. Посредством скриптов 1 Здесь могла быть ваша реклама. Ссылка на комментарий
UriZzz 1 004 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 (изменено) @Norman Eisenherz, ну, с аномалиями проще. Во первых они не движутся, во вторых, ты должен быть в курсе что у аномалии два радиуса действия: effective_radius и actor_blowout_radius_percent. И вот какой то из них скрипт и использует для определения границ аномалий. Изменено 17 Июля 2020 пользователем UriZzz Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Kirgudu 1 238 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 @Norman Eisenherz, например https://www.amk-team.ru/forum/topic/6185-skriptovanie/?do=findComment&comment=1325557 А вообще, хорошей практикой будет (а раньше считалось ещё и хорошим тоном) проведение самостоятельного поиска по форуму на интересующую тему. Многие вопросы обсуждались не раз и не два. Вот и запрос по словосочетанию "обход аномалий" легко возвращает интересные для изучения результаты. 1 Инструмент Ссылка на комментарий
mole venomous 3 478 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 https://drive.google.com/drive/folders/14e_F0UqKAhuKtLjvRiQSZxUU0yHjcEJb?usp=sharing Здесь могла быть ваша реклама. Ссылка на комментарий
Zander_driver 10 341 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 (изменено) 10 часов назад, mole venomous сказал: Посредством скриптов Строго говоря, нет. Посредством скриптов добавляются (или удаляются) зоны в список тех, которые надо/не надо обходить. А обход-то сам всегда и во все времена, выполнялся и выполняется движком. 22 часа назад, Norman Eisenherz сказал: Я так понимаю, список "препятствий" динамический, без точных координат каждого ящика и каждой аномалии, только где он хранится? space_restriction_manager.cpp Ну или, если по-старому, то через нетпакеты можно в эти списки (in_restrictions, out_restrictions) что-то добавлять/удалять скриптами. Только, это что-то должно быть (если без правок движка), рестриктором или аномалией. Чтобы туда еще и актор принимался, надо немного движок подправить. Но за идею спасибо. Изменено 17 Июля 2020 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
mole venomous 3 478 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 19 минут назад, Zander_driver сказал: Посредством скриптов добавляются А как же команда AMK это организовала? Поправь меня, если я ошибся. Здесь могла быть ваша реклама. Ссылка на комментарий
Zander_driver 10 341 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 Именно так и организовала, добавляя скриптами через нетпакет, зоны в in/out_restrictions. Как я выше и написал. Не было тогда другого метода. Без правок движка, другого и нету. Ну и, в 2008 году скажем, в амк не было настоящих динамических аномалий. Были "псевдо-динамические", о которых все не-разбирающиеся глубоко в механике, думали что они динамические. Суть была в том что на локации были заспавнено аномалий в несколько раз больше, чем их видно. И бОльшая часть из них была просто в неактивном состоянии, выключена. А при выбросах они включались/выключались. Но т.к. аномалии эти были на самом деле статическими, нпс их естественно обходили. Позже емнип добавили настоящую динамику, ну и механизм обхода выше описанный. Но это уже не скажу в каком году, не следил. 3 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
mole venomous 3 478 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 23 минуты назад, Zander_driver сказал: амк не было настоящих динамических аномалий Я тебя понял 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти