Перейти к контенту

shoc keylogger ver.1.0


uglan59

Рекомендуемые сообщения

Здравствуйте! В силу того, что изготовление ОП-2 повело меня в неисследованные ранее дебри скриптов, которые не используются совсем в Солянке, а некоторые - даже у ПЫСов - то постоянные вылеты при экспериментировании вынудили меня переделать кейлоггер через pcall, дабы уменьшить количество загрузок и запусков игры. Не буду вдаваться в подробности - кому надо, тот поймет. Вот мой код из keylogger.script, который по нажатию клавиш F3 и F4 выполняет скритпы из двух разных файлов:

-- Begin Proper70
-- тестовые функции
function vk114()
    run_file("..\\gamedata\\scripts\\test.script")
end
function vk115()
    run_file("..\\gamedata\\scripts\\test2.script")
end
function run_file(file)
    local res, err = pcall(run_chunk, file)
    local console = get_console()
    if err then
        console:show()
        console:execute("load ~~~ "..tostring(err))
    end
    console:execute("flush")
end
function run_chunk(file)
    local chunk, err = dofile(file)
end
-- End Proper70

Если при выполнении возникает ошибка - то автоматически открывается консоль и сообщение об ошибке выводится в консоль. Если все прошло успешно - то консоль не выводится. При этом никакого вылета не происходит - просто читаем сообщение об ошибке в консоли, правим, и экспериментируем дальше.

 

К сожалению, вопреки описанию в документации LUA, отлавливаются не все ошибки. В частности, попытка заспавнить несуществующую секцию все равно приводит к вылету на рабочий стол. Но все ошибки, вызванные лишней или недостающей запятой, скобкой, кавычкой, несуществующей функцией, переменной, вылеты по nil_value и подобные отлавливаются на ура. И в главное меню выходить не нужно - все работает в живой игре. Это всяко лучше, чем вылет по каждому косяку. Так что пользуйтесь на здоровье)

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...