- 47
- 10
Всем здарова опять, имею проблему с трейсерами которые я попытался перенести на мимгуи, проблема в том что они не отображаются, вроде все есть но не отображается. P.S Код вставлен тот который нужно подправить или изменить, полный код имеет 5к строк
Lua:
imgui.OnInitialize(function()
local staticObject = imgui.ColorConvertU32ToFloat4(confq.config.staticObject)
color1 = imgui.new.float[4](staticObject.x, staticObject.y, staticObject.z, staticObject.w)
local dinamicObject = imgui.ColorConvertU32ToFloat4(confq.config.dinamicObject)
color2 = imgui.new.float[4](dinamicObject.x, dinamicObject.y, dinamicObject.z, dinamicObject.w)
local pedP = imgui.ColorConvertU32ToFloat4(confq.config.pedP)
color3 = imgui.new.float[4](pedP.x, pedP.y, pedP.z, pedP.w)
local carP = imgui.ColorConvertU32ToFloat4(confq.config.carP)
color4 = imgui.new.float[4](carP.x, carP.y, carP.z, carP.w)
end)
-- в OnFrame
if imgui.CollapsingHeader(u8"Настроить трейсер пуль") then
imgui.Separator()
imgui.PushItemWidth(175)
if imgui.SliderInt("##secondsBullets", elements.int.secondToClose, 5, 15) then
confq.config.secondToClose = elements.int.secondToClose[0]
save()
end imgui.SameLine() imgui.Text(u8"Время задержки трейсера")
if imgui.SliderInt("##renderWidthLinesOne", elements.int.widthRenderLineOne, 1, 10) then
confq.config.widthRenderLineOne = elements.int.widthRenderLineOne[0]
save()
end imgui.SameLine() imgui.Text(u8"Толщина линий")
if imgui.SliderInt('##numberNotMyBullet', elements.int.maxNotMyLines, 10, 300) then
bulletSync.maxNotMyLines = elements.int.maxNotMyLines[0]
bulletSync = {lastId = 0, maxLines = elements.int.maxNotMyLines[0]}
for i = 1, bulletSync.maxLines do
bulletSync[i] = { other = {time = 0, t = {x,y,z}, o = {x,y,z}, type = 0, color = 0}}
end
confq.config.maxNotMyLines = elements.int.maxNotMyLines[0]
save()
end imgui.SameLine() imgui.Text(u8"Максимальное количество линий")
imgui.Separator()
if imgui.Checkbox(u8"[Вкл/выкл] Окончания у трейсеров", elements.checkbox.cbEnd) then
confq.config.cbEnd = elements.checkbox.cbEnd[0]
save()
end
if imgui.SliderInt('##sizeTraicerEndTwo', elements.int.sizeOffPolygonTwo, 1, 10) then
confq.config.sizeOffPolygonTwo = elements.int.sizeOffPolygonTwo[0]
save()
end imgui.SameLine() imgui.Text(u8"Размер окончания трейсера")
if imgui.SliderInt('##endNumbersTwo', elements.int.polygonNumberTwo, 2, 10) then
confq.config.polygonNumberTwo = elements.int.polygonNumberTwo[0]
save()
end imgui.SameLine() imgui.Text(u8"Количество углов на окончаниях")
if imgui.SliderInt('##rotationTwo', elements.int.rotationPolygonTwo, 0, 360) then
confq.config.rotationPolygonTwo = elements.int.rotationPolygonTwo[0]
save()
end imgui.SameLine() imgui.Text(u8"Градус поворота окончания")
imgui.PopItemWidth()
imgui.Separator()
imgui.Text(u8"Укажите цвет трейсера, если игрок попал в: ")
imgui.PushItemWidth(325)
if imgui.ColorEdit4("———", color2) then
confq.config.dinamicObject = imgui.ColorConvertFloat4ToU32(
imgui.ImVec4( color2[0], color2[1], color2[2], color2[3] )
)
end imgui.SameLine() imgui.Text(u8"Динамический объект")
if imgui.ColorEdit4("——", color1) then
confq.config.staticObject = imgui.ColorConvertFloat4ToU32(
imgui.ImVec4( color1[0], color1[1], color1[2], color1[3] )
)
end imgui.SameLine() imgui.Text(u8"Статический объект")
if imgui.ColorEdit4("——————————————", color3) then
confq.config.pedP = imgui.ColorConvertFloat4ToU32(
imgui.ImVec4( color3[0], color3[1], color3[2], color3[3] )
)
end imgui.SameLine() imgui.Text(u8"Игрока")
if imgui.ColorEdit4("——", color4) then
confq.config.carP = imgui.ColorConvertFloat4ToU32(
imgui.ImVec4( color4[0], color4[1], color4[2], color4[3] )
)
end imgui.SameLine() imgui.Text(u8"Машину")
imgui.PopItemWidth()
imgui.Separator()
end
function argb2abgr(argb)
local abgr = bit.bor(
bit.lshift(bit.band(bit.rshift(argb, 24), 0xFF), 24),
bit.lshift(bit.band(argb, 0xFF), 16),
bit.lshift(bit.band(bit.rshift(argb, 8), 0xFF), 8),
bit.band(bit.rshift(argb, 16), 0xFF)
)
return abgr
end
function sampev.onBulletSync(playerid, data)
if elements.checkbox.bulletTracer[0] then
if data.center.x ~= 0 then
if data.center.y ~= 0 then
if data.center.z ~= 0 then
bulletSync.lastId = bulletSync.lastId + 1
if bulletSync.lastId < 1 or bulletSync.lastId > bulletSync.maxLines then
bulletSync.lastId = 1
end
bulletSync[bulletSync.lastId].other.time = os.time() + elements.int.secondToClose[0]
bulletSync[bulletSync.lastId].other.o.x, bulletSync[bulletSync.lastId].other.o.y, bulletSync[bulletSync.lastId].other.o.z = data.origin.x, data.origin.y, data.origin.z
bulletSync[bulletSync.lastId].other.t.x, bulletSync[bulletSync.lastId].other.t.y, bulletSync[bulletSync.lastId].other.t.z = data.target.x, data.target.y, data.target.z
if data.targetType == 0 then
--bulletSync[bulletSync.lastId].other.color = argb2abgr(255, confq.config.staticObject)
bulletSync[bulletSync.lastId].other.color = argb2abgr(255, confq.config.staticObject)
elseif data.targetType == 1 then
bulletSync[bulletSync.lastId].other.color = argb2abgr(255, confq.config.pedP)
elseif data.targetType == 2 then
bulletSync[bulletSync.lastId].other.color = argb2abgr(255, confq.config.carP)
elseif data.targetType == 3 then
bulletSync[bulletSync.lastId].other.color = argb2abgr(255, confq.config.dinamicObject)
end
end
end
end
end
end