Overf1rst 1 496 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vasyan54636 126 Опубликовано 21 июня, 2023 Товарищи, подскажите есть ли ошибка в схеме? Задумывалось так, что если актор в рестрикторе, то на указанном веипоинте появляется заданный партикл, но что-то как-то не получилось. Спойлер [logic] active = sr_idle@1 [sr_idle@1] on_info = {=actor_in_zone(a2_poison_smoke_sr)} %=play_particle_on_path(damage_fx\smoke:a2_poison_smoke_1_way) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 310 Опубликовано 21 июня, 2023 vasyan54636 у тебя в логике тоже on_info имеет перенос строки посередине, или это сайт шалит? Вроде как перенос строки там, где не надо, может поломать её. Либо мб проблема в том, что у тебя из условий on_info только нахождение игрока в рестрикторе, причём без перехода на другую секцию логики (в т.ч. пустую), что означает, что анимация будет постоянно пытаться проиграться сначала при каждом тике логики. Дополнено 0 минут спустя Глупый вопрос: какой story_id у игрока? Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 21 июня, 2023 1 минуту назад, Prostomod сказал: Глупый вопрос: какой story_id у игрока? actor 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vodka 159 Опубликовано 21 июня, 2023 vasyan54636 есть. Процентик потерял [logic] active = sr_idle@1 [sr_idle@1] on_info = {=actor_in_zone(a2_poison_smoke_sr)} %=play_particle_on_path(damage_fx\smoke:a2_poison_smoke_1_way)% 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoDizzari 51 Опубликовано 21 июня, 2023 Создавал НПС, но где-то допустил оплошность: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...all of pripyat\gamedata\scripts\smart_terrain.script:505: attempt to index local 'smartcover' (a nil value) В связи с чем такое может быть? Защитим мир от заразы - Зоны Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 310 Опубликовано 21 июня, 2023 (изменено) Кто может объяснить, в чём проблема: мне нужно, в определённый момент, переместить скриптом весь инвентарь ГГ в ящик. Я написал скрипт на основе скрипта переноса хабара из личного ящика на Янове в сейф Коряги, а так-же назначил ящику story_id (в этот раз я перепроверил несколько раз - story_id в логике верный). Проблема в том, что скрипт отрабатывает своё, однако ничего не переносится, все вещи остаются у ГГ. Где у меня ошибка? Спойлер function relocate_actor_inventory_to_box(actor, npc, p) local box = get_story_object_id(p[1]) if box ~= nil then local function transfer_items(item) if item:section()~="wpn_binoc" and item:section()~="wpn_knife" and item:section()~="device_torch" then db.actor:transfer_item(item, box) end end db.actor:inventory_for_each(transfer_items) else abort("Cannot find box for inventory relocation with story_id [%s]", p[1]) end end Изменено 21 июня, 2023 пользователем Prostomod Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 21 июня, 2023 1 час назад, SoDizzari сказал: В связи с чем такое может быть? С чем угодно.Prostomod держи: function relocate_actor_inventory_to_box(actor, npc, p) local function transfer_object_item(item) if item:section() ~= "wpn_binoc" and item:section() ~= "wpn_knife" and item:section() ~= "device_torch" then db.actor:transfer_item(item, inv_box_1) end end inv_box_1 = get_story_object (p[1]) actor:inventory_for_each(transfer_object_item) end 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoDizzari 51 Опубликовано 22 июня, 2023 Как сделать чтобы после получения инфопоршня или захода в зону, выкидывало в главное меню, типо конец игры! Дополнено 0 минут спустя Как сделать чтобы после получения инфопоршня или захода в зону, выкидывало в главное меню, типо конец игры! Защитим мир от заразы - Зоны Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 22 июня, 2023 56 минут назад, SoDizzari сказал: Как сделать чтобы после получения инфопоршня или захода в зону, выкидывало в главное меню, типо конец игры! on_info = {+info} nil %=game_disconnect% on_info = {=actor_in_zone(ZONE)} nil %=game_disconnect% Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 22 июня, 2023 (изменено) SoDizzari del Изменено 22 июня, 2023 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 310 Опубликовано 22 июня, 2023 (изменено) Есть идеи, как мне сделать так, чтобы НПС смотрел строго в определённую точку? Планирую сделать такую сцену: один НПС сидит с руками за головой, а второй стоит рядом и тычет в него стволом. Я попытался сделать по аналогии с пленником в контейнерах, однако НПС с оружием смотрит выше, чем сидит пленник. Вейпоинт взгляда НПС с оружием ставит и в точно такой-же позиции, что и положение пленника, и в позиции чуть ниже (вейпоинт утопал в меше). Спойлер [logic@yan_tube_threaten_dolg] suitable = {=check_npc_name(yan_expedition_dolg_1_copy)} on_hit = hit on_death = death active = walker@walker_start prior = 200 [walker@walker_start] on_info = { +yan_psi_oko_kudrischev_in_tubes_dialog } remark@walker_death def_state_standing = prisoner corpse_detection_enabled = false gather_items_enabled = false combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = true path_walk = dolg_threat_walk path_look = dolg_threat_look meet = no_meet ... [walker@kudrischev_base] corpse_detection_enabled = false gather_items_enabled = false combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = true [logic@yan_tube_kudrischev] suitable = {=check_npc_name(kudrischev_copy)} active = walker@kudrischev_start prior = 200 [walker@kudrischev_start]:walker@kudrischev_base on_info = {=actor_in_zone(yan_tubes_kurdischev_force_kill) -yan_psi_oko_kudrischev_in_tubes_dialog } % +yan_psi_oko_kudrischev_in_tubes_dialog % on_info2 = { +yan_psi_oko_kudrischev_in_tubes_dialog } walker@kudrischev_kill def_state_standing = threat_na path_walk = kudrischev_threating_walk path_look = kudrischev_threating_look meet = meet Спойлер Изменено 22 июня, 2023 пользователем Prostomod Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 22 июня, 2023 Prostomod попробуй так для конвоира: [remark@ziel] anim = threat_na target = story | id_npc Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 310 Опубликовано 22 июня, 2023 (изменено) Neptun попробовал с ремарком, анимация отработала как надо, но результат мне не понравился т.к. хотелось бы сохранить возможность вести диалог ГГ с конвоиром. Решил заменить анимацию пленника, чтобы сгладить эту проблему, но возник другой вопрос: как можно сделать, чтобы НПС, с которым я веду диалог, продолжал отыгрывать анимацию в нужную сторону? Если в секции meet просто поставить victim (любой) = story_id, то НПС начинает колбаситься. Спойлер victim = 30 | yan_expedition_dolg_1_copy ;стори_ид персонажа, на которого должен смотреть собеседник victim_wpn = 30 | yan_expedition_dolg_1_copy snd_on_use = nil use = true use_wpn = true meet_dialog = yan_psi_oko_kudrischev_in_tubes trade_enable = false Изменено 22 июня, 2023 пользователем Prostomod Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 22 июня, 2023 Prostomod давай так: [meet@all] close_anim = nil close_victim = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 allow_break = false trade_enable = false close_snd_hello = nil close_snd_bye = nil Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoDizzari 51 Опубликовано 22 июня, 2023 Как сделать чтобы НПС после появления лежал раненным на земле? И актёр мог подойти и дать ему аптечку, а тот вставал. Защитим мир от заразы - Зоны Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 22 июня, 2023 Только что, SoDizzari сказал: Как сделать чтобы НПС после появления лежал раненным на земле? И актёр мог подойти и дать ему аптечку, а тот вставал. В активную логику вписываешь эту строку: wounded = wounded@help А потом саму секцию: [wounded@help] hp_state = 101|wounded_heavy@help_heavy hp_state_see = 101|wounded_heavy@help_heavy hp_victim = 101|actor hp_cover = 101|false hp_fight = 101|false autoheal = false enable_talk = true Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoDizzari 51 Опубликовано 22 июня, 2023 (изменено) Expression : assertion failed Function : CUIAchievements::Update File : D:\prog_repository\sources\trunk\xrGame\ui\UIAchievements.cpp Line : 44 Description : ai().script_engine().functor(m_functor_str, f) Создавал достижение, вылет, в каком из файлов ошибка? Проверяю всё вроде без ошибок. Дополнено 46 минуты спустя 4 часа назад, Neptun сказал: В активную логику вписываешь эту строку: wounded = wounded@help А потом саму секцию: [wounded@help] hp_state = 101|wounded_heavy@help_heavy hp_state_see = 101|wounded_heavy@help_heavy hp_victim = 101|actor hp_cover = 101|false hp_fight = 101|false autoheal = false enable_talk = true Я даю аптечку ей, но она не лечится! Изменено 22 июня, 2023 пользователем SoDizzari Защитим мир от заразы - Зоны Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 310 Опубликовано 22 июня, 2023 (изменено) Ещё хочу задать вопрос: есть ли какой-то способ заставить НПС выстрелить в члена своей группировки (и даже больше - в НПС, который в том же скваде, что и стрелок), причём так, чтобы жерва не меняла группировку? Или только писать скрипт для симуляции такого? Анимация threat_fire в walker не работает - НПС не стреляет, если на траектории выстрела есть дружественный НПС. Я хочу достичь такого эффекта: один НПС убивает своего товарища, однако после если ГГ глянет на группировки жертвы и убийцы, то она будет совпадать. Дополнено 6 минуты спустя SoDizzari Я так понял, тут надо поработать с параметрами hp_state и hp_state_see: первое - поведение при определённом ХП когда не видит игрока, а второе - тоже самое, но когда видит игрока. Вот на этой сайте (тык) нашёл огромную шпаргалку по настройке логики, в т.ч. по секциям разного вида. Спойлер hp_state= 30|help_me@help|10|wounded_heavy@help_heavy hp_state_see = 30|wounded@help_see|10|wounded_heavy@help_heavy psy_state = 50|{=best_pistol}psy_armed,psy_pain@wounded_psy|20|psy_shoot,psy_pain@wounded_psy_shoot,wounded_psy hp_victim = 30|actor|10|nil hp_cover = 30|true|10|false hp_fight = 30|true|10|false syndata = wounded@help ;best_pistol – проверка на то, что лучшее оружие NPC является пистолетом. Дополнено 52 минуты спустя И ещё сразу вопрос: в зп есть возможность смены эмбиента локации прямо во время игры? Например, играет одно на вей локации, но при заходе в какой-нибудь коллектор композиция меняется. Изменено 22 июня, 2023 пользователем Prostomod Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 626 Опубликовано 22 июня, 2023 Prostomod можно попробовать поменять отношения через npc:set_relation(game_object.enemy,who) (npc и who это два нпс). Группировка не должна поменяться но нпс по идее станут друг другу врагами. Не уверен на 100% что сработает если в одном скваде. 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BarmaGlot 244 Опубликовано 22 июня, 2023 Prostomod hitman:force_set_goodwill(-100500, target) и hitman:set_relation(game_object.enemy, target) как уже посоветовали. 1 Я логи в баню удалил, а вот за за рейдеры – не помню! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 23 июня, 2023 Приветствую. Кто пользовался =hit_npc? Подскажите, за что отвечает второй параметр (помечен цветом). Что это вообще такое? В интернете порыскал ничего не нашел? %=hit_npc(self:pri_a17_taras_dead:bip01_head:1:13)% Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 310 Опубликовано 23 июня, 2023 (изменено) Крим очень похоже, что это вейпоинт, со стороны которого наносится удар. Изменено 23 июня, 2023 пользователем Prostomod исправил явно неверный ответ 1 Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Drive 13 Опубликовано 23 июня, 2023 Здравствуйте, не могу найти ошибку в логике , но она работает не корректно, при входе в вообще другой рестриктор, не относящийся к этому присылаются сообщения "actor_suda_nelzya" и "ti_schto_tupoy" хоть и есть проверки, что актор в рестрикторе (...) здесь и там. Спойлер [logic] active = sr_idle@1 [sr_idle@1] on_info = {=actor_in_zone(derevnya_actor_suda_nelzya)} sr_idle@2 %=play_sound(svd_shoot) =send_tip(actor_suda_nelzya)% on_info2 = {+seif_door_open} sr_idle@end [sr_idle@2] on_game_timer = 60 | {=actor_in_zone(derevnya_actor_suda_nelzya)} %=play_sound(svd_shoot) =send_tip(ti_schto_tupoy) =dec_faction_goodwill_to_actor(stalker:-5000)% [sr_idle@end] Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 23 июня, 2023 39 минут назад, Drive сказал: Здравствуйте, не могу найти ошибку в логике Проверь размеры рестриктора, а также уточни его координаты. Дополнено 1 минуту спустя 1 час назад, Крим сказал: pri_a17_taras_dead Это точка - направление, в эту сторону НПС полетит после удара. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Drive 13 Опубликовано 23 июня, 2023 @Neptun Размеры которые нужны, они даже не соприкасаются друг с другом) Прохожу в одном, а логика срабатывает от другого Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты