local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local activate = true
local checkinfobar = imgui.ImBool()
local checkdopinfobar = imgui.ImBool()
local themes = import "resource/imgui_themes.lua"
local window = imgui.ImBool(false)
local settings = {
enabled = imgui.ImBool(false),
line = imgui.ImBool(false),
info = imgui.ImBool(false),
call = imgui.ImBool(false),
GodMode = imgui.ImBool(false),
Bone = imgui.ImBool(false),
BoneBox = imgui.ImBool(false),
gunskill = imgui.ImBool(false),
collision_player = imgui.ImBool(false),
collision_object = imgui.ImBool(false),
}
local players = nil
local objects = nil
local vehicles = nil
local font = renderCreateFont('Arial Black', 10, 5)
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
-- открытие меню
sampRegisterChatCommand('ch', function() window.v = not window.v end)
imgui.Process = false
window.v = false --show window
while true do
wait(0)
imgui.Process = window.v
imgui.SwitchContext()
themes.SwitchColorTheme(5)
if settings.collision_object.v then
objectToCol()
setObjectCollision(objects, false)
else
objectToCol()
setObjectCollision(objects, true)
end
if settings.GodMode.v then -- God Mode
setCharProofs(PLAYER_PED, true, true, true, true, true)
else
setCharProofs(PLAYER_PED, false, false, false, false, false)
end
if settings.enabled.v then
for k, v in pairs(getAllChars()) do
local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
local x, y, z = getCharCoordinates(v)
local r_myX, r_myY = convert3DCoordsToScreen(myX, myY, myZ)
local r_X, r_Y = convert3DCoordsToScreen(x, y, z)
if settings.line.v then
if v ~= PLAYER_PED and isCharOnScreen(v) then
renderDrawLine(r_myX, r_myY, r_X, r_Y, 3, 0xFFA9A9A9)
end
end
if settings.info.v then
if v ~= PLAYER_PED and isCharOnScreen(v) then
_, id = sampGetPlayerIdByCharHandle(v)
renderFontDrawText(font, '\n{C0C0C0}Nick: {FF4500}'..sampGetPlayerNickname(id)..' {C0C0C0}[ID]: '..id..'\n{FF0000}HealthPoint: {FFFFFF}'..sampGetPlayerHealth(id)..'\n{4169E1}Armour: {FFFFFF}'..getCharArmour(v), r_X, r_Y, 0xFFFFFFFF, 0x90000000)
end
end
end
end
end
end
if settings.gunskill.v then
registerIntStat(70, 1000.0)
registerIntStat(71, 1000.0)
registerIntStat(72, 1000.0)
registerIntStat(76, 1000.0)
registerIntStat(77, 1000.0)
registerIntStat(78, 1000.0)
registerIntStat(79, 1000.0)
end
function imgui.OnDrawFrame()
if window.v then
imgui.SetNextWindowPos(imgui.ImVec2(650.0, 250.0), imgui.Cond.FirstUseEver)
imgui.SetNextWindowSize(imgui.ImVec2(608.0, 370.0), imgui.Cond.FirstUseEver)
imgui.Begin('Multi-Cheat Menu | By Han', window)
imgui.BeginChild("Osnova", imgui.ImVec2(600, 337), true)
if imgui.CollapsingHeader('WallHack Settings') then
imgui.Checkbox(u8'Включить WallHack', settings.enabled)
imgui.Checkbox(u8'Линия к игрокам', settings.line)
imgui.SameLine()
imgui.Checkbox(u8'Информация о игроках', settings.info)
imgui.Checkbox(u8"Кости игрока", settings.Bone)
imgui.SameLine()
imgui.Checkbox(u8"Бокс на игроке", settings.BoneBox)
end
imgui.Separator()
if imgui.CollapsingHeader(u8'Полезные Функции') then
imgui.Checkbox(u8"Бессмертие", settings.GodMode)
imgui.Checkbox(u8"Фулл скиллы оружия", settings.gunskill)
imgui.Text(u8'Колизия на объекты ')
imgui.SameLine()
imgui.Checkbox(" ", settings.collision_object)
end
imgui.Separator()
imgui.EndChild()
imgui.End()
end
end
function objectToCol()
for k, v in ipairs(getAllObjects()) do
local res, id = sampGetObjectHandleBySampId(v)
if res then
objects = v
end
end
end