Перейти к содержанию

BarmaGlot

Сталкеры
  • Публикаций

    623
  • Зарегистрирован

  • Посещение

Весь контент BarmaGlot

  1. xuyc Конфигурация системы не тянет, походу.
  2. Если речь о пункте выбора варианта диалога, приглашающем к торговле, то можно заменить вообще этот т.н. "стартовый диалог", например скриптом при помощи npc:set_start_dialog(special_dialog). Такой special_dialog надо создать по образцу прочих в XML/txt-ресурсах. Чисто предположение.
  3. Кстати, да, ещё один вполне рабочий "костыль". Единственно, проблема, что таких мест, где сторонние скрипты могут наносит хиты, в общем случае будет несколько (в предельном случае – много), и их все надо будет костылить по отдельности, так как централизованная обработка движкового коллбэка on_before_actor_hit() отсутствует. В той же Аномалии достаточно было бы в такой коллбэк единожды вставить обработчик. Emmis Я не понял, а в чём костыльность-то? По этой схеме CoP стандартно обрабатывает некоторые аспекты поведения ГГ и/или окружающей среды. Изменить урон от воздействий полностью вписывается в эту парадигму.
  4. Emmis В оригинале CoP можно работать только с property radiation у актёрского GameObject. Например: db.actor.radiation = 0.5 Актёр станет подвергаться линейному воздействию радиации и ощутимо терять здоровье, если нет защиты. Чтобы вылечить, достаточно задать 0 (уберёт радиационный хит, как и всю накопленную радиацию, но не восстановит здоровье; последнее можно регулировать при помощи db.actor.health). Доступные свойства: property bleeding property health property morale property power property psy_health property radiation Остаётся в bind_stalker.script в actor_binder:update() прикошачить функцию регуляции этих параметров. P.S. В Аномали-движке, в отличие от его материнского CoP, есть пара-тройка десятков функций и свойств по работе с иммунитетами и здоровьем актёра. update: я расписал про радиацию, не заметив что речь шла о психике, но суть та же, только свойство будет psy_health
  5. Один сталкер рассказывает другому: – Еду я на своём "Запоре" со свалки на армейские склады — всё нормально, со складов двигаю на агропром — тоже всё нормально, но когда с агропрома возвращаюсь на склады, то возникают обстоятельства непреодолимой силы. ☹️ – А ты на выхлоп глушак ставил? – участливо спрашивает его товарищ. 😱 – Ставил, как не ставить! 😐 – А бампер битый красил там, нет? 😮 – И бамп красил, и битмап. Как же не красить? Все красили, и я красил. Попиксельно. 🙄 – Ну, тогда не знаю... А хотя, может ты счётчик не скручивал? 🤔 – Так скручивал. В цикле for id=1,65534... Погоди, а причём тут счётчик? 🥵 – А вот это, батенька, зависит от контекста! 🧐
  6. АлеБард У вас либо пример отформатирован сайтои неверно, либо тьма тьмущая синтаксмических ошибок в строке db.actor:set_actor_position(vector():set(x -259.87408447266,y 19.950771331787,z 261.50744628906),level_vertex_id 1592445,game_vertex_id 0) а именно зачем-то указаны имена параметров x,y,z, level_vertex_id, game_vertex_id. Такая команда однозначно должна вылетать с логом.
  7. Какова формула расчёта физических (мировых) координат оружия, конкретно – strapped – на основе параметров из ini (strap_position, strap_orientation) и известных координат bone из strap_bone0? (До кучи, зачем нужен strap_bone1?) Полагаю, что в формуле не должно учитываться strap_orientation, и должны быть пара-тройка cos и sin преобразований, чтобы учесть текущие координаты и направление strap_bone0. Но не уверен. В движке разобраться не получилось из-за использования им не имеющих аналога в Lua матричных функций.
  8. Андрей Ветров Поставь(те) HD texture pack – и будет не позорно. Создатели, говорят, нерусские, так что им нашивка "Долга" наизнанку простительна. Хотя, может они так обозначили уровень грамотности среднего сталкерского контингента.
  9. leviathan Особо ничего не даёт, кроме моральных терзаний и мыслей "как бы чего не вышло, ведь или Сидор или Дегтярёв мне сделают бо-бо, противные!"
  10. ScarletFox Вопрос не понятен: по кому "прут", по кому "не прут". Распишите подробнее ситуацию. А вообще проблематично неписям двигаться в "свободном полёте" и при этом точно позиционироваться свои координаты. Они могут перемещаться по нодам сетки, это существенная дискретность. Так-то, в теории, можно им задать скриптовые алгоритмы обхода (и это нагрузит скриптовую обработку). Про движок не скажу, как он это делает и делает ли вообще.
  11. Tenates ZaKoN232 Через скрипт(ы) вещи типа спавна барахла делаются на порядок проще, чем мурыжить SDK и allspawn. Разумеется, это имхо. Так как я как раз по части SDK и олспавна полный ноль 🤣 Есть много способов заспавнить барахло скриптом, они все легко гуглятся. Начните гугление с alife():create()
  12. ZaKoN232 С xr_logic может быть уже множество причин, и не понятно без стека вызовов, куда копать. Попробуйте отлогировать чем-либо непосредственно перед 1270 строкой (погуглите-поищите как именно можно обустроить логирование). Возможно, поможет вызов callstack() (функция из _g.script) А так да, в переменной obj не содержится собственно game_object, или даже может содержаться, но движком соответствующий ему объект уже утилизован. Например, это может быть фантом псевдо-собаки: Lua видит его game_object, в то время как он по-факту уже исчез. Впрочем, такого рода вылеты как правило не имеют лога вовсе, так себе пример 🤔
  13. ZaKoN232 Редко, но метко базовые инициализации переменных в пространстве имён Lua могут глючить. Здесь Lua ещё не успела завести в пространстве db подпространство (поле таблицы) .actor, где и предполагалось хранить заспавленный game_object актёра. Полагаю, что во всех подобных случаях безопасно заменить обращение к конструкции db.actor:id() непосредственно на "вшитый" айди актёра, а именно строку-константу AC_ID (более толерантно к ошибкам будущих модов), или того проще на число 0 (собственно, айди актёра).
  14. another Раньше в шапке был рецепт, потом почему-то убрали. сцылко
  15. Серебряная Если музыку – то необязательно всё делать по стандарту СДК со всеми комментариями. Достаточно просто OGG, ну пошаманить, чтоб проигрывалось. Насчёт речи неписей не так уверен. Крим Создать и вызвать фунцию, где по вкусу можно напихать проигрывание партиклов и/или, например, вызывая explode() метод у заспавленных взывабельных gameobjects.
  16. Vodka Ага, ясно, спасибо! Пошарился Студией, профита не увидел. У меня нет проблем с дебагом под тестовым билдом, именно им я и разруливаю тяжёлые случаи. Это был вопрос именно по дампам.
  17. просмотрите в текстовом редакторе, с поиском по "ui_inGame2_PD_"
  18. 1nkvis Пропарсите ui_actor_newsmanager_icons.xml на предмет <texture id="ui_inGame2_PD_ Это из оригинала CoP
  19. Я примерно следующую мысль хотел донести: есть методики работы с безлоговыми вылетами. В основном, два принципа: расставить как можно больше дебаг-принтов в ожидаемых, да вообще – любых точках, где рядом, перед или как-то около можно ожидать вылетов. (Или не ожидать от слова "совсем, типа: "да ну нафиг, да тут всё ровно, это какая-то дичь!"). И второй метод, равный в своей продуктивности, но не всем доступный: если есть C++ исходники, то ловить баг через них под Visual Studio "на живую". И вот, бабах! Вы упомянули файлы дампов памяти. Которые, если вы знаете какие-то секреты, с большой буквы Секреты, реально могут СИЛЬНО облегчить жизнь при ловле багов. А то некоторые вылеты, – по вышеприведённым методикам, – могут ловиться днями, и даже неделями (ну, почти, для красного словца). Так что, вопрос использования файлов дампов для дебага – он реально актуальный. Сори за сумбур, пешу пат пивасом.
  20. makdm Я отправлял! Правда, ответа не дождался... 😪 Думаю, АлеБард знает какой-то секрет, как с ними работать.
  21. АлеБард Стесняюсь спросить, а что с этим файлом *.mdmp делать? Или кому там высылать, на деревню дедушке? 🤔Вопрос не праздный, давно интересно, как дебаггить безлоговые вылеты (опыт их есть у меня).
  22. DarkKel Возможно, поможет [meet@guard] close_distance = 20 close_victim = actor close_anim = guard use = false строка close_anim. Или переписывать под себя xr_meet.script. Впрочем, он не всегда контролирует встречу, возможно переподчинение более высокоприоритетным схемам.
  23. Shifr Подробности в студию, как именно "заспавнили", какой "функцией", каким "скриптом".
  24. bond251 Так скачайте и установите DirectX, гугл-яндекс в помощь, там по первым же ссылкам.
  25. Ответ содержится в вопросе. Решение: а) отключать моды. б) спрашивать в той теме, откуда взята "сборка" P.S. В логе нестандартная секция углюкнувшего непися. Рискну предположить, что с какой-то вероятностью такую могли применять аддоны типа HD-models или Dux-innumerable, то есть те, кто привносят новые сущности.