ид модели можешь найти по ее названиюдобавь id модели
Кому не похуй на говнокод, кроме таких, как ты? Пиздец, чел, обычный юзер не будет смотреть на строчки и дрочить на них, всем похуй, кроме тебя и ещё каких-то экспертов.не говнокодьте больше, пожалуйста.
ниже прикрепил нормальную версию без говнокода.
(ну и добавил выравнивание текста по центру, а то чет как-то топорно выглядело + убрал округление вниз показателей health, distance, speed)
ладно, не очень корректно приставку сделалТак тут меню состоит из имгуи, остальной рендер через d3d, где тут имгуи тогда😶
фикс, перекачайче за 2 слой на модели?
не знаю, как это исправить, без щиткода сильного, но пытаюсь найти решениехуево выглядят пробелы, если использовать не все пункты
бля ты не можешь посчитать сколько хп у твоего авто?) удар на скорости ~100 км/ч в стену отнимает 200хп c 1500, там только полиц кар и пару авто отличаетьсяБля ты не можешь посчитать двери?) там только автобус и пару тачек отличается, а так в мотиках два места
imgui.Process = windowRender.v
достаточно в бесконечном цикле.local imgui = require 'imgui'
--imgui vars
local showhealth = imgui.ImBool(false)
local showcolours = imgui.ImBool(false)
local showid = imgui.ImBool(false)
local showmodel = imgui.ImBool(false)
local showspeed = imgui.ImBool(false)
local showdistance = imgui.ImBool(false)
local windowRender = imgui.ImBool(false)
--other vars
local active = false
local font = renderCreateFont("Arial", 8, 5)
local sw, sh = getScreenResolution()
function main()
while not isSampAvailable() do wait(0) end
sampRegisterChatCommand('adl', function() active = not active end)
sampRegisterChatCommand('adl.set', function() windowRender.v = not windowRender.v end)
while true do
wait(0)
imgui.Process = windowRender.v
for i = 1, 2000 do
local result, carHandle = sampGetCarHandleBySampVehicleId(i)
if result and isCarOnScreen(carHandle) then
local carX, carY, carZ = getCarCoordinates(carHandle)
local myX, myY, myZ = getCharCoordinates(playerPed)
local cdistance = getDistanceBetweenCoords3d(carX, carY, carZ, myX, myY, myZ)
if cdistance <= 25 then
local infoPosX, infoPosY = convert3DCoordsToScreen(carX, carY, carZ)
local colour1, colour2 = getCarColours(carHandle)
local health, speed = getCarHealth(carHandle), getCarSpeed(carHandle)
local carmodel = getCarModel(carHandle) < 612 and getNameOfVehicleModel(getCarModel(carHandle)) or 'Luxe Авто. Название будет добавлено в скором времени'
local tSpeed = showspeed.v and 'Speed: '..math.floor(tostring(speed))..'\n' or ''
local tId = showid.v and 'ID: '..i..'\n' or ''
local tHealth = showhealth.v and 'Health: '..health..'\n' or ''
local tModel = showmodel.v and 'Model: '..carmodel..' ('..getCarModel(carHandle)..')\n' or ''
local tColors = showcolours.v and 'Colours: '..colour1..' '..colour2..'\n' or ''
local tDistance = showdistance.v and 'Distance: '..math.floor(cdistance) or ''
local text = tSpeed..tId..tHealth..tModel..tColors..tDistance
if showspeed.v or showhealth.v or showid.v or showcolours.v or showdistance.v or showmodel.v then
renderFontDrawText(font, text, infoPosX+5,infoPosY, 0xFFFFFFFF)
end
end
end
end
end
end
local arrayVars = {showspeed, showhealth, showid, showcolours, showdistance, showmodel}
function imgui.OnDrawFrame()
if windowRender.v then
imgui.SetNextWindowSize(imgui.ImVec2(250,300), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2(sw/5.5, sh/2.7), imgui.Cond.FirstUseEver)
imgui.Begin('Settings', windowRender)
imgui.Text('Choose active functions:')
imgui.Columns(2, id, false)
imgui.Checkbox('Show speed', showspeed)
imgui.Checkbox('Show health', showhealth)
imgui.Checkbox('Show id', showid)
imgui.Checkbox('Show colours', showcolours)
imgui.Checkbox('Show distance', showdistance)
imgui.Checkbox('Show model', showmodel)
imgui.NextColumn()
if imgui.Button('On all') then
for k, v in ipairs(arrayVars) do v.v = true end
end
if imgui.Button('Off all') then
for k, v in ipairs(arrayVars) do v.v = false end
end
imgui.Columns(1, id, false)
imgui.End()
end
end
function apply_custom_style()
imgui.SwitchContext()
local style = imgui.GetStyle()
local colors = style.Colors
local clr = imgui.Col
local ImVec4 = imgui.ImVec4
local ImVec2 = imgui.ImVec2
style.WindowPadding = ImVec2(15, 15)
style.WindowRounding = 5.0
style.FramePadding = ImVec2(5, 5)
style.FrameRounding = 4.0
style.ItemSpacing = ImVec2(12, 8)
style.ItemInnerSpacing = ImVec2(8, 6)
style.IndentSpacing = 25.0
style.ScrollbarSize = 15.0
style.ScrollbarRounding = 9.0
style.GrabMinSize = 5.0
style.GrabRounding = 3.0
colors[clr.Text] = ImVec4(0.80, 0.80, 0.83, 1.00)
colors[clr.TextDisabled] = ImVec4(0.24, 0.23, 0.29, 1.00)
colors[clr.WindowBg] = ImVec4(0.06, 0.05, 0.07, 1.00)
colors[clr.ChildWindowBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
colors[clr.PopupBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
colors[clr.Border] = ImVec4(0.80, 0.80, 0.83, 0.88)
colors[clr.BorderShadow] = ImVec4(0.92, 0.91, 0.88, 0.00)
colors[clr.FrameBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.FrameBgHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
colors[clr.FrameBgActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
colors[clr.TitleBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.TitleBgCollapsed] = ImVec4(1.00, 0.98, 0.95, 0.75)
colors[clr.TitleBgActive] = ImVec4(0.07, 0.07, 0.09, 1.00)
colors[clr.MenuBarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.ScrollbarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.ScrollbarGrab] = ImVec4(0.80, 0.80, 0.83, 0.31)
colors[clr.ScrollbarGrabHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
colors[clr.ScrollbarGrabActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
colors[clr.ComboBg] = ImVec4(0.19, 0.18, 0.21, 1.00)
colors[clr.CheckMark] = ImVec4(0.80, 0.80, 0.83, 0.31)
colors[clr.SliderGrab] = ImVec4(0.80, 0.80, 0.83, 0.31)
colors[clr.SliderGrabActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
colors[clr.Button] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.ButtonHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
colors[clr.ButtonActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
colors[clr.Header] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.HeaderHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
colors[clr.HeaderActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
colors[clr.ResizeGrip] = ImVec4(0.00, 0.00, 0.00, 0.00)
colors[clr.ResizeGripHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
colors[clr.ResizeGripActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
colors[clr.CloseButton] = ImVec4(0.40, 0.39, 0.38, 0.16)
colors[clr.CloseButtonHovered] = ImVec4(0.40, 0.39, 0.38, 0.39)
colors[clr.CloseButtonActive] = ImVec4(0.40, 0.39, 0.38, 1.00)
colors[clr.PlotLines] = ImVec4(0.40, 0.39, 0.38, 0.63)
colors[clr.PlotLinesHovered] = ImVec4(0.25, 1.00, 0.00, 1.00)
colors[clr.PlotHistogram] = ImVec4(0.40, 0.39, 0.38, 0.63)
colors[clr.PlotHistogramHovered] = ImVec4(0.25, 1.00, 0.00, 1.00)
colors[clr.TextSelectedBg] = ImVec4(0.25, 1.00, 0.00, 0.43)
colors[clr.ModalWindowDarkening] = ImVec4(1.00, 0.98, 0.95, 0.73)
end
apply_custom_style()
.set
, вместо двух команд. Либо использовать хук.local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local window = imgui.ImBool(false)
local settings = {
font = {
name = 'Tahoma',
size = 13,
flags = 5,
},
main = {
dist = 50,
}
}
local list = {
{'Car HP', hp, imgui.ImBool(false), imgui.ImBool(true)},
{'Car ID', id, imgui.ImBool(false), imgui.ImBool(true)},
{'Car Model ID', modelid, imgui.ImBool(false), imgui.ImBool(true)},
{'Car Model ID Name', model, imgui.ImBool(false), imgui.ImBool(true)},
{'Car Driver', driver, imgui.ImBool(false), imgui.ImBool(true)},
{'Car Coordinates', pos, imgui.ImBool(false), imgui.ImBool(true)},
{'Car Colors', colors, imgui.ImBool(false), imgui.ImBool(true)},
}
local font = renderCreateFont('Tahoma', 13, 5)
function compileString()
for i = 1, #list do
text = text..''..list[i][1]..(list[i][3] and ', ' or '\n')
end
print(text)
end
local active = false
function main()
while not isSampAvailable() do wait(200) end
sampRegisterChatCommand('adl', function()
active = not active
end)
imgui.Process = false
window.v = true --show window
while true do
wait(0)
imgui.Process = window.v
if active then
for k, v in ipairs(getAllVehicles()) do
local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
local x, y, z = getCarCoordinates(v)
if isCarOnScreen(v) and getDistanceBetweenCoords3d(myX, myY, myZ, x, y, z) <= settings.main.dist then
local hp = getCarHealth(v)
local result, id = sampGetVehicleIdByCarHandle(v)
local modelid = getCarModel(v)
local model_ = getNameOfVehicleModel(modelid)
if not model_ then model = 'unknown' else model = model_ end -- что бы скрипт не крашился если ты сел в машину, названия которой нет в игре (например в лаунчере арз)
local driverPedHandle = getDriverOfCar(v)
local driverId = select(2, sampGetPlayerIdByCharHandle(driverPedHandle))
if driverId == -1 then driver = 'No driver' else driver = sampGetPlayerNickname(driverId)..' ['..driverId..']' end
local color1, color2 = getCarColours(v)
local color = color1..', '..color2
local pos = string.format('%.0f', x)..', '..string.format('%.0f', y)..', '..string.format('%.0f', z)
local rX, rY = convert3DCoordsToScreen(x, y, z)
local data = {hp, id, modelid, model, driver, pos, color}
local text = ''
for i = 1, #list do
if list[i][4].v then text = text..''..list[i][1]..': '..data[i]..(list[i][3].v and ', ' or '\n') end
end
renderFontDrawText(font, text, rX, rY, 0xFFFFFFFF, 0x90000000)
end
end
end
end
end
function imgui.OnDrawFrame()
if window.v then
imgui.SetNextWindowPos(imgui.ImVec2(350.0, 250.0), imgui.Cond.FirstUseEver)
imgui.SetNextWindowSize(imgui.ImVec2(280.0, 70.0), imgui.Cond.FirstUseEver)
imgui.Begin('Advanced DL ( /adl )', window)
for i = 1, #list do
imgui.Checkbox(u8(list[i][1]), list[i][4])
imgui.SameLine()
imgui.SetCursorPosX(140)
if imgui.Button('/\\##'..tostring(i), imgui.ImVec2(20, 20)) then
local TEMP_FROM = list[i]
local TEMP_TO = list[i - 1]
list[i] = TEMP_TO
list[i - 1] = TEMP_FROM
end
imgui.SameLine()
if imgui.Button('\\/##'..tostring(i), imgui.ImVec2(20, 20)) then
local TEMP_FROM = list[i]
local TEMP_TO = list[i + 1]
list[i] = TEMP_TO
list[i + 1] = TEMP_FROM
end
imgui.SameLine()
imgui.Checkbox('##'..tostring(i), list[i][3])
if imgui.IsItemHovered() then
imgui.BeginTooltip()
imgui.Text('Show on previous line')
imgui.EndTooltip()
end
end
imgui.End()
end
end
[07:28:57.463224] (error) advdl2.1.lua: attempt to call a nil value
при каком условии он крашится?[07:28:57.463224] (error) advdl2.1.lua: attempt to call a nil value
stack traceback:
[07:28:57.464225] (error) advdl2.1.lua: Script died due to an error. (121ECF14)
закинул скрипт, подгрузил и не работаетпри каком условии он крашится?