Overf1rst 1 500 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 637 Опубликовано Четверг в 16:19 Pavel2000 флаги контролируют, может ли объект выходит в онлайн и выходить в оффлайн. То есть чтобы арт исчез, нужно поставить флаги can switch online = false и can switch offline = true (ставить через скрипт, либо через СДК можно заранее задать на некоторых типах объектов). Чтобы появился, после этого по условию выставлять can switch online = true. По идее этого достаточно. Если оба флага ставить в false, то предмет просто останется в состоянии, в котором он был в последний раз, навсегда. С предметами это 100% работает, в моем последнем моде я так спавню объект сканера, например. Но с некоторыми типами вещей это не работает или работает криво, например с аномалиями (вывод аномалии в онлайн через такой скрипт сработает только после сейв-лоада). А вертолет, например, по умолчанию имеет флаг can switch offline = false (то есть он всегда в онлайн) и его обязательно нужно выводить в true. Кажется некоторые предметы еще вообще не делают проверки на расстояние (собственно, вертолет вроде к ним тоже относится), то есть их выход в онлайн и оффлайн всегда контролируется только вручную через флаги. Для них нужно, чтобы один из флагов был true, а другой false, иначе они не перейдут в другое состояние. Так что если просто сдеать can switch online = true на артефакт не работает, то можно одновременно с этим попробовать сделать can switch offline = false. Сами скриптовые команды используются так: alife():set_switch_online (obj_id, false) alife():set_switch_offline (obj_id, true) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 961 Опубликовано Четверг в 17:49 (изменено) Pavel2000 Лучше спавнить объект скриптом, чем играться переключением. Тем боле, что чем меньше объектов в игре тем лучше для производительности. RomaL23 Каких именно объектов не наблюдаете: статической геометрии или же спавн объектов? Изменено Четверг в 18:44 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RomaL23 0 Опубликовано Пятница в 03:46 denis2000 на статической геометрии скорее всего. Я объекты спавнил просто и всё через вкладку objects Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 26 Опубликовано Пятница в 04:20 10 часов назад, denis2000 сказал: Лучше спавнить объект скриптом Я пробовал через логику рестриктора spawn_object использовать но почему-то некоторые предметы проваливаются под текстуры(пробовал вейпоинты поднять непомогло). Дополнено 25 минуты спустя 10 часов назад, denis2000 сказал: Тем боле, что чем меньше объектов в игре тем лучше для производительности Это то понятно но как я понял, другого способа как заспавнить закреплённый в пространстве объект нету Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 961 Опубликовано Пятница в 04:59 (изменено) RomaL23 Значит по стандарту для статической геометрии: 1. Спавн в редакторе 2. Привязка к секторам 3. Билд локации 4. Компиляция локации 5. Перенос скомпилированной локации в папу игры. Pavel2000 Тогда задача понятнее, для этого применяют спавн при помощи SDK и story_ids (наследие ТЧ и ЧН): 1. Объект спавнится и точно позиционируется в SDK. 2. Ему в настройках назначается story_ids из внесенных в файл game_story_ids.ltx 3. Также эти объекты вносятся в файл game_spawn_story_ids.ltx 4. В начале игры удаляем объекты из списка файла game_spawn_story_ids.ltx 5. По мере необходимости спавним их командой alife():create(alife():spawn_id(ID)) Смысл всей этой движухи назначить динамическому объекту конкретный идентификатор (16-битный цифровой параметр с которым движок и работает), а не позволить ему выбрать рандомный свободный. Тогда зная его можно манипулировать объектом как нам нужно. Изменено Пятница в 05:19 пользователем denis2000 2 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 328 Опубликовано Пятница в 07:33 (изменено) 3 часа назад, Pavel2000 сказал: проваливаются под текстуры(пробовал вейпоинты поднять непомогло). неважно где стоит вейпоинт, главное чтоб выше аи сетки, обьект всегда падает до аи сетки, если в этом месте её нет, проваливается под текстуры. там где мне нужно было поднять обьект, я хитрил и поднимал нод аи сетки... Изменено Пятница в 07:35 пользователем Policai 1 Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RomaL23 0 Опубликовано Пятница в 07:37 denis2000 да я вообще не вникаю теперь что с текстурами уровня... у меня железная преграда и колючая проволока выделяются черными текстурами, хотя они есть в геймдате. и на железных столбах тоже бежевым цветом какая то площадь выделенная. вообщем буду разбираться, отдохну потом на трезвую голову буду думать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 26 Опубликовано Пятница в 07:42 (изменено) denis2000 --game_story_ids.ltx [story_ids] 1 = "af_mahovik_1" --game_spawn_story_ids.ltx [spawn_story_ids] 1 = af_mahovik_1 [story_ids_spawn] af_mahovik_1 = 1 Спойлер [1437] ; cse_abstract properties section_name = af_mahovik name = af_mahovik_1 position = 105.39070892334,-2.434730052948,183.659927368164 direction = -0.000326404260704294,1.96891409426359e-011,4.87808392790612e-005 ; cse_alife_object properties game_vertex_id = 0 distance = 0 level_vertex_id = 293223 object_flags = 0xffffff3f custom_data = <<END [physics_common] fixed_bones = link [story_object] story_id = af_mahovik_1 END story_id = 1 spawn_story_id = 1 ; cse_visual properties visual_name = dynamics\arts\af_mahovik ; cse_alife_item properties condition = 1 upgrades = Спойлер function delete_object_by_story_id(actor, obj, p) if p then local story_obj_id for k,v in pairs( p ) do story_obj_id = get_story_object_id( v ) if story_obj_id then local se_obj = alife():object( story_obj_id ) if se_obj then alife():release( se_obj, true ) end end end end end function spawn_object_by_sid(actor, obj, p) if p then local ini = ini_file( "game_spawn_story_ids.ltx" ) for k,v in pairs( p ) do local spawn_story = ini:r_string( "story_ids_spawn" , v ) local section_number = alife():spawn_id( tonumber( spawn_story ) ) alife():create( section_number ) end end end Спойлер [logic] active = sr_idle@wait [sr_idle@wait] on_info = sr_idle@1 %=delete_object_by_story_id(af_mahovik_1)% [sr_idle@1] on_info = {=actor_has_item(af_mahovik)} sr_idle@2 %=actor_punch =spawn_object_by_sid(af_mahovik_1) =play_sound(af_hit_actor)% И получается что артефакт не удалился но если его подобрать то Спойлер Line : 30 Description : Specified story object is already in the Story registry! т.е получается у меня не получается его удалить... или я тупой и чего то не понимаю Изменено Пятница в 07:43 пользователем Pavel2000 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 328 Опубликовано Пятница в 08:10 (изменено) 40 минут назад, RomaL23 сказал: у меня железная преграда и колючая проволока выделяются черными текстурами, хотя они есть в геймдате. При компиляции на драфте прозрачность не работает... поднимайте качество компиляции.. Дополнено 5 минуты спустя Pavel2000 Не та функция. насколько понимаю выдернул функцию аномалии на свалке... а для артефактов функция есть только в крайней версии... Я честно не помню, есть две версии мода, одна тут эпилог, а вторая в свободном доступе отсутствует, она только у друзей, а вот в какой версии Денис мне написал функцию я не помню..((( function switch_artefact_visibility Изменено Пятница в 08:18 пользователем Policai Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 26 Опубликовано Пятница в 08:18 у меня гемдата от Dead City Special Release Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 328 Опубликовано Пятница в 08:21 2 минуты назад, Pavel2000 сказал: у меня гемдата от Dead City Special Release Там точно этого нету Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RomaL23 0 Опубликовано Пятница в 09:11 Policai спасибо за совет, попробую. боюсь что на среднем качестве долго будет компилиться. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 961 Опубликовано Пятница в 11:05 RomaL23 Все верно, на драфте вы проверяете, что вас на локации все устраивает, а потом компилируете на чистовую, и да это может занимать довольно много времени. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 26 Опубликовано Пятница в 11:09 3 часа назад, Pavel2000 сказал: или я тупой и чего то не понимаю У меня получилось function delete_af() local lc = alife():story_object(story_ids.af_mahovik_1) alife():release(lc, true) end но теперь я не пому как эту функцию переписать так что бы её можно было использовать из логики прописывая ади при вызове функции Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RomaL23 0 Опубликовано Пятница в 11:33 denis2000 Уже 2 час компилирую на high качестве армейские склады... надеюсь не напрасно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
StrawFlux 1 098 Опубликовано Пятница в 11:42 Pavel2000 Я так понял у тебя проблема что айтем падает сквозь текстуры на аи сетку? В кастомных движках (OpenXray, IX-Ray, OGSR точно есть, за другие не скажу) можно в секции айтема прописать use_ai_locations = false и тогда он будет игнорить аи сетку и будет лежать там где заспавнился. В ванили не могу сказать, есть такое или нет. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 328 Опубликовано Пятница в 11:54 9 минут назад, StrawFlux сказал: Я так понял у тебя проблема что айтем падает сквозь текстуры на аи сетку? В кастомных движках (OpenXray, IX-Ray, OGSR точно есть, за другие не скажу) можно в секции айтема прописать use_ai_locations = false и тогда он будет игнорить аи сетку и будет лежать там где заспавнился. В ванили не могу сказать, есть такое или нет. Есть это и в оригинале, только работает если в сдк ставишь. А при спавне по скрипту игнорируется, всё равно падает на аи сетку. Дополнено 1 минуту спустя 21 минуту назад, RomaL23 сказал: denis2000 Уже 2 час компилирую на high качестве армейские склады... надеюсь не напрасно До суток компилится, зависит от наполнения локации и мощности компа... Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 637 Опубликовано Пятница в 12:00 4 минуты назад, Policai сказал: А при спавне по скрипту игнорируется, всё равно падает на аи сетку. А если по прямым координатам спавнить, а не через вейпоинт, то тоже будет такое поведение? Если да, то тогда реально есть резон заранее в СДК объект поставить и включать\выключать его онлайн-статус. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 328 Опубликовано Пятница в 12:23 16 минут назад, Mawrak сказал: А если по прямым координатам спавнить, а не через вейпоинт, то тоже будет такое поведение? Если да, то тогда реально есть резон заранее в СДК объект поставить и включать\выключать его онлайн-статус. Да этот вопрос впринципе решён уже, именно так, в сдк ставить и отключать\включать... так у меня и сделано, Денис думаю подскажет как правильно функцию написать, просто я лично по скриптовой части дубль пусто...))) И всё что касается скриптов прошу сделать Дениса, или Диму (makdm). Даже сейчас, эта функция есть в скриптах у меня, но сала в черепе не хватит найти где она..))) Меня приспичило так как нужно было установить штурвал в правильном положении и под правильным углом, и там где невозможно поставить аи сетку... Дополнено 3 минуты спустя 1 час назад, Pavel2000 сказал: но теперь я не пому как эту функцию переписать так что бы её можно было использовать из логики прописывая ади при вызове функции У меня логика прописана так : Спойлер [logic] active = sr_idle [sr_idle] on_info = sr_idle@2 %=switch_artefact_visibility(fir_af_shturval_id:false)% [sr_idle@2] on_info1 = {=actor_in_zone(fir_shturval_done_sr) +fir_search_shron_4_done} sr_idle@3 %+fir_art_shturval_done% [sr_idle@3] on_info2 = {+fir_art_shturval_done} sr_idle@nil %=switch_artefact_visibility(fir_af_shturval_id:true)% [sr_idle@nil] 1 1 Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 637 Опубликовано Пятница в 16:59 В ЗП симуляционные НПС могут умереть в оффлайн-стычке, так? Насколько я знаю, могут, но хочу удостовериться. А то в ЗП как оказалось много всего вырезали, например перемещения НПС между локациями. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RomaL23 0 Опубликовано Суббота в 07:01 Policai скомпилил, потом сетку скомпилил но вылет стабильный, не может найти АИ сетку, хотя я ее компилил и кидал в папку с локацией, level.ai . Пробовал ее в разном качестве компилить, толку ноль. Займусь через недельку, щас уже голова болит от этого Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 328 Опубликовано Суббота в 07:42 (изменено) 41 минуту назад, RomaL23 сказал: Policai скомпилил, потом сетку скомпилил но вылет стабильный, не может найти АИ сетку, хотя я ее компилил и кидал в папку с локацией, level.ai . Пробовал ее в разном качестве компилить, толку ноль. Займусь через недельку, щас уже голова болит от этого Что и куда Вы кидали???? Зачем??? Всё что Вы компилили изначально лежит в куче, в папке с локой, в игру надо перекидывать всю локу, а старую папку с локой убирать. Так же как и олспавн, нужно кидать новой , скомпиленный с этой сеткой, старый олспавн будет вылетать именно с жалобой на не совпадающую аи сетку. Да и при вылете прикладывают лог. Изменено Суббота в 07:45 пользователем Policai 1 Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 961 Опубликовано Суббота в 08:04 (изменено) 15 часов назад, Mawrak сказал: Насколько я знаю, могут, но хочу удостовериться. А насколько я помню в оригинале - нет. Сквады в оффлайне никак не взаимодействуют и лишь при выходе в онлайн враги начнут бой и пока к ним подойдете могут нескольких положить. Хотите удостовериться - лучше всего проверить это в игре. Изменено Суббота в 08:08 пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RomaL23 0 Опубликовано Воскресенье в 07:16 Policai спасибо за ответ, я просто не думал что алл спавн тоже надо компилить отдельно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sumrak6835 158 Опубликовано Понедельник в 10:53 (изменено) В 29.11.2024 в 19:59, Mawrak сказал: В ЗП симуляционные НПС могут умереть в оффлайн-стычке, так? Насколько я знаю, могут, но хочу удостовериться. А то в ЗП как оказалось много всего вырезали, например перемещения НПС между локациями. В оффлайне симуляции нет точно. А перемещения НПС между локациями можно попробовать восстановить, если сделать переходы для ИИ между локациями (как в ТЧ и ЧН задаются переходы для актора и для НПС и мобов) В ЗП переходы только для актора. По аналогии с ЧН добавить переходы и добавить, допустим на Затон смарты для долга и Свободы и проверить. Должно получиться. Дополнено 36 минуты спустя В 29.11.2024 в 19:59, Mawrak сказал: перемещения НПС между локациями Вот тебе для примера. Спойлер Затон. Переход для актора Кордон ТЧ переход для актора. Кордон ТЧ переход для НПС и мобов Для актора переходы отличаются потому, что В ТЧ можно переходить самому через диалоговое окно. Хотя на ЗП я Переходы для актора с диалоговым окном тоже делал, они стопудово работают. Изменено Понедельник в 18:33 пользователем sumrak6835 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты