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

Справочник вылетов


ColR_iT

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

@proper70, правильнее не латать и замазывать последствия, а исправлять причины, хотя тема и не проста. ;-)

 

Если разрабы иль какой модмейкер установили ограничивающие рестрикторы - то наверное не просто так, и желательно понять "для чего", тогда и можно исправлять причины, а не прописывать костыли.

Например, есть ограничительные рестрикторы на локации Бар (ТЧ). Для чего они? Один для того, чтобы в бар, где и так тесновато, не заходили все кому можно бродить по локации, а сюжетные посетители не расползались от каждого шороха, да и актору на узких лесенках/проходах будет не разминуться с "посетителями". Второй, на арене, дабы зверье иль "гладиаторы" не вздумали выползать наружу, да и остальным нечего делать на арене, особливо когда там бои.

Вот и получается, что если ты заспавнишь некоего монстра/перса и пропишешь ему идти на арену - получишь отлуп в виде "any vertex in patrol path...".

 

Предложенный тобою вариант порочен тем, что ты сам ставишь ограничитель, чем и ограничиваешь свободу неписям, исключая только то, что они не должны делать и куда не должны ходить, т.е. вместо "фриплея" иль свободной игры ты прописываешь рельсы.

 

Если твой контролер должен сидеть под логикой "mob_home", но почему-то срывается с нее - ну так и ищи причину/ошибку и исправляй ее. То, что ты "посадил его в клетку", может и не важно для вашей задачи и спасает от некоего вылета, но уже не гарантирует, что находясь в клетке контролер отыгрывает заданную ему логику... и может тебе же аукнуться в другом месте/ситуации. И уж советовать всегда так поступать, всех сажая в клетки - не самое разумное и тем более простое решение.

 

Примечание: Каждая гулаговая работа предусматривает возможность установки ограничивающих рестрикторов (именно эту работу

!). Если приходится дублировать глобальными рестрикторами, да еще прописывая их в алл.спавн - то явно с логикой работ и схем не все в порядке, и нужно это править, а не плодить костыли, которые могут и в "грабли" превратиться.

 

 

Изменено пользователем Artos
  • Нравится 1

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Поделиться этим сообщением


Ссылка на сообщение

Справедливости ради (и не только) замечу, что 'оригинал' (ТЧ) все же читает из сторонних файлов секцию 'smart_terrains', что видно, например, в se_respawn.script, где вычитываются настройки респавна и все неписи/монстры (не)ищут работу в гулагах. Также, в секциях спавна (см. в папке creatures) движок читает строку с указанным парамером 'custom_data' и соответственно внешний файл... так что все же можно задавать игнорирование гулагов (и не только) не только в алл.спавне. ;-)

Однако это не относится к тому, о чем говорит @proper70, т.к. в его случае речь идет только о логике, т.е. 'xr_logic' читает из внешнего файла только секцию [logic], игнорируя все другое. Соответственно как раз запрет на гулаги в его случае и не работает...

(однако все это уже для топиков "ковырялок", и не имеет отношения к данному топику)

  • Полезно 1

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Поделиться этим сообщением


Ссылка на сообщение

@abramcumner, а вот это про что(?):

 

..запрет стоит не в алспауне а вынесен в cfg файл...

 

К сожалению, многими слово "кастомдата" ассоциируется именно со строками из распакованного алл.спавна и они не подозревают о существовании иного...

"Кастомдата" (aka customdata) существует в трех ипостасях: в виде параметра в секции спавна, в виде расписанного конфига в соотв.секции в all.spawn'е (который перебивает/подменяет параметр в секции спавна) и уже в игре в виде данных самого объекта.

И то, что именно в "кастомдате" в алл.спавне нередко видят перенаправление логики во внешний файл, приводит к путанице, что воспринимают этот файл не как внешний конфиг именно логики, а как внешнюю "кастомдату". Что и произошло в рассматриваемом случае, кто-то когда-то вместо только логики указал все, что относится к кастомдате и это пошло гулять далее, в надежде что это работает...

 

Иными словами, параметры, относящиеся именно к 'customdata' объектов следует задавать или в all.spawn'е или в соотв.параметре секции объекта (т.н. секции спавна), тогда и будут читаться и запреты на гулаги и иные условия. А то, что прописано в [logic] cfg = "внешний_файл" - это вынеcенный конфиг логики и не более.

 

Примечание: в se_monster/smart_terrain  тоже нет чтения внешних файлов, в них читаются параметры из того, что вернет движок: 'obj:spawn_ini()' - т.е. то, что он (движок) ранее прочитал из секции спавна перед моментом спавна объекта и запомнил в кастомдате заспавненного объекта.

Изменено пользователем Artos
  • Нравится 1
  • Полезно 1

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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