Overf1rst 1 510 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 10 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 1 009 Опубликовано 21 декабря, 2020 Алексей Журавель Параметр max_velocity в логику добавьте. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Алексей Журавель 3 Опубликовано 21 декабря, 2020 16 минут назад, denis2000 сказал: Алексей Журавель Параметр max_velocity в логику добавьте. Благодарю, сработало. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 22 декабря, 2020 (изменено) Читаются ли игрой закомментированные строчки в файлах? Если читаются, то примерно на сколько байтов (или килобайтов) увеличивается получаемая информация (с комментариями)? Изменено 22 декабря, 2020 пользователем Winzor Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 009 Опубликовано 22 декабря, 2020 2 часа назад, Winzor сказал: Читаются ли игрой закомментированные строчки в файлах? Нет. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 337 Опубликовано 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 887 Опубликовано 27 декабря, 2020 6 часов назад, Policai сказал: На другой двери такой же работает нормально... А может проблема вовсе не в выбросе, а в НПС? Дверь открывается автоматически при их приближении, и теперь они стоят слишком близко к двери, и логика не может понять: закрыть дверь или открыть её. Сделай тест выброса, но без НПС. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 337 Опубликовано 27 декабря, 2020 (изменено) В соседнем автобусе закрывается же нормально.. расстоние до НПС там такое же... Тем более есть звук что дверь закрывается. он прописан в логике, то есть секция логики переключилась на закрытие... Там видно что дверь дёргается на закрытие а закрыться не может, как будто застряла.. Есть возможность как то уменьшить расстояние реагирования на НПС? Чтоб не убирать их... В каком скрипте прописано это расстояние, или это в движке? Изменено 27 декабря, 2020 пользователем Policai Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 887 Опубликовано 27 декабря, 2020 3 часа назад, Policai сказал: В каком скрипте прописано это расстояние, или это в движке? Если открыть это: gamedata\scripts\ph_door.script и пролистать в самый низ файла, то мы увидим функции, которые отвечают за взаимодействие НПС с дверьми. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 337 Опубликовано 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 1 009 Опубликовано 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 337 Опубликовано 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 1 009 Опубликовано 27 декабря, 2020 48 минут назад, Policai сказал: возможно ли дробное число, или число не имеющее целого квадрата Любое положительное число или ноль. distance_to_sqr = (X1-X2)^2+(Y1-Y2)^2+(Z1-Z2)^2 50 минут назад, Policai сказал: На самом деле давно обращал на это внимание. что дверь открывается далеко до подхода НПС... Я поэтому и крайне не рекомендую менять этот параметр, поскольку проверка очень тупая она делается с большим запасом. Уменьшите параметр и это отразиться на ВСЕХ НПС и ВСЕХ дверях (а не конкретно на ваших) и полезут проблемы - НПС станут упираться в не успевшие открыться двери. 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 697 Опубликовано 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 1 009 Опубликовано 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 697 Опубликовано 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 1 009 Опубликовано 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 697 Опубликовано 27 декабря, 2020 3 часа назад, 61dimon161 сказал: При попытке загрузить быстрое сохранение такой вылет. К сожалению, мы не знаем что там у вас в файле bind_stalker.script записано в 428 строке. Поэтому и ответа нет. 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
61dimon161 67 Опубликовано 27 декабря, 2020 59 минут назад, makdm сказал: К сожалению, мы не знаем что там у вас в файле bind_stalker.script Я этот файл вообще не затрагивал. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 009 Опубликовано 27 декабря, 2020 3 минуты назад, 61dimon161 сказал: Я этот файл вообще не затрагивал. А вот это, точно нам поможет. 1 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 887 Опубликовано 28 декабря, 2020 Добро. Прописал level.hide_indicators() чтобы скрыть интерфейс игрока, но вместе с тем эта функция наделяет ГГ возможностью носить любой вес. Можно ли просто убрать интерфейс? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 009 Опубликовано 28 декабря, 2020 Neptun level.hide_indicators_safe() попробуйте... 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 887 Опубликовано 28 декабря, 2020 4 часа назад, denis2000 сказал: level.hide_indicators_safe() попробуйте... Тот же самый эффект. Обе эти функции, убирая интерфейс, делают гг вообще бессмертным. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты