всем ку, покажу как сделать простой луа чит.
для начала сделаем простую derma менюшку :
Вот что у нас получилось.
Теперь сделаем консольную команду которая будет закрывать и открывать меню :
Теперь у нас есть команда которая открывает и закрывает меню. Давайте же приступим к функциям.
Первым делом сделаем box esp.
Вот и получился наш esp box!
Таким же образом пастим функции. И у нас получается ПОЛНОЦЕННЫЙ САМОПИС ЧИТ КОТОРЫЙ МОЖНО ПРОДАВАТЬ.
всем удачи --
для начала сделаем простую derma менюшку :
dframe:
local menuon = 0 -- это переменная которая показывает открыто ли меню
function cheat()
menuon = 1
local cheatwindow = vgui.Create( "DFrame" ) -- создание меню
cheatwindow:SetTitle( "я фуриеб" ) -- title
cheatwindow:SetPos(0, 0) -- позиция меню
cheatwindow:SetSize( 400, 400 ) -- размер меню
cheatwindow:SetDraggable( true ) -- можно ли перетаскивать
cheatwindow:ShowCloseButton( false ) -- показывать ли кнопки
cheatwindow:MakePopup(true)
end
cheat()
Вот что у нас получилось.
Теперь сделаем консольную команду которая будет закрывать и открывать меню :
Lua:
local menuon = 0
function cheat()
menuon = 1
local cheatwindow = vgui.Create( "DFrame" ) -- создание меню
cheatwindow:SetTitle( "я фуриеб" ) -- title
cheatwindow:SetPos(0, 0) -- позиция меню
cheatwindow:SetSize( 400, 400 ) -- размер меню
cheatwindow:SetDraggable( true ) -- можно ли перетаскивать
cheatwindow:ShowCloseButton( false ) -- показывать ли кнопки
cheatwindow:MakePopup(true)
concommand.Add( "govno", function() -- добавление команды "govno"
if menuon == 0 then -- если меню закрыто то
cheat() -- открыть
else -- иначе
cheatwindow:Close() -- закрыть
menuon = 0 -- и обозначить что оно закрыто
end
end )
end
cheat()
Теперь у нас есть команда которая открывает и закрывает меню. Давайте же приступим к функциям.
Первым делом сделаем box esp.
Lua:
local menuon = 0
local esp = 0 -- показывает включен ли esp
function cheat()
menuon = 1
local cheatwindow = vgui.Create( "DFrame" ) -- создание меню
cheatwindow:SetTitle( "я фуриеб" ) -- title
cheatwindow:SetPos(0, 0) -- позиция меню
cheatwindow:SetSize( 400, 400 ) -- размер меню
cheatwindow:SetDraggable( true ) -- можно ли перетаскивать
cheatwindow:ShowCloseButton( false ) -- показывать ли кнопки
cheatwindow:MakePopup(true)
local esp = vgui.Create("DCheckBoxLabel", cheatwindow) -- создание чекбокса
esp:SetText( "esp" ) -- текст чекбокса
esp:SetPos(20, 40) -- позиция
esp:SetValue( false )
function esp:OnChange() -- функция на изменении чекбокса
if esp == 1 then -- если чекбокс включен то
esp = 0 -- выключить
else -- иначе (если 0)
esp = 1 -- включить
end
if esp == 1 then -- а если уже esp == 1 то идёт функция есп (сами разбирётесь)
surface.CreateFont( "defaultfont1", {
font = "Roboto",
extended = false,
size = 13,
weight = 500,
blursize = 0,
scanlines = 0,
antialias = true,
underline = false,
italic = false,
strikeout = false,
symbol = false,
rotary = false,
shadow = false,
additive = false,
outline = false,
} )
function CreatePos( e )
local espboxcolor = 0 , 0 , 0
local ply = LocalPlayer()
local center = e:LocalToWorld( e:OBBCenter() )
local min, max = e:OBBMins(), e:OBBMaxs()
local dim = max - min
local z = max + min
local frt = ( e:GetForward() ) * ( dim.y / 2 )
local rgt = ( e:GetRight() ) * ( dim.x / 2 )
local top = ( e:GetUp() ) * ( dim.z / 2 )
local bak = ( e:GetForward() * -1 ) * ( dim.y / 2 )
local lft = ( e:GetRight() * -1 ) * ( dim.x / 2 )
local btm = ( e:GetUp() * -1 ) * ( dim.z / 2 )
local FRT = center + frt + rgt + top; FRT = FRT:ToScreen()
local BLB = center + bak + lft + btm; BLB = BLB:ToScreen()
local FLT = center + frt + lft + top; FLT = FLT:ToScreen()
local BRT = center + bak + rgt + top; BRT = BRT:ToScreen()
local BLT = center + bak + lft + top; BLT = BLT:ToScreen()
local FRB = center + frt + rgt + btm; FRB = FRB:ToScreen()
local FLB = center + frt + lft + btm; FLB = FLB:ToScreen()
local BRB = center + bak + rgt + btm; BRB = BRB:ToScreen()
local maxX = math.max( FRT.x,BLB.x,FLT.x,BRT.x,BLT.x,FRB.x,FLB.x,BRB.x )
local minX = math.min( FRT.x,BLB.x,FLT.x,BRT.x,BLT.x,FRB.x,FLB.x,BRB.x )
local maxY = math.max( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y)
local minY = math.min( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
return maxX, minX, maxY, minY
end
function CreateESP()
local ply = LocalPlayer()
for k, e in pairs( player.GetAll() ) do
if ( e:IsPlayer() && e:Alive() ) then
local maxX, minX, maxY, minY = CreatePos( e )
surface.SetDrawColor( 0, 0, 0 ) -- color
surface.DrawLine( maxX, maxY, maxX, minY )
surface.DrawLine( maxX, minY, minX, minY )
surface.DrawLine( minX, minY, minX, maxY )
surface.DrawLine( minX, maxY, maxX, maxY )
draw.SimpleText(
e:Nick(),
"defaultfont1",
maxX,
minY + 2,
color_red,
4,
1
)
end
end
end
hook.Add( "HUDPaint", "BoxEsp", CreateESP ) -- хук есп включить
else -- а если не включен то
hook.Remove( "HUDPaint", "BoxEsp" ) -- хук есп убрать
end
end
concommand.Add( "govno", function() -- добавление команды "govno"
if menuon == 0 then -- если меню закрыто то
cheat() -- открыть
else -- иначе
cheatwindow:Close() -- закрыть
menuon = 0 -- и обозначить что оно закрыто
end
end )
concommand.Add( "govno1", function() -- добавление команды "govno"
print(esp)
end )
end
cheat()
Вот и получился наш esp box!
Таким же образом пастим функции. И у нас получается ПОЛНОЦЕННЫЙ САМОПИС ЧИТ КОТОРЫЙ МОЖНО ПРОДАВАТЬ.
всем удачи --