Labadal 55 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля @CiberZold ой, я не такой извращенец, чтоб в блокноте кодить)) Саблайм 3)) Ну или нотпад на крайний случай) @naxac@CiberZold Смотрите, какая забавная вещь получается. Взял сейчас чистый ТЧ. Запустил - играбельно. Распаковал кордон, залез, внес кое-какие правки, для теста. сделал build (без ошибок), сделал xrAi с ключами -f -g -m -s, тоже без ошибок. Запускаю игру - опять получаю безлоговый вылет, сам лог файл так же заканчивается этим: Сервер: Старт... ! Unknown command: start_game_callback_called Так что дело вряд-ли в повиснутой логике (ну либо сдк её ломает). С чем может быть связано? God save Hatsune Miku! Ссылка на комментарий
CiberZold 141 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля @Labadal у тебя пишет ! Unknown command ,такое обычно выдаёт если вносились правки в движок, либо в скриптах ошибка. Ссылка на комментарий
Labadal 55 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля @CiberZold Unknown command - обычно пишет, когда ты записи в лог отправляешь. В данном случае "start_game_callback_called" отправляется функцией: function start_game_callback() printf ("start_game_callback called") ←←← вот эта вот строка task_manager.clear_task_manager() treasure_manager.clear_treasure_manager() xr_sound.clear_all_sound_object() dialog_manager.fill_phrase_table() end @Купер для ясности - распаковал ОРИГИНАЛЬНУЮ локацию, добавил на карту ОДИН ЭКЗОСКЕЛЕТ, сбилдил заново и собрал с помощью xrAI. После чего ловлю безлоговый вылет. Не думаю, что это правка как-то сильно повлияла на происходящее. God save Hatsune Miku! Ссылка на комментарий
CiberZold 141 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля 1 час назад, Labadal сказал: собрал с помощью xrAI значит коряво собрал локацию, логику смотри - по твоим словам - единственная манипуляция распаковал Кордон (кордон рабочий ), собрал обратно - вылет (значит коряво собрал, или ошибка в тексте сборщика или сам сборщик косячный). Ссылка на комментарий
Labadal 55 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля @CiberZold В том-то и дело, что со сборщиком всё нормально. Раньше ведь всё было норм. God save Hatsune Miku! Ссылка на комментарий
CiberZold 141 Опубликовано 1 Августа Поделиться Опубликовано 1 Августа @Labadal я же говорю, ты сам может накосячил в тексте, я когда впервые разбирал спавн ACDC, я правя текстовые файлы спавна, то ли пропустил номер секции спавна , они шли не подряд, сборщиком собрал спавн ,не было никаких ошибок при сборке - всё собралось, но игра вылетала при загрузке спавна, потом всё перепроверил и пришлось вручную проверять чтоб не было пропуском номеров секций, ведь это же не SDK ,который тебе сам всё корректно проставит, при компиляции, а сторонний сборщик, который переводит бинарные файлы в текстовые и обратно, тут нельзя самому юзеру нарушать структуру исходников. Ссылка на комментарий
CiberZold 141 Опубликовано 1 Августа Поделиться Опубликовано 1 Августа 2 часа назад, Labadal сказал: В каком тексте я накосячил? Причем тут вообще ACDC?? при том что это был пример, проблема у тебя из-за твоих косяков, а мы по минимуму инфы должны гадать что ты там косячишь Ссылка на комментарий
abramcumner 1 117 Опубликовано 1 Августа Поделиться Опубликовано 1 Августа @Labadal попробуй запустить на OGSR-Engine. Так у тебя должен появиться нормальный лог. Без него так и будешь дальше тыкаться как слепой котенок. 1 Ссылка на комментарий
Капрал Хикс 497 Опубликовано 1 Августа Поделиться Опубликовано 1 Августа Такой вопрос... Так как отследить взятое однотипное задание из скрипта таскменеджера я так и не сумел, есть ли какой-то костыльный метод отслеживания наличия у ГГ артикла с описанием задания? Ведь у каждого квеста типа принести артефакт например есть описание... Ссылка на комментарий
Norman Eisenherz 276 Опубликовано 1 Августа Поделиться Опубликовано 1 Августа 1. Прошлый ответ не подошел или был пропущен? https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#comment-1480857 2. Статьи выдаются только через инфо-поршни – их и проверять. 2.1. Статья не является обязательной частью описания квеста. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
naxac 2 404 Опубликовано 2 Августа Поделиться Опубликовано 2 Августа 31.07.2024 в 13:39, Labadal сказал: Запускаю игру - опять получаю безлоговый вылет Была у меня когда-то давно такая история при сборке спавна с помощью xrAI. Проблема, насколько я понял тогда, в самом xrAI. Есть, вроде как, какая-то правленая версия, но я тогда её так и не нашёл - перешел на АСДС. Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Labadal 55 Опубликовано 2 Августа Поделиться Опубликовано 2 Августа @naxac всё оказалось намного проще, нужно было просто скомпилировать локу с помощью xrLC а потом через xrAI графы и спавн собирать)) Такой еще вопросик: ловлю безлоговый вылет при разговоре с НПС, зачастую в момент когда отправлю неписю предпоследнюю фразу диалога, за которой он должен ответить последней. Первым делом тоже подумал, что отсутствует функция, которая выдаётся после этой фразы, но нет, вылетает даже в пустых от различных функций диалоги. Есть моменты, когда вылатает при попытке поговорить. Есть моменты, когда нпс тупо стоит на месте спавна и с ним не поговорить, однако вдупляется после сейвлоада. в логфайле последней записью почти всегда это: *INFO*:_npc='single_player'_id='ui_talk_hide' в некоторых случаях пишет это: *INFO*:_npc='single_player'_id='ид_нпс_с_которым_разговор' God save Hatsune Miku! Ссылка на комментарий
Купер 2 683 Опубликовано 2 Августа Поделиться Опубликовано 2 Августа 2 часа назад, Labadal сказал: Есть моменты, когда нпс тупо стоит на месте спавна и с ним не поговорить, однако вдупляется после сейвлоада Снова проблемы с повисающей логикой. Разбираться с причиной, а не последствиями. 1 Ссылка на комментарий
Labadal 55 Опубликовано 2 Августа Поделиться Опубликовано 2 Августа @Купер оказалось, что это не моя проблема. в оригинале этот же нпс так же "подвисает" (в деревне новичков). Понимаю, что нужно разбираться с причиной, однако её бы найти сначала. God save Hatsune Miku! Ссылка на комментарий
Капрал Хикс 497 Опубликовано 2 Августа Поделиться Опубликовано 2 Августа @Norman Eisenherz , я к стыду своему так и не понял, как сделать привязку согласно совету. Не хватает знаний. Ссылка на комментарий
Labadal 55 Опубликовано 2 Августа Поделиться Опубликовано 2 Августа (изменено) @Капрал Хикс Вообще не понятно зачем это нужно? Но даже если и так, в самом деле, задания просто так не выдаются, - поршнем зачастую. Вот и отслеживай этот поршень, если он у тебя есть, и выдавай другой, например. Можешь что-то типа этого: local function name(actor, info_pairs) for _, pair in ipairs(info_pairs) do if actor:has_info(pair.check) then actor:give_info_portion(pair.give) break end end end local info_pairs = { {check = "поршень, по которому выдаётся первый квест", give = "инфопоршень, который выдаётся, если он есть"}, {check = "поршень, по которому выдаётся второй квест", give = "инфопоршень, который выдаётся, если он есть"}, {check = "поршень, по которому выдаётся третий квест", give = "инфопоршень, который выдаётся, если он есть"} } check_and_give_info(db.actor, info_pairs) это лишь примерная конструкция, я бы даже сказал псевдокод. Ну, или стандартным: if db.actor:has_info("поршень, по которому выдаётся первый квест") then db.actor:give_info_portion("инфопоршень, который выдаётся, если он есть") elseif db.actor:has_info("поршень, по которому выдаётся второй квест") then db.actor:give_info_portion("инфопоршень, который выдаётся, если он есть") elseif db.actor:has_info("поршень, по которому выдаётся третий квест") then db.actor:give_info_portion("инфопоршень, который выдаётся, если он есть") @Капрал Хикс кстати, есть ещё такой вариант, он отлавливает состояние квеста, попробуй его: local task_status = db.actor:get_task_state("тут пишешь id квеста", 0) -- id квеста из <game_task id="id квеста"> if task_status == 0 then -- Действия, если задание провалено elseif task_status == 2 then -- Действия, если задание выполнено elseif task_status == 1 then -- Действия, если задание активно elseif task_status == -1 then -- Действия, если задания нет ни в проваленных, ни в выполненных, ни в активных end Изменено 2 Августа пользователем Labadal 1 God save Hatsune Miku! Ссылка на комментарий
Капрал Хикс 497 Опубликовано 2 Августа Поделиться Опубликовано 2 Августа (изменено) 2 часа назад, Labadal сказал: кстати, есть ещё такой вариант, он отлавливает состояние квеста, попробуй его: О, пожалуй его и буду пробовать. Суть такой странной пожелалки вот в чём: я создал тип квеста на основе стандартного однотипного, где вместо поиска предмета задание засчитывается при выдаче определённого инфопоршня. Т.е. в таргете стоит не хвост собаки получить например, а имя инфопоршня. Нужный инфопоршень конкретного 1 квеста на пробу пера выдаётся при наличии 4-х, которые выдаются при заходе ГГ в 4 спейс-рестриктора. Так вот, мне нужно в логике спейс-рестриктора добавить условие-заглушку, чтобы инфопоршень выдавался только при наличии активного квеста. Иначе, если игрок раньше времени придёт туда, квест как нужно работать не будет. Разумеется, всё это можно было бы сделать гораздо проще через отдельно созданный квест, где бы в диалоге на его взятие выдавался бы поршень, который можно уже отследить, но захотелось мне вот ещё модифицировать стандартный task_manager, после того как я добавил туда возможность выдачи квестов на поиск предметов на любом классе. Изменено 2 Августа пользователем Капрал Хикс Ссылка на комментарий
Norman Eisenherz 276 Опубликовано 2 Августа Поделиться Опубликовано 2 Августа Для привязки достаточно обернуть указанные действия в функцию и вызывать ее по необходимости – можно из логики того же рестриктора: on_actor_inside = … %=info_check% [xr_effects.script] function info_check() local tm = task_manager.get_random_task() local task = tm.task_info[type_parent] if task.status = "selected" then … end Требуется только подставить заголовок нужной задачи (artefact_wolf какой-нибудь) и конечное действие. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Капрал Хикс 497 Опубликовано 2 Августа Поделиться Опубликовано 2 Августа Будем делать, за советы спасибо! Ещё, други, в Зове Припяти можно при клике на найденные КПК в инвентаре слушать звуковое сообщение, которое выдаётся при его нахождении. Кто-нибудь в ТЧ такое перетаскивал? Ссылка на комментарий
ted.80 249 Опубликовано 2 Августа Поделиться Опубликовано 2 Августа 2 часа назад, Капрал Хикс сказал: в Зове Припяти можно при клике на найденные КПК в инвентаре слушать звуковое сообщение, ЕМНИП - сообщение воспроизводится при поднятии КПК, а при наведении курсора - во всплывающем окошке появляется текст, подобное в ТЧ было в нычке стрелка при поднятии флешки, вот тут память меня подводит или в AMK нашем и родном или в НарСоль, ну или маразм меня подводит Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти