Overf1rst 1 503 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HECCbl 3 Опубликовано 20 декабря, 2020 (изменено) 5 часов назад, denis2000 сказал: HECCbl Расчет стоимости ремонта производиться ровно одной функцией how_much_repair, но в одном случае в нее передается параметр condition_type, а в другом - нет. Начните с этого, заканчивайте тем, какое значение параметра item_condition передает движек в обоих случаях. Пробовал добавлять condition_type , и даже пробовал выпиливать из how_much_repair всё, кроме cond_price Тоесть если в 399 строке вписать 500, то цену ремонта показывает ( 500+ цена поломок) , но берет он только 500, за любое оружие. Почему в одном случае он учитывает кол-во поломок , а в другом нет? и даже выпилил 495-497 строку , ниче не изменилось, только он перестал чинить поломки, но цены теже остались. Че происходит, не пойму. Может оно где-то чинится во время вопроса о цене? Вот так сейчас: inventory_upgrades.script Изменено 20 декабря, 2020 пользователем HECCbl Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Алексей Журавель 3 Опубликовано 21 декабря, 2020 Спойлер Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...a.l.k.e.r. big mod\gamedata\scripts\heli_move.script:66: attempt to perform arithmetic on field 'max_velocity' (a nil value) Происходит при спавне вертолета через СДК, возможно логика не раочая, короче понятия не имею, может кто что подскажет? Спойлер [logic] active = heli_move [heli_move] path_move = l01_perimetr_heli_patrol_fly engine_sound = true combat_use_rocket = true combat_use_mgun = true rocket_delay = 3000 combat_safe_altitude = -50 mute = true Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 21 декабря, 2020 Алексей Журавель Параметр max_velocity в логику добавьте. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Алексей Журавель 3 Опубликовано 21 декабря, 2020 16 минут назад, denis2000 сказал: Алексей Журавель Параметр max_velocity в логику добавьте. Благодарю, сработало. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 22 декабря, 2020 (изменено) Читаются ли игрой закомментированные строчки в файлах? Если читаются, то примерно на сколько байтов (или килобайтов) увеличивается получаемая информация (с комментариями)? Изменено 22 декабря, 2020 пользователем Winzor Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 22 декабря, 2020 2 часа назад, Winzor сказал: Читаются ли игрой закомментированные строчки в файлах? Нет. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 333 Опубликовано 26 декабря, 2020 Народ! подскажите в чём косяк? Двери с самозакрытием. работают нормально, но при выбросе перестают закрываться. Звук есть что они типа закрылись а анимация не идёт... На другой двери такой же работает нормально... Спойлер [logic] active = ph_door@closed [ph_door@closed] closed = true locked = false on_use = ph_door@open snd_open_start = wood_large_open snd_close_start = wood_large_close_start snd_close_stop = wood_large_close_stop [ph_door@open] closed = false locked = false on_use = ph_door@closed on_game_timer = 50 | ph_door@closed snd_open_start = wood_large_open snd_close_start = wood_large_close_start snd_close_stop = wood_large_close_stop В кастом дате прописано [collide] ignore_static ignore_ragdoll [logic] cfg = scripts\лока\файл логики.ltx Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 885 Опубликовано 27 декабря, 2020 6 часов назад, Policai сказал: На другой двери такой же работает нормально... А может проблема вовсе не в выбросе, а в НПС? Дверь открывается автоматически при их приближении, и теперь они стоят слишком близко к двери, и логика не может понять: закрыть дверь или открыть её. Сделай тест выброса, но без НПС. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 333 Опубликовано 27 декабря, 2020 (изменено) В соседнем автобусе закрывается же нормально.. расстоние до НПС там такое же... Тем более есть звук что дверь закрывается. он прописан в логике, то есть секция логики переключилась на закрытие... Там видно что дверь дёргается на закрытие а закрыться не может, как будто застряла.. Есть возможность как то уменьшить расстояние реагирования на НПС? Чтоб не убирать их... В каком скрипте прописано это расстояние, или это в движке? Изменено 27 декабря, 2020 пользователем Policai Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 885 Опубликовано 27 декабря, 2020 3 часа назад, Policai сказал: В каком скрипте прописано это расстояние, или это в движке? Если открыть это: gamedata\scripts\ph_door.script и пролистать в самый низ файла, то мы увидим функции, которые отвечают за взаимодействие НПС с дверьми. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 333 Опубликовано 27 декабря, 2020 (изменено) 26 минут назад, Neptun сказал: Если открыть это: gamedata\scripts\ph_door.script и пролистать в самый низ файла, то мы увидим функции, которые отвечают за взаимодействие НПС с дверьми. Просматривал я скрипт, но не нашёл расстояние взаимодействия... Я чайник в скриптах и конфигах... Дополнено 3 минуты спустя 4 часа назад, Policai сказал: Там видно что дверь дёргается на закрытие а закрыться не может, как будто застряла.. Нюанс такой что недалеко от этого автобуса стоит большой динамический обьект, вот и думаю не может ли этот баг как то быть связанным с ним??? Автобус на котором дверь работает без проблем стоит чуть дальше по расстоянию... Думаю про это так как сталкивался с тем, что если рядом с большим обьектом поставить например аномалию, то она периодически срабатывает... Хотя в кастом дате этого обьекта прописано ignore_animated_objects... Прописал эту строку и в кастом дате дверей... не помогло... Изменено 27 декабря, 2020 пользователем Policai Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 27 декабря, 2020 (изменено) Policai Однозначно, это скрипты открывающие двери для НПС. Расстояние срабатывания 3 метра. Уберете НПС и все будет работать (как оно и работает когда НПС на своих основных работах). 2 часа назад, Policai сказал: Просматривал я скрипт, но не нашёл расстояние взаимодействия... if npc_position:distance_to_sqr(position) <= 9 then ... if npc_position:distance_to_sqr(db.level_doors[id]) > 9 then distance_to_sqr - квадрат расстояния. Изменено 27 декабря, 2020 пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 333 Опубликовано 27 декабря, 2020 (изменено) denis2000 Видел этот параметр, но не допёр что учитывается квадрат во все направления...То есть если я поставлю к примеру 4, то квадрат будет 2 х 2 метра? Или возможно ли дробное число, или число не имеющее целого квадрата например 6, получится не 3 х 3 а 2.44... х 2.44... На самом деле давно обращал на это внимание. что дверь открывается далеко до подхода НПС... и вдогонку... Больше нигде в скриптах не проходит проверка этого расстояния? Или не используется ли этот параметр где то ещё? Боюсь может получиться так что поправил тут а где то вылез косяк в другом месте... Дополнено 12 минуты спустя denis2000 Пока лока компилится, переделал геометрию. Передвинул чуток НПС, если не поможет тогда уж скрипт ковырять... Тут вопрос давненько у меня висит по поводу подмены динамического обьекта, возможно ли реализовать такое... Есть 2 одинаковых динамических обьекта с разными анимациями, обьект накрыт спейсрестриктором внутри спейса лежит арт. Стоит динамический обьект с номером 1. Как реализовать замену обьекта на 2? Есть некие условия: замена обьекта должна произойти не когда ГГ забирает арт,а когда он покинет зону спейса с артом в инвентаре. При этом если он вышел из зоны спейса без арта, ничего не должно меняться.. То есть грубо говоря нужно чтоб пока арт находится в зоне спейса, независимо в инвентаре ГГ или просто так, стоит обьект 1, если арт покинул зону спейса то замена на обьект 2... Изменено 27 декабря, 2020 пользователем Policai Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 27 декабря, 2020 48 минут назад, Policai сказал: возможно ли дробное число, или число не имеющее целого квадрата Любое положительное число или ноль. distance_to_sqr = (X1-X2)^2+(Y1-Y2)^2+(Z1-Z2)^2 50 минут назад, Policai сказал: На самом деле давно обращал на это внимание. что дверь открывается далеко до подхода НПС... Я поэтому и крайне не рекомендую менять этот параметр, поскольку проверка очень тупая она делается с большим запасом. Уменьшите параметр и это отразиться на ВСЕХ НПС и ВСЕХ дверях (а не конкретно на ваших) и полезут проблемы - НПС станут упираться в не успевшие открыться двери. 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 676 Опубликовано 27 декабря, 2020 55 минут назад, Policai сказал: Тут вопрос давненько у меня висит по поводу подмены динамического обьекта, возможно ли реализовать такое... Есть 2 одинаковых динамических обьекта с разными анимациями, обьект накрыт спейсрестриктором внутри спейса лежит арт. Стоит динамический обьект с номером 1. Как реализовать замену обьекта на 2? Ставим оба объекта в SDK. При старте игры объект 2 удаляем. В нужный момент игры удаляем объект 1 и возвращаем из all.sapwn объект 2 на свое место. Посмотреть реализацию с работающими и не работающими мониторами можно в игре Связь Времен. Смотреть здесь с 8:03:50 Спойлер https://www.youtube.com/watch?v=MYHa7MzTVm4 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 27 декабря, 2020 (изменено) Policai Спойлер Логика рестриктора [logic] active = sr_idle@wait [sr_idle@wait] on_info = {!actor_in_zone(Имя_рестриктора_арта) =actor_has_item(Имя_арта_в_рестрикторе)} sr_idle@obj_respawn [sr_idle@obj_respawn] on_game_timer = 20 | nil %=spawn_ids_objects(подменный_объект)% xr_effects.script --Спавн объекта с SID function spawn_ids_objects( actor, npc, 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( "spawn_story_ids" , v ) local section_number = alife():spawn_id( tonumber( spawn_story ) ) alife():create( section_number ) end end end --Удаление объектов по стори-ид function remove_ids_objects( actor, obj, p ) local story_obj_id local registr = story_objects.get_story_objects_registry() 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 ) registr:unregister_by_id( story_obj_id ) end end end end --Удаление подменяемых объектов из таблицы со стори-ид function remove_objects( actor, npc ) db.actor:give_info_portion("Инфопорция_Объект_удален") local id_tbl = {"Удаляемый_объект"} for k,v in pairs( id_tbl ) do local id = get_story_object_id(v) if id then alife():release(alife():object(id), true) end end end Скрипт запускаемый в начале игры через _g.script в функции start_game_callback() --Удаление подменных объектов из таблицы со стори-ид function start_game_remove_ids_objects() if has_alife_info( "start_game_update_done" ) then return end local spawn_ids_table = {"подменный_объект"} xr_effects.remove_ids_objects( db.actor, nil, spawn_ids_table ) give_info( "start_game_update_done" ) end Файл game_spawn_story_ids.ltx [spawn_story_ids] подменный_объект = 1 <-Spawn SID заданный в SDK. К сожалению 0.7 имеет баг с назаначением этого параметра! Изменено 27 декабря, 2020 пользователем denis2000 2 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 676 Опубликовано 27 декабря, 2020 2 часа назад, denis2000 сказал: [spawn_story_ids] подменный_объект = 1 <-Spawn SID заданный в SDK. К сожалению 0.7 имеет баг с назаначением этого параметра! В SDK в файле game_spawn_story_ids.ltx переставляем параметры [spawn_story_ids] 1 = подменный_объект Всё будет работать как нужно 2 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 27 декабря, 2020 26 минут назад, makdm сказал: Всё будет работать как нужно Да, точно все работает. Спасибо! 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
61dimon161 67 Опубликовано 27 декабря, 2020 При попытке загрузить быстрое сохранение такой вылет. FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : ..\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : .... На Распутье 2\gamedata\scripts\bind_stalker.script:428: attempt to concatenate field '?' (a nil value) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 676 Опубликовано 27 декабря, 2020 3 часа назад, 61dimon161 сказал: При попытке загрузить быстрое сохранение такой вылет. К сожалению, мы не знаем что там у вас в файле bind_stalker.script записано в 428 строке. Поэтому и ответа нет. 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
61dimon161 67 Опубликовано 27 декабря, 2020 59 минут назад, makdm сказал: К сожалению, мы не знаем что там у вас в файле bind_stalker.script Я этот файл вообще не затрагивал. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 27 декабря, 2020 3 минуты назад, 61dimon161 сказал: Я этот файл вообще не затрагивал. А вот это, точно нам поможет. 1 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 885 Опубликовано 28 декабря, 2020 Добро. Прописал level.hide_indicators() чтобы скрыть интерфейс игрока, но вместе с тем эта функция наделяет ГГ возможностью носить любой вес. Можно ли просто убрать интерфейс? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 28 декабря, 2020 Neptun level.hide_indicators_safe() попробуйте... 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 885 Опубликовано 28 декабря, 2020 4 часа назад, denis2000 сказал: level.hide_indicators_safe() попробуйте... Тот же самый эффект. Обе эти функции, убирая интерфейс, делают гг вообще бессмертным. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты