- 3
- 1
Всем привет!
Представляю свой нейро-говнокод. Данный скрипт создан специально для тех людей, которые ловят с АХК.
Активация скрипта: /mykb
P.S. Данный скрипт сделал за 10 минут 😎. Тестировал его на АХК от Bratanchik1488. Внизу прикреплю этот файл. Активация самого АХК — POEL (вводить как чит-код). Код оставляю открытым, так что пользуйтесь и дорабатывайте под себя. kb1.lua - Fake keyboard.
KeyBoard:
script_author('0o0o0o0o0o0oo0o0o0o0o0o0o')
script_name(' ARZ Fake KeyBoard ')
local vkeys = require 'vkeys'
local inicfg = require 'inicfg'
local imgui = require 'imgui'
local encoding = require 'encoding'
local ffi = require 'ffi'
encoding.default = 'CP1251'
u8 = encoding.UTF8
ffi.cdef[[ short GetAsyncKeyState(int vKey); ]]
local flash_keys = {}
local last_dialog_text = ""
-- Функция проверки активности клавиши (физической или виртуальной)
local function isKeyActive(vkey, key_name)
if bit.band(ffi.C.GetAsyncKeyState(vkey), 0x8000) ~= 0 then return true end
if flash_keys[tostring(key_name)] and os.clock() < flash_keys[tostring(key_name)] then
return true
end
return false
end
local iniFile = 'keyboard_v3.ini'
local ini = inicfg.load({
config = { active = true, mode = 0, move = false, theme = 0 },
pos = { x = 10, y = 500 }
}, iniFile)
local settings = imgui.ImBool(false)
local keyboard = imgui.ImBool(ini.config.active)
local keyboard_type = imgui.ImInt(ini.config.mode)
local move = imgui.ImBool(ini.config.move)
local theme = imgui.ImInt(ini.config.theme)
function main()
if not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand('mykb', function() settings.v = not settings.v end)
while true do
wait(0)
-- СИСТЕМА ПЕРЕХВАТА ВВОДА БОТА
if sampIsDialogActive() then
local current_text = sampGetCurrentDialogEditboxText()
if current_text ~= last_dialog_text then
-- Если текст стал длиннее, значит бот или игрок ввели символ
if #current_text > #last_dialog_text then
local char = current_text:sub(#current_text, #current_text):upper()
flash_keys[char] = os.clock() + 0.12 -- Подсветка на 120мс
end
last_dialog_text = current_text
end
else
last_dialog_text = ""
end
-- УПРАВЛЕНИЕ КУРСОРОМ И КАМЕРОЙ
imgui.Process = (keyboard.v or settings.v)
imgui.ShowCursor = settings.v
imgui.LockPlayer = settings.v
if settings.v == false and (ini.config.active ~= keyboard.v or ini.config.mode ~= keyboard_type.v) then
ini.config.active, ini.config.mode, ini.config.move, ini.config.theme = keyboard.v, keyboard_type.v, move.v, theme.v
inicfg.save(ini, iniFile)
end
end
end
function imgui.OnDrawFrame()
if settings.v then
imgui.Begin(u8'Настройки клавиатуры. By: 0o0o0o0o0o0oo0o0o0o0o0o0o', settings, imgui.WindowFlags.AlwaysAutoResize)
imgui.Combo(u8'Раскладка', keyboard_type, {u8'Вся', u8'Без NumPad', u8'Только цифры', u8'Компакт', u8'WASD'})
imgui.Checkbox(u8'Показывать', keyboard)
imgui.Checkbox(u8'Разрешить перетаскивание', move)
if imgui.Combo(u8'Цвет нажатия', theme, {u8'Зелёный', u8'Красный', u8'Пурпурный', u8'Синий', u8'Розовый', u8'Жёлтый'}) then
if styles[theme.v] then styles[theme.v]() end
end
imgui.End()
end
if keyboard.v then
local window_flags = imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.AlwaysAutoResize + imgui.WindowFlags.NoFocusOnAppearing
if not move.v then window_flags = window_flags + imgui.WindowFlags.NoInputs + imgui.WindowFlags.NoMove end
imgui.PushStyleVar(imgui.StyleVar.WindowPadding, imgui.ImVec2(5, 3))
imgui.PushStyleColor(imgui.Col.WindowBg, imgui.ImVec4(0, 0, 0, 0))
imgui.SetNextWindowPos(imgui.ImVec2(ini.pos.x, ini.pos.y), imgui.Cond.FirstUseEver)
imgui.Begin('##kb_hud', _, window_flags)
local p = imgui.GetWindowPos()
ini.pos.x, ini.pos.y = p.x, p.y
local layout = keyboards[keyboard_type.v + 1]
if layout then
for i, line in ipairs(layout) do
for k, v in ipairs(line) do
if isKeyActive(v[2], v[1]) then
imgui.PushStyleColor(imgui.Col.ChildWindowBg, imgui.GetStyle().Colors[imgui.Col.ButtonActive])
else
imgui.PushStyleColor(imgui.Col.ChildWindowBg, imgui.ImVec4(0, 0, 0, 0.4))
end
imgui.BeginChild('##k'..i..k, imgui.ImVec2(imgui.CalcTextSize(v[1]).x + 12, 25), true)
imgui.CenterText(v[1])
imgui.EndChild()
imgui.PopStyleColor()
if k ~= #line then imgui.SameLine() end
end
end
end
imgui.End()
imgui.PopStyleColor()
imgui.PopStyleVar()
end
end
function imgui.CenterText(text)
local width = imgui.GetWindowWidth()
local size = imgui.CalcTextSize(text)
imgui.SetCursorPosX((width - size.x) / 2)
imgui.Text(text)
end
-- Раскладки из твоего оригинала
keyboards = {
{{{'Esc', 27}, {'F1', 112}, {'F2', 113}, {'F3', 114}, {'F4', 115}, {'F5', 116}, {'F6', 117}, {'F7', 118}, {'F8', 119}, {'F9', 120}, {'F10', 121}, {'F11', 122}, {'F12', 123}}, {{'~', 192}, {'1', 49}, {'2', 50}, {'3', 51}, {'4', 52}, {'5', 53}, {'6', 54}, {'7', 55}, {'8', 56}, {'9', 57}, {'0', 48}, {'-', 189}, {'=', 187}, {'BkSp', 8}}, {{'Tab', 9}, {'Q', 81}, {'W', 87}, {'E', 69}, {'R', 82}, {'T', 84}, {'Y', 89}, {'U', 85}, {'I', 73}, {'O', 79}, {'P', 80}, {'[', 219}, {']', 221}, {'\\', 220}}, {{'Caps', 20}, {'A', 65}, {'S', 83}, {'D', 68}, {'F', 70}, {'G', 71}, {'H', 72}, {'J', 74}, {'K', 75}, {'L', 76}, {';', 186}, {"'", 222}, {'Enter', 13}}, {{'Shift', 16}, {'Z', 90}, {'X', 88}, {'C', 67}, {'V', 86}, {'B', 66}, {'N', 78}, {'M', 77}, {',', 188}, {'.', 190}, {'/', 191}, {'Shift ', 16}}, {{'Ctrl', 17}, {'Win', 91}, {'Alt', 18}, {'Space', 32}, {'Alt ', 18}, {'Win ', 91}, {'List', 93}, {'Ctrl ', 17}}},
{{{'~', 192}, {'1', 49}, {'2', 50}, {'3', 51}, {'4', 52}, {'5', 53}, {'6', 54}, {'7', 55}, {'8', 56}, {'9', 57}, {'0', 48}, {'-', 189}, {'=', 187}, {'BkSp', 8}}, {{'Tab', 9}, {'Q', 81}, {'W', 87}, {'E', 69}, {'R', 82}, {'T', 84}, {'Y', 89}, {'U', 85}, {'I', 73}, {'O', 79}, {'P', 80}, {'[', 219}, {']', 221}, {'\\', 220}}, {{'Caps', 20}, {'A', 65}, {'S', 83}, {'D', 68}, {'F', 70}, {'G', 71}, {'H', 72}, {'J', 74}, {'K', 75}, {'L', 76}, {';', 186}, {"'", 222}, {'Enter', 13}}, {{'Shift', 16}, {'Z', 90}, {'X', 88}, {'C', 67}, {'V', 86}, {'B', 66}, {'N', 78}, {'M', 77}, {',', 188}, {'.', 190}, {'/', 191}, {'Shift ', 16}}, {{'Ctrl', 17}, {'Win', 91}, {'Alt', 18}, {'Space', 32}, {'Alt ', 18}, {'Win ', 91}, {'List', 93}, {'Ctrl ', 17}}},
{{{'1', 49}, {'2', 50}, {'3', 51}}, {{'4', 52}, {'5', 53}, {'6', 54}}, {{'7', 55}, {'8', 56}, {'9', 57}}, {{'0', 48}}},
{{{'1', 49}, {'2', 50}, {'3', 51}, {'4', 52}, {'5', 53}, {'6', 54}, {'7', 55}, {'8', 56}, {'9', 57}, {'0', 48}}},
{{{'W', 87}}, {{'A', 65}, {'S', 83}, {'D', 68}}}
}
styles = {
[0] = function() imgui.GetStyle().Colors[imgui.Col.ButtonActive] = imgui.ImVec4(0.16, 1.00, 0.11, 1.00) end,
[1] = function() imgui.GetStyle().Colors[imgui.Col.ButtonActive] = imgui.ImVec4(1.00, 0.11, 0.11, 1.00) end,
[2] = function() imgui.GetStyle().Colors[imgui.Col.ButtonActive] = imgui.ImVec4(1.00, 0.11, 0.89, 1.00) end,
[3] = function() imgui.GetStyle().Colors[imgui.Col.ButtonActive] = imgui.ImVec4(0.44, 0.11, 1.00, 1.00) end,
[4] = function() imgui.GetStyle().Colors[imgui.Col.ButtonActive] = imgui.ImVec4(1.00, 0.11, 0.35, 1.00) end,
[5] = function() imgui.GetStyle().Colors[imgui.Col.ButtonActive] = imgui.ImVec4(1.00, 0.89, 0.11, 1.00) end,
}
Вложения
Последнее редактирование: