DMT 2 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 Как переместить всё содержимое некоторого тайника в инвентарь НПС ? Любые намёки, любые идеи пригодятся. А лучше, если есть готовое решение. Ссылка на комментарий
AndrewMor 526 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 (изменено) 03.04.2020 в 02:32, Norman Eisenherz сказал: Есть ли какой-то фикс для меток, которые остаются после сюжетных заданий (АТП, X-16, РГ-6)? Насчет фикса - не знаю, но в своем моде исправлял сам. Правда, дело было давно, и откопать не сумею теперь. Вывод: смотри квест пошагово и в нужный момент вызывай функцию удаления конкретной метки. Добавлю: та еще мутота, но все решаемо. В частности, по РГ-6 долго не мог добиться результата, в итоге все ж сделал. Но где и что правил - увы, не помню. Изменено 4 Апреля 2020 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
Zander_driver 10 330 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 2 часа назад, DMT сказал: Как переместить всё содержимое некоторого тайника в инвентарь НПС ? Как-то так treasure:transfer_item(obj, npc) Где treasure, obj, npc - это клиентские объекты тайника, перемещаемого итема, и НПС, соответственно. И делать надо в цикле, перебирая все итемы в тайнике. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Kirgudu 1 176 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 17 часов назад, aka_sektor сказал: Это какая-то проверка, помогающая найти ID объекта? Да не проверка это, не ищи там глубокого смысла. Цитата вырвана из контекста; речь идёт всего лишь о том, что имея id, можно получить сам объект. Инструмент Ссылка на комментарий
UriZzz 1 001 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 (изменено) @AndrewMor, вопросег такой, дебильный, а можно ли как проверить - висит ли маркер на НПС до сих пор или самоудалился? Изменено 4 Апреля 2020 пользователем W.A.S.P. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
naxac 2 421 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 @UriZzz, if level.map_has_object_spot(obj.id, "green_location") ~= 0 then ... где obj - серверный объект нпс. 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
aka_sektor 1 463 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 3 часа назад, Kirgudu сказал: имея id, можно получить сам объект Просто там дело было в вылете: https://ap-pro.ru/forum/100-9999-826159-16-1452077092 И вопрос касательно того, что значат цифры 1394: child registered but not found [1394] Думал это может story_id а выходит, просто id, который никем кроме движка не указывается. Отсюда вопрос, как зная id из вылета, найти объект с таким id? Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
Zander_driver 10 330 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 13 минут назад, aka_sektor сказал: Отсюда вопрос, как зная id из вылета, найти объект с таким id? Вот так 21 час назад, aka_sektor сказал: alife():object(id) - возвращает объект, с таким номером. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Nikolai990 0 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 Всем привет, кто может помочь локацию соединить с остальными, буду очень благодарен. Ссылка на комментарий
naxac 2 421 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 @Nikolai990, *.graph recompiler (ggRC) v.0.7: http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewdownload&cid=37 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Okichi 905 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 3 часа назад, aka_sektor сказал: как зная id из вылета, найти объект с таким id? Боюсь, что в данном случае - никак, потому что этого объекта уже нет. Здесь, емнип, имеется парент, у которого есть зарегистрированный в игре потомок, но реально потомка уже не существует. Точно такой же вылет был, причем в качестве парента указывался объект "лестница". Так и не смогла отрыть, что же за "чайлд" мог быть у лестницы... След от кругов на воде - это тоже след (с) Ссылка на комментарий
Zander_driver 10 330 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 8 минут назад, Okichi сказал: Так и не смогла отрыть, что же за "чайлд" мог быть у лестницы... Такие вылеты и такие взаимосвязи ловятся перебором серверных объектов при загрузке сейва. На постоянку такие проверки вешать на лоад конечно не надо. Но если вылет возник - то повесить. Перебрать все 65к объектов, у них проверить парент, получить этот парент, проверить его класс, и соответствует ли он тому набору классов, которому позволено иметь чилды. При нормально устроенной игре, эта вся канитель не даст ничего, т.е. 65к проверок вернут нулевой результат. А если вот такой вылет возникает, то как раз и будет поймана эта пара до исчезновения чилда, до вылета, до вообще всего что такая парочка могла бы натворить. И выводится в лог - владелец такой-то, секция такая то. Чилд такой-то, секция такая-то. Дальше уже дело техники, выяснить что это за фигня и как так получилось, что они воссоединились. Устраняется причина, а затем и описанная проверка. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Okichi 905 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 1 минуту назад, Zander_driver сказал: А если вот такой вылет возникает, то как раз и будет поймана эта пара до исчезновения чилда, до вылета, Дело в том, что на момент, когда мы стали ловить этот вылет, объекта-потомка с таким id в игре УЖЕ не было. Конечно же, он наверняка существовал N сэйвов назад, но у нас этих N не было, а были последние несколько - и в них объекта-потомка с таким id не существовало тоже. Поскольку вылет такой случался при автосэйве (переход с локи на локу) и только в нем - а автосэйв при этом на другой локации создавался нормально, то дальше не копали. След от кругов на воде - это тоже след (с) Ссылка на комментарий
DMT 2 Опубликовано 5 Апреля 2020 Поделиться Опубликовано 5 Апреля 2020 04.04.2020 в 10:03, Zander_driver сказал: Где treasure, obj, npc - это клиентские объекты тайника, перемещаемого итема, и НПС, соответственно. И делать надо в цикле, перебирая все итемы в тайнике. А как сделать? Я же заранее не знаю, что окажется в тайнике. Ссылка на комментарий
Zander_driver 10 330 Опубликовано 5 Апреля 2020 Поделиться Опубликовано 5 Апреля 2020 10 минут назад, DMT сказал: не знаю, что окажется в тайнике. А зачем это знать? Функции iterate_inventory в тайниках тоже работают, перебирая инвентарь тайника. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
aka_sektor 1 463 Опубликовано 6 Апреля 2020 Поделиться Опубликовано 6 Апреля 2020 04.04.2020 в 19:48, Okichi сказал: в данном случае - никак, потому что этого объекта уже нет. Парадокс. А вот тут писали: 17.02.2012 в 00:03, smeh сказал: LuaChecker-0.3 Может я не правильно пользуюсь? 17.02.2012 в 23:01, Artos сказал: проверяй файлы чекером. Только не тем, который ты упоминал, а "Syntax Checker" (by Gun12), который тебе уже посоветовал Капрал Хикс 17.02.2012 в 11:19, Капрал Хикс сказал: script Syntax Checker - есть на stalkerin.gameru.net. Не виснет на больших скриптах и может скрипты проверять группой. Вот он: http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=447 Есть ли какое-то принципиальное отличие от чекера представленного в утилите SciTe: https://modfaq.ru/SciTE (кста, вопрос к @Charsi тоже, он советовал) Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
Okichi 905 Опубликовано 7 Апреля 2020 Поделиться Опубликовано 7 Апреля 2020 22 часа назад, aka_sektor сказал: Парадокс Ну вот выше Зандер_драйвер дал схему, как можно попробовать обнаружить. Искать по предыдущим сэйвам, в которых этот объект-потомок еще существовал. Но иногда в некоторых модах сразу при НИ запускается удаление ненужных объектов ( то, что есть в аллспавне, например, но реально не требуется в игре). Тогда, если этот чайлд вот так, с НИ, удалили - то уже не найти. Тем более, что узнаем мы об этом ( получим вылет) только тогда, когда придем на локу, где этот удаленный объект находился. И то - не сразу, а когда будем там перегружаться или переходить на другой уровень: вылет будет при разрушении уровня, т.к., если я правильно поняла dsh-а, при разрушении уровня игра сначала пытается удалить "потомков", и только потом - их парентов. След от кругов на воде - это тоже след (с) Ссылка на комментарий
AndrewMor 526 Опубликовано 7 Апреля 2020 Поделиться Опубликовано 7 Апреля 2020 1 час назад, Okichi сказал: Но иногда в некоторых модах сразу при НИ запускается удаление ненужных объектов Есть такое дело. Сам в моде так делал, когда объект не нужен со старта НИ, но в дальнейшем для квеста требуется. Но заспавнить заново проще по spawn_story_id (ессно, его изначально нужно в спавне прописать). Тогда такой объект наверно можно и отследить. Сталкер - наше всё! Ссылка на комментарий
aka_sektor 1 463 Опубликовано 7 Апреля 2020 Поделиться Опубликовано 7 Апреля 2020 Кто разбирается в логике? Беглым взглядом гляньте: Скрытый текст [logic@ex_gar_eger] suitable = {=check_npc_name(ex_gar_eger)} prior = 200 active = animpoint@ex_gar_eger level_spot = quest_npc [animpoint@ex_gar_eger] cover_name = ex_gar_a1_eger_cover avail_animations = animpoint_sit_normal combat_ignore_cond = true combat_ignore_keep_when_attacked = true gather_items_enabled = false help_wounded_enabled = true corpse_detection_enabled = false invulnerable = false def_state_moving = assault on_info = {+ops_quest_taked} %=release_npc% meet = meet@ex_gar_eger [meet@ex_gar_eger] close_anim = nil close_victim = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 close_snd_distance = 3 use = nil close_snd_hello = nil trade_enable = true allow_break = false meet_on_talking = true Чего неправильно может быть? Выяснил только, что вылетает из-за строчки: on_info = {+ops_quest_taked} %=release_npc% Если убрать %=release_npc%, то вылета нет. Это для чего служит? Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
Okichi 905 Опубликовано 7 Апреля 2020 Поделиться Опубликовано 7 Апреля 2020 @aka_sektor, это попытка выполнить ф-ю release_npc, когда получаем поршень ops_quest_taked. Надо проверить, существует ли эта ф-я в xr_effects.script. 2 След от кругов на воде - это тоже след (с) Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти