Начинающий
- Статус
- Онлайн
- Регистрация
- 19 Окт 2025
- Сообщения
- 93
- Реакции
- 4
Народ, кто сидит на neverlose.cc под CS2 и шарит в их Lua API, нужна помощь разобраться с одной странной проблемой со скриптом.
Пишу свой Lua-скрипт под CS2 (через встроенный Lua-движок Neverlose), ничего сверхсложного: немного визуала + пара простых автоматизаций на основе состояния игрока и энтити. По идее всё должно работать стабильно, но на практике скрипт ведёт себя очень странно.
Что происходит по факту:
- Скрипт без ошибок загружается через Neverlose, в списке Lua отмечен как активный.
- Первое время всё работает: меню открывается, визуал рисуется, callbacks отрабатывают.
- Через какое-то время (иногда сразу после захода в матч, иногда посреди катки) скрипт как будто “отваливается”:
- часть функций перестаёт вызываться,
- элементы интерфейса не обновляются,
- иногда Neverlose просто тихо выгружает Lua без понятной ошибки в консоли.
Ошибок типа “This entity is not a player” или явных стэктрейсов, как у некоторых в тредах, у меня нет — лог часто вообще чистый, как будто скрипт просто перестали вызывать.
Использую стандартные вещи из API:
- ui.find / ui.get / ui.set
- callbacks вроде `callbacks.add("paint", ...)`, `callbacks.add("createmove", ...)`
- немного работы с entity list (игроки, local player) без каких-то жёстких экспериментов
Идея скрипта такая:
- в paint отрисовываю пару визуальных элементов, завязанных на состояние local player;
- в createmove чуть подправляю движение/aim на основе значений из меню.
Подозрения пока такие:
- либо я где-то криво работаю с callbacks (например, добавляю/удаляю их не в том месте, и Neverlose в итоге их сбрасывает),
- либо в CS2-версии Lua API есть какие-то ограничения/особенности, о которых я не знаю (типа не вызывать тяжёлую логику в каждом paint/createmove),
- либо я обращаюсь к entity не в тот момент (nil / невалидный указатель), и движок тихо гасит скрипт без подробного вывода.
Собственно, вопросы к тем, кто уже писал свои Lua под Neverlose CS2:
- Было ли у кого так, что скрипт “живёт” только первое время, а потом частично или полностью перестаёт работать без явной ошибки?
- Есть ли какие-то неочевидные правила по использованию callbacks (куда нельзя пихать тяжёлый код, что не стоит делать в paint/createmove и т.п.)?
- Как вы дебажите Lua под Neverlose: есть ли нормальный способ логировать всё, что угодно, и ловить момент, когда скрипт перестаёт вызываться (например, свой лог в файл, частые print-ы и т.д.)?
Если нужно — могу чуть позже перекинуть сюда упрощённый кусок кода без лишней логики, чтобы не светить полностью скрипт, но пока хочется понять в целом, это я что-то делаю не по канону, или Lua API под CS2 у Neverlose ещё ведёт себя криво и нужно обходить некоторые моменты.
Пишу свой Lua-скрипт под CS2 (через встроенный Lua-движок Neverlose), ничего сверхсложного: немного визуала + пара простых автоматизаций на основе состояния игрока и энтити. По идее всё должно работать стабильно, но на практике скрипт ведёт себя очень странно.
Что происходит по факту:
- Скрипт без ошибок загружается через Neverlose, в списке Lua отмечен как активный.
- Первое время всё работает: меню открывается, визуал рисуется, callbacks отрабатывают.
- Через какое-то время (иногда сразу после захода в матч, иногда посреди катки) скрипт как будто “отваливается”:
- часть функций перестаёт вызываться,
- элементы интерфейса не обновляются,
- иногда Neverlose просто тихо выгружает Lua без понятной ошибки в консоли.
Ошибок типа “This entity is not a player” или явных стэктрейсов, как у некоторых в тредах, у меня нет — лог часто вообще чистый, как будто скрипт просто перестали вызывать.
Использую стандартные вещи из API:
- ui.find / ui.get / ui.set
- callbacks вроде `callbacks.add("paint", ...)`, `callbacks.add("createmove", ...)`
- немного работы с entity list (игроки, local player) без каких-то жёстких экспериментов
Идея скрипта такая:
- в paint отрисовываю пару визуальных элементов, завязанных на состояние local player;
- в createmove чуть подправляю движение/aim на основе значений из меню.
Подозрения пока такие:
- либо я где-то криво работаю с callbacks (например, добавляю/удаляю их не в том месте, и Neverlose в итоге их сбрасывает),
- либо в CS2-версии Lua API есть какие-то ограничения/особенности, о которых я не знаю (типа не вызывать тяжёлую логику в каждом paint/createmove),
- либо я обращаюсь к entity не в тот момент (nil / невалидный указатель), и движок тихо гасит скрипт без подробного вывода.
Собственно, вопросы к тем, кто уже писал свои Lua под Neverlose CS2:
- Было ли у кого так, что скрипт “живёт” только первое время, а потом частично или полностью перестаёт работать без явной ошибки?
- Есть ли какие-то неочевидные правила по использованию callbacks (куда нельзя пихать тяжёлый код, что не стоит делать в paint/createmove и т.п.)?
- Как вы дебажите Lua под Neverlose: есть ли нормальный способ логировать всё, что угодно, и ловить момент, когда скрипт перестаёт вызываться (например, свой лог в файл, частые print-ы и т.д.)?
Если нужно — могу чуть позже перекинуть сюда упрощённый кусок кода без лишней логики, чтобы не светить полностью скрипт, но пока хочется понять в целом, это я что-то делаю не по канону, или Lua API под CS2 у Neverlose ещё ведёт себя криво и нужно обходить некоторые моменты.