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

denis2000

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

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

  • Посещение

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

    1

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

  1. К сожалению нет. Придется ковырять все объекты с анимацией перебором.
  2. 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" ее имя, затем ищет ее в модели или прикрепленном файле анимаций. Вот на этом этапе происходит сбой. То есть или имя анимации считалось не верно (возможно лишние пробелы или символы табуляции) или имя считано верно, но ее нет в модели (к сожалению в сообщение о проблеме не предусмотрено выводить ни имя анимации ни имя модели). К стати а вылет этот происходит при загрузке уровня или при перемещении по локации?
  3. Mervin62 Подобные объекты, как правило, не имеют логики вообще, анимация задана параметром skeleton_name в all.spawn (в териминалогии ACDC) или Animation в SDK. Они делятся на два типа: с зацикленной анимацией и линейной анимацией. С зацикленной играю ее постоянно (так делали бензогенераторы в ЧН, вентилятор на Юпитере у начальника Долга), а объекты с линейной анимацией часто управляются из логики другого объекта рестриктора или физического (подъемный мост в Лиманск, гермодвери в путепроводе).
  4. Я об этом и говорил, просто подложить файл спавна может не прокатить и его придется корректировать, это и будет являться адаптацией спавна. Дополнено 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.
  5. Не совсем так. Параметр fixed_bones в данной секции нужен для того, чтобы при добавлении объекта dynamic_objects\devices\dev_vodka\vodka_destroy при помощи SDK автоматически выставлялся параметр fixed_bones в настройках объекта. Этот параметр при компиляции спавна попадет в файл all.spawn откуда игровой движек его считает. То, что движок читает этот параметр напрямую из файла конфига, я не уверен, и кто при этом приоритетнее all.spawn или конфиг. NitWaifu Понял, вы движетесь в правильном направлении, но перекомпилировать АИ-сетку было не нужно если вы ее не меняли, но уж если изменили, то после компиляции сетки, собирается спавн. Теперь из конфигов придется удалить те объекты которые вы удалили на локации. В частности смарты спавна при старте игры: файл simulation.ltx секция [start_position_имя_локации]. Ее нужно очистить и заполнять по мере настройки спавна. Сталкер из прошлого А как она может сработать если переменная questobject_name в функцию не предается? Или переменную передавайте или прямо имя объекта внесите в функцию.
  6. NitWaifu Приведенный вылет означает, что назначенный смарт для спавна не существует. Это опять проблема all.spawn в котором нет необходимых объектов. Напомните, что вы хотели сделать в целом. Зачем редактировали АИ-сетку и что добавляли в спавн? Интересно, что ошибка соответствует оригинальному PhysicsShell.cpp и не совпадает с аналогом из гитхаба GunsXRay Ну да ладно, может версии сборки движка. А этот вылет говорит о том, что анимация объекта которую положено играть в цикле отсутствует. Вы как человек работающий с ганслингером не подскажите метод которым адаптируете спавн? Может проблема не в том чего нет, а в том что движек не корректно считывает all.spawn?
  7. Mervin62 Я в С++ не копенгаген, поэтому неопытный ? И было бы здорово если бы вы привели полное сообщение об ошибке. Кросс-таблица, та, что строиться при сборке спавна, и находиться соответственно в all.spawn не соответствует АИ-сетки локации - level.ai. Вот и смотрите что нужно заменить, чтобы несоответствие устранить.
  8. Mervin62 Ну хз. На мой неопытный глаз оригинальный код и код ганслингера практически не отличается друг от друга в этом месте. И чего бы ему (ганслингеру) ругаться, что нет сустава если в модели он есть. NitWaifu Аи-сетку то скопируйте в мод.
  9. Ewgen_5057 КМБ Урок 13 Mervin62 Так может в оригинале и моде это разные модели с разными скелетами? В оригинале модель dev_vodka.ogf имеет сустав wpn_body и в спавне или при привязки анимации предмета указывается соответственно wpn_body.
  10. Paradox27kms Инвентарь НПС после смерти чиститься скриптом death_manager.script, чтобы в нем оставались заспавненные предметы требуется их прописать в death_generic.ltx в секцию [keep_items]. STaLKeRoc Для таких вопросов есть соответствующий раздел: 3D-графика, анимация И кстати там обязательно зададут вопросы по версиям конверторов, плагинов и лога вылета, готовьтесь. NitWaifu В логе написано, что локация pripyat не имеет АИ-сетки. Проверьте это для начала, а затем внесены ли все локации в конфиг SDK.
  11. Простите не увидел табличку "сарказм" ? Apka Так ACDC не знает и об se_pda. Замена шила на мыло получилась. Писать надо скорее так: S_INTRUM = cse_alife_item_pda или S_INTRUM = cse_alife_item
  12. Mervin62 Пожалуйста! КМБ Урок 64. Это делается при помощи Universal ACDC.
  13. lewandowski Значит одного лога мало. Поскольку вылет говорит об отсутствии ГГ (а точнее о том, что объект ГГ не зарегистрирован в скрипте db на момент работы скрипта smart_terrain_control.script), то где конкретно лажа непонятно. Вот справочник раздел Зов Припяти - Другое - №18, хотя он для версии 1.7 проясняет общие принципы
  14. ian98 Да. конечно можно. Для оригинального движка делается это через редактирование нетпакекта объекта (такой функционал есть во многих модах, в частности мне известно что он есть в SIMBION, SGM 2.2 с оружейным паком). Кажется в кастомных движках эту возможность добавляли простой функцией. Ewgen_5057 В логике: %=send_tip(Имя_строки_сообщения:Имя_иконки_сообщения)% Где Имя_строки_сообщения - string id из файлов st_***.xml, Имя_иконки_сообщения - имя иконки из скрипта news_manager.script таблица tips_icons.
  15. Дмитрий Стрелецкий В оригинале есть механизм выполняющий аналогичные функции - менеджер тайников (treasure_manager.script). Он заточен чтобы случайным образом выдавать метки на тайники при обыске трупов НПС (вам же нужно выдать объект, а не метку), при этом тайники не повторяются (ведется таблица выданных) и имеется возможность выдать конкретный тайник. Ваша задача сделать нужное количество не квестовых объектов (их можно продать/выкинуть или убрать в тайник), создать из них базу данных (аля secrets.ltx) и сделать свой менеджер на базе существующего.
  16. Novichok iz derevni Возможно не добавлена локация в конфиг death_items_by_levels.ltx
  17. Ewgen_5057 В логике рестриктора: on_info = {+Инфопорция_о_выполнении_задания} nil %=create_squad(Сквад_торговца:Смарт_для_его_спавнв)% Novichok iz derevni Посмотрите здесь: Курс молодого бойца. Уроки для начинающих По моему скромному мнению - это курс уроков с самым низким порогом вхождения в котором рассмотрены многие аспекты модостроения. Если же он вас не устроит просто воспользуйтесь поиском, результатов - масса.
  18. maks_stalkerok_2000 В функцию поиска строки (gfind) передана пустота (nil) вместо строки. Для подробностей смотрите, что за функция скрипта _g.script вызвала вылет и кто ее вызывал с неверным параметром.
  19. Тег st_actor_name в файле st_characters.xml Добавить в поле рестриктор с логикой: [logic] active = sr_idle@kill_actor [sr_idle@kill_actor] on_actor_inside = nil %=kill_actor%