Overf1rst 1 497 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0ouch 143 Опубликовано 6 августа, 2020 Перенес в модификацию локацию из оригинального ЗП. При попытке сделать сохранение получаю вот такой вылет. Насколько я понимаю, он связан с воронами. Но как его исправить? Кто-нибудь сталкивался с чем-то подобным? Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\LR_Engine-master\xray\xrServerEntities\script_storage.cpp Line : 680 Description : ... Зов Припяти 102.08.20\gamedata\scripts\bind_crow.script:139: attempt to index global 'packet' (a nil value) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 6 августа, 2020 (изменено) 4 часа назад, Igor_Misery сказал: Как нибудь можно сделать магазинное питание оружия? Абакан с магазинным питанием Дополнено 14 минуты спустя svi_042 1. Нет ничего проще получить разрушение объекта - достаточно нанести ему хит необходимого уровня и он разрушиться. 2. Нет проблем в функцию из xr_effects первым параметром передается объект-актор, вторым объект - из логики которого вызвана функция: Спойлер [logic] active = ph_idle@1 [ph_idle@1] on_info = {=dist_to_actor_le(10)} ph_idle@nil %=create_parasite% [ph_idle@nil] function create_parasite(actor, object, p) local spawn_pos, lv_id, gv_id = object:position(), object:level_vertex_id(), object:game_vertex_id() local h = hit() h:bone("имя сустава куда нанести хит") h.power = уровень хита h.impulse = импульс хита h.direction = vector():sub(object:position(), actor:position()) h.draftsman = actor h.type = hit.wound object:hit(h) alife():create("секция мутанта", spawn_pos, lv_id, gv_id) end Дополнено 18 минуты спустя Stgs Судя по логу у вас модифицирован биндер ворон bind_crow.script. Открываете его ищите строку 139 и смотрите почему переменная packet не определена (равна nil). Изменено 6 августа, 2020 пользователем denis2000 2 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 7 августа, 2020 Как задать логику мутантам? Можно ли в логике мутанта задать приоритет - нападение на игрока? В интернете ничего не нашел. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 7 августа, 2020 (изменено) 53 минуты назад, Крим сказал: Как задать логику мутантам? Можно ли в логике мутанта задать приоритет - нападение на игрока? В интернете ничего не нашел. Регистрация логики та же, что и для НПС. В строке suitable, как правило, прописывается сквад: suitable = {=target_squad_name(ид_сквада_мутантов)} Само наполнение несильно отличается, например: [mob_walker] - движение мутантов, строится по тем же принципам, что и для НПС. [mob_home] - такая зона, где тусуются мутанты, параметры: path_home = путь_way aggressive = true ; приоритет атаки home_min_radius = 5 home_max_radius = 25 Изменено 7 августа, 2020 пользователем Neptun Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 7 августа, 2020 (изменено) Есть ли условие при котором НПС или рестриктор выполнял действие только ночью? Как задавать логику обычных нпc c обычной работой, как guard? Изменено 7 августа, 2020 пользователем Крим Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 7 августа, 2020 6 минут назад, Крим сказал: Есть ли условие при котором НПС или рестриктор выполнял действие только ночью? Проверка: on_info = {=is_dark_night} 8 минут назад, Крим сказал: Как задавать логику обычных нпc c обычной работой, как guard? Создание смарта 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RobocatiK 96 Опубликовано 7 августа, 2020 (изменено) 5 часов назад, Крим сказал: Как задать логику мутантам? Можно ли в логике мутанта задать приоритет - нападение на игрока? В интернете ничего не нашел. combat_ignore_cond = {=check_enemy_name(sim_default)} true, {=check_enemy_name(actor)} false combat_ignore_keep_when_attacked = {=check_enemy_name(sim_default)} true, {=check_enemy_name(actor)} false либо поставить target = story | actor Изменено 7 августа, 2020 пользователем RoboCat Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misery 433 Опубликовано 7 августа, 2020 Дайте скрипт на отбирание денег у ГГ, а то есть только на выдачу. Clear Sky: Gunslinger Addon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
spacehulk 38 Опубликовано 7 августа, 2020 Каким образом создаются концовки, в зависимости от исхода некоторых квестов?(как в оригинальном ЗП) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 7 августа, 2020 Machete Если по простому функция которая занимается проигрыванием гейм-туториалов выбирает нужные туториалы в зависимости от инфопорций полученных при прохождении. 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
spacehulk 38 Опубликовано 7 августа, 2020 denis2000 такие фокусы можно провернуть во всех частях серии, или только в ЗП? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 7 августа, 2020 (изменено) Machete На любой версии, никаких специфических движковых правок там не используется, только скрипты и конфиги. Нет, к сожалению я ошибся function_check_start есть только в ЗП! Спойлер Файл: game_tutorials.xml <outro_game> .... <!------ outro_4a --> <item> .... <function_check_start>outro_cond.degterev_live_sesa_live</function_check_start> .... </item> <!------ outro_4b --> <item> .... <function_check_start>outro_cond.degterev_live_sesa_not_live</function_check_start> .... </item> </outro_game> Файл: outro_cond.script -- 4a function degterev_live_sesa_live() return ( not has_alife_info("degterev_is_dead") ) and ( not has_alife_info("sesa_is_dead") ) end -- 4b function degterev_live_sesa_not_live() return ( not has_alife_info("degterev_is_dead") ) and ( has_alife_info("sesa_is_dead") ) end Дополнено 28 минуты спустя Но принцип сохраняется: можно создать несколько туториалов и стартовать их последовательно выбирая нужные развилки скриптами. Изменено 7 августа, 2020 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0ouch 143 Опубликовано 7 августа, 2020 За что отвечает параметр "idle" в конфигах script_sound? Это задержка между звуками? Но каким образом она определяется? Например: idle = 5,15,100 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 7 августа, 2020 (изменено) 5 минут назад, Stgs сказал: idle = 5,15,100 5 - минимальное время, 15 - максимальное время паузы в мсек. 100 - читается, да не используеться. Смотри файл sound_theme.script Дополнено 5 минуты спустя 1 час назад, Igor_Misery сказал: Дайте скрипт на отбирание денег у ГГ Файл: xr_effects.script function remove_actor_money( actor, obj ) local money_num = actor:money() actor:give_money(-money_num) end Изменено 7 августа, 2020 пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 7 августа, 2020 Проблемы две. Во первых в профиле прописал ровно - 0 рублей, но почему при старте игры у игрока 15 000 рублей. Вторая проблема вот: FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : ..\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ...e.r. call of pripyat\gamedata\scripts\xr_meet.script:630: attempt to index local 'meet' (a nil value) stack trace: Подскажите в чем проблемы? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 7 августа, 2020 20 минут назад, Крим сказал: ...почему при старте игры у игрока 15 000 рублей. Движек странно относиться к нулю в этом параметре, ставьте min="1" max="1" или обнуляйте деньги при старте игры. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misery 433 Опубликовано 7 августа, 2020 Можно сделать, чтобы при взятии предмета был видео-ролик? И как сделать, чтобы при затрагивании триггера активировался видео-ролик? Clear Sky: Gunslinger Addon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 7 августа, 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 : ...r. call of pripyat\gamedata\scripts\state_mgr.script:247: C stack overflow stack trace: Вылет произошел, когда я засунул в личный ящик игрока вещь. Кстати, ранее когда попытался поспать. Игра вылетела пожаловалось на то, что отсутствует ui текстура меню сна, после перезагрузки исчезло - с чем такое связано? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 7 августа, 2020 Решил сделать тестовую функцию. Спойлер Функция происходит при использовании предмета. Сама функция:function on_use_item(sect) local actor = db.actor local item_name = sect:section() local torch = actor:object("device_torch") if item_name=="battery_torch_1" and actor:object("device_torch"):condition() < 0.99 then torch:set_condition(torch:condition()+0.1) end end В bind_stalker вызов есть. if obj~=nil then icomplex.on_use_item(obj) При новой игре она работает, но вот после сохранения и загрузки функция перестаёт работать. Почему так? ----- Есть ещё один скрипт который даёт устанавливать фонарику % состояния. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mysterious 3 Опубликовано 7 августа, 2020 В чем причина? FATAL ERROR [error] Expression : !m_error_code [error] Function : raii_guard::~raii_guard [error] File : C:\projects\xray-16\src\xrScriptEngine\script_engine.cpp [error] Line : 569 [error] Description : E:\Behind A Side\gamedata\scripts\bind_stalker.script:202: '<eof>' expected near 'end' Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RobocatiK 96 Опубликовано 7 августа, 2020 (изменено) Нужно сделать жесткий баг-репорт в _g.script, тогда вылет будет показывать точную причину -- Крешнуть игру (после вывода сообщения об ошибке в лог) function abort(fmt, ...) local reason = string.format(fmt, ...) --error_log(reason) end Нужно убрать две тире в error_log(reason) Изменено 7 августа, 2020 пользователем RoboCat Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mysterious 3 Опубликовано 7 августа, 2020 RoboCat ничего не поменялось. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 8 августа, 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 : ...r. call of pripyat\gamedata\scripts\state_mgr.script:247: C stack overflow stack trace: Жалуется на этою, конкретнее выделено фиолетовым: function eva_state_mgr_end:evaluate() if self.mgr == nil then self.mgr = self.object:motivation_action_manager() end if self.combat_planner == nil then self.combat_planner = cast_planner(self.mgr:action(stalker_ids.action_combat_planner)) end Подскажите в чем проблема? Изменено 8 августа, 2020 пользователем Крим Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 8 августа, 2020 В движковый метод был передан NIL. Ищите ошибку в скриптах. Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misery 433 Опубликовано 8 августа, 2020 Пожалуйста скажите, как активировать квест, взятием предмета? Clear Sky: Gunslinger Addon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты