Overf1rst 1 502 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
61dimon161 67 Опубликовано Четверг в 09:38 Приветствую. подскажите команду для скриптов, что бы заспавнить предмет в инвертори бокс на уровне. Не могу найти инфу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано Четверг в 10:10 denis2000 С проверкой НПС методом precondition таким скриптом Спойлер function uni_dialog_precond(first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) return character_community(npc) == "stalker" or character_community(npc) == "bandit" or character_community(npc) == "freedom" or character_community(npc) == "dolg" end получаю вылет Expression : fatal error Function : CScriptEngine::lua_error File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp Line : 180 Description : <no expression> Arguments : LUA error: ....l.k.e.r - clear sky\gamedata\scripts\dialogs.script:542: attempt to call global 'character_community' (a nil value) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 971 Опубликовано Четверг в 10:20 Paradox27kms character_community - это функция из _g.script, проверьте ее наличие и то, что она не закоментирована. 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
61dimon161 67 Опубликовано Четверг в 10:58 Приветствую, где мне найти функцию - level.map_add_object_spot()? Хочу с её помощью добавить новый иконки на карту. Никак не получается найти ссылку на level. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
av661194 153 Опубликовано Четверг в 11:20 61dimon161 Пространство имён level экспортируется в скрипты движком. Подробнее здесь - https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/?do=findComment&comment=343515 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 30 Опубликовано Четверг в 11:41 2 часа назад, 61dimon161 сказал: заспавнить alife():create(секция_предмета, координаты_ящика, lv_id_ящика, gv_id_ящика, id_ящика) Если что вот что бы удалить function delete_item_in_inventory_box(actor, npc, p) --p[1] - стори_ид_ящика --p[2] - имя_предмета local inv_box = get_story_object(p[1]) local items_table = {} local release_item = true local function add_items(inv_box, item) table.insert(items_table, item) end inv_box:iterate_inventory_box(add_items, inv_box) for k,v in pairs(items_table) do if (v:name() == p[2]) and release_item then alife():release(alife():object(v:id()), true) release_item = false end end end Дополнено 21 минуты спустя 1 час назад, 61dimon161 сказал: Хочу с её помощью добавить новый иконки Какою именно иконку и куда вы её хотите добавить? «Если долго мучиться, что-нибудь получится» Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано Четверг в 16:20 (изменено) denis2000 спасибо я юзаю чн и там действительно в _g.script нигде не задействована строчка character_community, хотя скрипты в игре есть указывающие на неё, пришлось брать из зп. Дополнено 51 минуты спустя denis2000 Не сработало. Нашел более рабочий вариант Спойлер function level_zaton(first_speaker, second_speaker) return level.name() == "zaton" end Дополнено 30 минуты спустя denis2000 и ещё возможно ли реализовать такое что например есть два нпс с одинаковым диалогом и нужно сделать так чтобы у одного нпс я его пролистал и он пропал а у другого тот же диалог остался? Желательно при условии чтобы это были симмуляционные челы. Изменено Четверг в 23:51 пользователем Paradox27kms Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 971 Опубликовано Пятница в 06:29 (изменено) 14 часов назад, Paradox27kms сказал: Нашел более рабочий вариант С более рабочими кавычками 14 часов назад, Paradox27kms сказал: есть два нпс с одинаковым диалогом и нужно сделать так чтобы у одного нпс я его пролистал и он пропал а у другого тот же диалог остался? Конечно. Используйте precondition с проверкой инфопорции выданной данному НПС. А в конце диалога через action выдавайте соответственно. Мало кто знает, а еще меньше использует то, что не только у ГГ есть инфопрции, они есть у каждого объекта. Спойлер <precondition>dialogs.dont_has_info_dialog_complit</precondition> <action>dialogs.give_info_dialog_complit</action> function dont_has_info_dialog_complit(first_speaker, second_speaker) local npc = who_is_npc(first_speaker, second_speaker) return not npc:has_info("dialog_complit") end function give_info_dialog_complit(first_speaker, second_speaker) local npc = who_is_npc(first_speaker, second_speaker) npc:give_info_portion("dialog_complit") end Изменено Пятница в 06:31 пользователем denis2000 1 1 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 659 Опубликовано Пятница в 10:48 (изменено) 4 часа назад, denis2000 сказал: Мало кто знает, а еще меньше использует то, что не только у ГГ есть инфопрции, они есть у каждого объекта. Прикольно. Я это делал с прикреплением спец. инфопорции, включающей уникальное имя симуляционного НПС внутри, к актору, и последующей проверкой на него в диалоге. Либо спавном невидимых предметов в инвентарь НПС. Первое в моем случае нужно еще для других вещей, а вот второе наверно правильнее полностью заменить на инфопоршни. Очень полезное знание. Изменено Пятница в 10:56 пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано Пятница в 15:47 (изменено) denis2000 Как сделать чтобы при нажатии на горячую клавишу воспроизводилось действие, например на ESC? К примеру выдать поршень P.S я пока знаю способ только из различных ui менюшек вызвать скрипт но это мне немножко не подходит. Или я думаю можно придумать функцию в xr_effects и запустить при старте игры в какой-нибудь рестриктор. Хотя наверное думаю можно просто и через диалог запустить скрипт. Попробую протестировать данную функцию Спойлер function key_binder(dik, keyboard_action, self) if db.actor then if dik == DIK_keys.DIK_ESC then db.actor:give_info_portion("infoportion") end end end Изменено Пятница в 16:53 пользователем Paradox27kms Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 676 Опубликовано Пятница в 18:29 2 часа назад, Paradox27kms сказал: Как сделать чтобы при нажатии на горячую клавишу воспроизводилось действие, например на ESC? Проще назначить "горячей" клавишей "TAB". Тогда проверка будет выглядеть так local hud = get_hud() if hud:GetCustomStatic("main_task") then ------здесь то, что нужно ------сделать при нажатии TAB end 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано Пятница в 19:31 makdm Ну мне нужно было именно на ESC я хотел реализовать так чтобы поршень активировался когда выходишь из диалога с НПС, но я пересмотрел этот способ и сделал по другому. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
стрелок_2009 7 Опубликовано Суббота в 08:27 Помогите пожалуйста Создал группировку, прописал лут в death_items_by_communities, захожу в игру, спавню члена группировки и убиваю его а у него чейзер и противозаз, хотя я взять секцию лута у сталкеров а лут спавнится полностью даже арты падали хрия я их и не прописывал Что делать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 30 Опубликовано Суббота в 23:12 стрелок_2009 1 «Если долго мучиться, что-нибудь получится» Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 659 Опубликовано Воскресенье в 02:04 Подскажите пожалуйста, а куда игра запекает файлы для Статического освещения? Пытаюсь сейчас разобраться в файловых структурах. Мне почему-то казалось, что это lmap# файлы в папке с уровнем. Просто они выглядят как лайтмап, что было бы логично. Но я попробовал их все удалить, а в игре все как было, так и осталось по R1 освещению, насколько я могу судить. При этом есть папка terrain с похожими файлами, и вот от их удаления на террейне освещение ломается, как и ожидалось. А где же аналог для не-террейн геометрии? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано Воскресенье в 03:11 Можно ли выдать инфопоршень после просмотра через бинокль (или просто) в определенную точку? И возможно ли сделать временный источник звука? Чтобы на определенной локации всё время через loop играл звук, но после получения инфопоршня - исчезал. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано Воскресенье в 11:34 (изменено) Нужна проверка на ОТСУТСТВИЕ предмета у ГГ. Я нашел только на наличие Спойлер function has_item_pda_2(task, objective) if db.actor ~= nil then return db.actor:object("device_pda_digger") ~= nil end return false end Изменено Воскресенье в 11:39 пользователем Paradox27kms Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 971 Опубликовано Воскресенье в 11:38 (изменено) Mawrak При компиляции в папку уровня. Файлы lmap#***.dds. Вполне возможно, что движок может их читать из разных папок. Это лайтмапы, для ВСЕЙ геометрии. NewValveCom Да, в моде ФОТОГРАФ есть такая фича, там нужно фотографировать определенные объекты. Как именно сделано там я не смотрел, вполне возможно, что через вектор направления камеры ГГ (см. функцию npc_in_actor_frustrum). Вообще нет проблемы проиграть зацикленный звук и отключить его в любой момент. Paradox27kms !actor_has_item Изменено Воскресенье в 11:53 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано Воскресенье в 11:57 denis2000 Это через логику а мне нужно через precondition Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 30 Опубликовано Воскресенье в 11:59 Paradox27kms function название_функции() if db.actor:object("предмет") == nil then --действие end end Дополнено 20 минуты спустя https://www.amk-team.ru/forum/topic/6458-uroki-po-modostroeniyu/?do=findComment&comment=670975 «Если долго мучиться, что-нибудь получится» Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 659 Опубликовано Воскресенье в 15:37 4 часа назад, denis2000 сказал: Mawrak При компиляции в папку уровня. Файлы lmap#***.dds. Вполне возможно, что движок может их читать из разных папок. Это лайтмапы, для ВСЕЙ геометрии. Прикол в том что я когда удаляю эти файлы, у меня ничего визуально не меняется. Мне казалось что от этот освещение должно сломаться и стать равномерным. Ну или хотя бы вылет должен быть. А по факту вообще ноль изменений: Спойлер Спойлер Шейдер кеш чистил перед каждым скрином. Может на локе статика вообще изначально не работает корректно? Дополнено 1 минуту спустя Для сравнения если удалить лайтмап по террейну: Спойлер Дополнено 11 минуты спустя Походу реально статика геометрии сломана, на же не должна вот так выглядеть? Спойлер Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dviynyk 53 Опубликовано Воскресенье в 16:34 как сделать так, чтобы ГГ мог проходить сквозь колючую проволоку? вчера искал по этой теме - ничё не нашел. полчаса конфиги читал, не могу понять как это реализуется Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 659 Опубликовано Воскресенье в 16:41 Dviynyk по идее это делается через материалы, нужно найти материал проволоки и назначить ему нужные параметры (прилагаю файл из распаковки где я делал его проходимым, можно по аналогии сделать свой) earth_slide.ltx 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dviynyk 53 Опубликовано Воскресенье в 16:49 6 минут назад, Mawrak сказал: по идее это делается через материалы посмотрел, у меня нету никаких материалов в геймдате ЗП. и геймдате сдк тоже нет такой директории как в конфиге Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 659 Опубликовано Воскресенье в 16:53 Dviynyk файл gamemtl.xr Можно распаковывать скриптом: https://xray-engine.org/index.php?title=gamemtl.xr_compiler/decompiler_(gamemtl.xr_cdc) Вроде можно по-нормальному через СДК их настраивать тоже 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты