Перейти к контенту

Рекомендуемые сообщения

@Expropriator, ну, тут уж только тебе ведомо, что ты там со стартом накуролесил. :) Впрочем, на правильную инициализацию менеджера заданий это влиять всё равно не должно. Там главное, чтобы вызов любого метода менеджера из другого модуля шёл только через получение синглтона инициализированного экземпляра менеджера, например:
ogsm_rt_manager.get_rt_manager():register_target(self)

Ссылка на комментарий

@Kirgudu, ничего понять не могу, Ладно, сперва вернусь к истокам, к нормальному алспавну и локациям. Может у меня алспавн баганутый получается?

 

И кстати, я не внедряю ЧН локации в общий спавн, может причина, что нет смартов и другого спавна?

Изменено пользователем Expropriator

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

@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, скорее всего будет для тебя панацеей.

Куда воткнуть такую проверку, объяснять не нужно? Вроде все тут - люди опытные.

Изменено пользователем Kirgudu
  • Согласен 2
  • Полезно 1
Ссылка на комментарий

@phalcor, в оригинале пожалуй без особо злой чёрной магии нет. В XRay Ext добавлены соответствующие методы.

  • Спасибо 1
  • Согласен 1

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий

Здрасьте.

 

Как в ЧН отследить смену калибра оружия и вообще список установленных апгрейдов? Секция предмета остается той же, в нетпакете таких данных нет (если только они не пишутся в конец в виде набора stringZ).

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

У меня тоже вопросик. По ЗП. Нашел на сталкерине:

function set_ammo_elapsed(number) 
void set_ammo_elapsed(int ammo_elapsed)
заряжает магазин количеством патронов, равным ammo_elapsed. Размер магазина игнорируется.

 

function unload_magazine()
void unload_magazine()
разряжает магазин оружия. Оружие должно быть в инвентаре/руках объекта CAI_Stalker. Патроны из ствола пропадают. Аргументов не принимает.
 

А как это должно выглядеть в самом скрипте? Можно примерчик кода. А то, до сих пор в основном использовал функции которые получают значения, а не задают. И вообще, это было в 18-ом году. Сам удивился.

 

Ссылка на комментарий

Уважаемые камрады, подскажите, пожалуйста, работает ли на оригинальном движке команда set_fov для мутантов? 
Если да - то параметры она принимает в градусах или радианах?

Увеличение set_range( new_value ) отрабатывает, а вот на set_fov() никаких изменений отладка не показывает.

И второй вопрос - параметр "освещенности" ( luminocity_factor ) для мутантов вообще скриптами можно менять?

След от кругов на воде - это тоже след (с)

Ссылка на комментарий

Здрасьте.

 

Как научить NPC обходить ГГ, а не идти напролом? Я так понимаю, список "препятствий" динамический, без точных координат каждого ящика и каждой аномалии, только где он хранится?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
1 час назад, Norman Eisenherz сказал:

Я так понимаю, список "препятствий" динамический,

Вот тут ошибочка, нпс ходят по "нодам" - клеткам расставленным в сдк, а они статические, и предметы заспавленые  скриптом  - "динамические" они не видят в упор

  • Согласен 2
Ссылка на комментарий
10 минут назад, Norman Eisenherz сказал:

Каким тогда образом NPC

в AMK запросто обходят. Посредством скриптов

  • Согласен 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

@Norman Eisenherz, ну, с аномалиями проще. Во первых они не движутся, во вторых, ты должен быть в курсе что у аномалии два радиуса действия:

effective_radius и actor_blowout_radius_percent.

И вот какой то из них скрипт и использует для определения границ аномалий.

Изменено пользователем UriZzz

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий

@Norman Eisenherz, например https://www.amk-team.ru/forum/topic/6185-skriptovanie/?do=findComment&comment=1325557

А вообще, хорошей практикой будет (а раньше считалось ещё и хорошим тоном) проведение самостоятельного поиска по форуму на интересующую тему. Многие вопросы обсуждались не раз и не два. Вот и запрос по словосочетанию "обход аномалий" легко возвращает интересные для изучения результаты.

  • Согласен 1
Ссылка на комментарий
10 часов назад, mole venomous сказал:

Посредством скриптов

Строго говоря, нет. Посредством скриптов добавляются (или удаляются) зоны в список тех, которые надо/не надо обходить. А обход-то сам всегда и во все времена, выполнялся и выполняется движком.

 

22 часа назад, Norman Eisenherz сказал:

Я так понимаю, список "препятствий" динамический, без точных координат каждого ящика и каждой аномалии, только где он хранится?

space_restriction_manager.cpp :rolleyes:

Ну или, если по-старому, то через нетпакеты можно в эти списки (in_restrictions, out_restrictions) что-то добавлять/удалять скриптами. Только, это что-то должно быть (если без правок движка), рестриктором или аномалией.

Чтобы туда еще и актор принимался, надо немного движок подправить. Но за идею спасибо.

Изменено пользователем 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.

Ссылка на комментарий
19 минут назад, Zander_driver сказал:

Посредством скриптов добавляются

А как же команда AMK это организовала? Поправь меня, если я ошибся.

Здесь могла быть ваша реклама.

Ссылка на комментарий

Именно так и организовала, добавляя скриптами через нетпакет, зоны в 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.

Ссылка на комментарий
23 минуты назад, Zander_driver сказал:

амк не было настоящих динамических аномалий

Я тебя понял

  • Нравится 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...