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

denis2000

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

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

  • Посещение

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

    1

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

  1. Boomer Нет проблем. Удаляйте штатной функцией destroy_object по стори_ид. Но убедитесь что труп не удаляется release_body_manager.script
  2. На локации agroprom нет Аи-сетки, проверяйте файл level.ai в соответствующей папке. Тима Кот А лог будет, или можно начинать гадать?
  3. Сталкер из прошлого [logic] active = sr_idle [sr_idle] on_actor_inside = {+vasyan_info} % =send_tip(...)% nil, % =teleport_actor(...)% Maslina В SDK редактируете АИ-сетку, сохраняете локацию, Compile->Make AI-Map, далее компиляции сетки на драфте при помощи xrAI, далее верификация при помощи xrAI, не валидна цикл повторить. Обратите внимание в логе ДВЕ точки. Отсутствует связь между ними, ваша задача это устранить. Да красная нода - это баг, но кто сказал, что единственный!?
  4. В режиме редактирования АИ-сетки выделите нужный участок при помощи курсора. Выделенный участок заметно светлее не выделенного. Красный квадрат - это нода АИ-сетки не связанная ни с одной из соседних. Да это баг. Ее можно удалить (если она не нужна) или присоединить к соседним нодам. Это решит проблему в данном конкретном месте сетки. Нет только АИ-сетку. Ее можно компилировать на драфте, до тех пор пока не устраните все проблемы с сеткой. После этого можно делать чистовую компиляцию.
  5. Это и ежу понятно, определение переменной присутствует? Я бы делал так: mod_opt_ini = ... function food_on_rad_check() if mod_opt_ini:section_exist("mod_option") and mod_opt_ini:line_exist("food_on_rad") then return mod_opt_ini:r_bool("mod_option","food_on_rad") else return false end end И проверка наличия параметра есть и структура проще. Хотя и ваша функция будет работать, но если вы абсолютно уверены в наличии файла и соответствующих параметров в секциях.
  6. Maslina Это сообщение означает, что на локации есть как минимум два "куска" АИ-сетки (а как правило гораздо больше) которые не связаны между собой (то есть невозможно построить маршрут из точки 512 в точку 23495). Ваша задача в SDK соединить эти участки, скомпилировать сетку и проверить ее валидность снова (и так до полной связности сетки). Чем чревата несвязанная АИ-сетка - глюками ИИ при построении маршрутов на ней.
  7. К сожалению нет. Придется ковырять все объекты с анимацией перебором.
  8. dasher Да со спавном вранов все предельно просто: 1. Создаете на локации несколько точек для рандомного спавна воронов. 2. Создаете рестриктор-спавнер с логикой: [logic] active = sr_crow_spawner [sr_crow_spawner] max_crows_on_level = 7 ;Очевидно - максимальное количество воронов на локации spawn_path = levelname_crow_spawn_1, levelname_crow_spawn_2, levelname_crow_spawn_3, levelname_crow_spawn_4, levelname_crow_spawn_5 ;точки на локации для рандомного спавна воронов 3. Все. Mervin62 Если параметр "skeleton_name" не указан, то никакая анимация играться не будет не автоматически ни по команде и соответственно никакой проблемы нет. А вот если указана анимация, то движек считывает из параметра "skeleton_name" ее имя, затем ищет ее в модели или прикрепленном файле анимаций. Вот на этом этапе происходит сбой. То есть или имя анимации считалось не верно (возможно лишние пробелы или символы табуляции) или имя считано верно, но ее нет в модели (к сожалению в сообщение о проблеме не предусмотрено выводить ни имя анимации ни имя модели). К стати а вылет этот происходит при загрузке уровня или при перемещении по локации?
  9. Mervin62 Подобные объекты, как правило, не имеют логики вообще, анимация задана параметром skeleton_name в all.spawn (в териминалогии ACDC) или Animation в SDK. Они делятся на два типа: с зацикленной анимацией и линейной анимацией. С зацикленной играю ее постоянно (так делали бензогенераторы в ЧН, вентилятор на Юпитере у начальника Долга), а объекты с линейной анимацией часто управляются из логики другого объекта рестриктора или физического (подъемный мост в Лиманск, гермодвери в путепроводе).
  10. Я об этом и говорил, просто подложить файл спавна может не прокатить и его придется корректировать, это и будет являться адаптацией спавна. Дополнено 4 минуты спустя Neptun Насколько я помню, сам SGM сейв не делает, он лишь перехватывает событие сохранения игры и добавляет свои параметры в специальный отдельный файл отличный от сейва движка. Конкретно в SGM 2.2 событие сохранение автосейва при переходе на другую локацию перехватывается в скрипте sgm_utils.script комментарий "Фиксация автосохранения": if sgm_functions.read_variable("currert_level")~=nil then if sgm_functions.read_variable("currert_level")~=level.name() then sgm_functions.write_variable("currert_level",level.name()) sgm_flags.string_savegame_type="autosave" data_param_save_game(user_name().."-".."autosave") end end Дополнено 13 минуты спустя Какой кошмар! Используйте стандартную функцию из xr_effects.script remove_item.
  11. Не совсем так. Параметр fixed_bones в данной секции нужен для того, чтобы при добавлении объекта dynamic_objects\devices\dev_vodka\vodka_destroy при помощи SDK автоматически выставлялся параметр fixed_bones в настройках объекта. Этот параметр при компиляции спавна попадет в файл all.spawn откуда игровой движек его считает. То, что движок читает этот параметр напрямую из файла конфига, я не уверен, и кто при этом приоритетнее all.spawn или конфиг. NitWaifu Понял, вы движетесь в правильном направлении, но перекомпилировать АИ-сетку было не нужно если вы ее не меняли, но уж если изменили, то после компиляции сетки, собирается спавн. Теперь из конфигов придется удалить те объекты которые вы удалили на локации. В частности смарты спавна при старте игры: файл simulation.ltx секция [start_position_имя_локации]. Ее нужно очистить и заполнять по мере настройки спавна. Сталкер из прошлого А как она может сработать если переменная questobject_name в функцию не предается? Или переменную передавайте или прямо имя объекта внесите в функцию.
  12. NitWaifu Приведенный вылет означает, что назначенный смарт для спавна не существует. Это опять проблема all.spawn в котором нет необходимых объектов. Напомните, что вы хотели сделать в целом. Зачем редактировали АИ-сетку и что добавляли в спавн? Интересно, что ошибка соответствует оригинальному PhysicsShell.cpp и не совпадает с аналогом из гитхаба GunsXRay Ну да ладно, может версии сборки движка. А этот вылет говорит о том, что анимация объекта которую положено играть в цикле отсутствует. Вы как человек работающий с ганслингером не подскажите метод которым адаптируете спавн? Может проблема не в том чего нет, а в том что движек не корректно считывает all.spawn?
  13. Mervin62 Я в С++ не копенгаген, поэтому неопытный ? И было бы здорово если бы вы привели полное сообщение об ошибке. Кросс-таблица, та, что строиться при сборке спавна, и находиться соответственно в all.spawn не соответствует АИ-сетки локации - level.ai. Вот и смотрите что нужно заменить, чтобы несоответствие устранить.
  14. Mervin62 Ну хз. На мой неопытный глаз оригинальный код и код ганслингера практически не отличается друг от друга в этом месте. И чего бы ему (ганслингеру) ругаться, что нет сустава если в модели он есть. NitWaifu Аи-сетку то скопируйте в мод.
  15. Ewgen_5057 КМБ Урок 13 Mervin62 Так может в оригинале и моде это разные модели с разными скелетами? В оригинале модель dev_vodka.ogf имеет сустав wpn_body и в спавне или при привязки анимации предмета указывается соответственно wpn_body.
  16. Paradox27kms Инвентарь НПС после смерти чиститься скриптом death_manager.script, чтобы в нем оставались заспавненные предметы требуется их прописать в death_generic.ltx в секцию [keep_items]. STaLKeRoc Для таких вопросов есть соответствующий раздел: 3D-графика, анимация И кстати там обязательно зададут вопросы по версиям конверторов, плагинов и лога вылета, готовьтесь. NitWaifu В логе написано, что локация pripyat не имеет АИ-сетки. Проверьте это для начала, а затем внесены ли все локации в конфиг SDK.
  17. Простите не увидел табличку "сарказм" ? Apka Так ACDC не знает и об se_pda. Замена шила на мыло получилась. Писать надо скорее так: S_INTRUM = cse_alife_item_pda или S_INTRUM = cse_alife_item
  18. Mervin62 Пожалуйста! КМБ Урок 64. Это делается при помощи Universal ACDC.