diff --git a/autoexec.lua b/autoexec.lua index 29992b7..9839cbd 100644 --- a/autoexec.lua +++ b/autoexec.lua @@ -2,35 +2,62 @@ simulated_resolution = v2(1920, 1080) function coords_to_screenwriter(coord1, coord2) + local x_left, x_right, y_top, y_bottom, width, height + x_left = math.min(coord1.x, coord2.x) x_right = math.max(coord1.x, coord2.x) y_top = math.min(coord1.y, coord2.y) y_bottom = math.max(coord1.y, coord2.y) - width_px = x_right - x_left - height_px = y_bottom - y_top + width = x_right - x_left + height = y_bottom - y_top - x_px = x_left + width_px / 2 - y_px = y_top + height_px / 2 + return coords_partial_to_screenwriter(v2(x_left, x_top), v2(width, height), 1) - x = (x_px - simulated_resolution.x / 2) / simulated_resolution.x * 2 - y = (y_px - simulated_resolution.y / 2) / simulated_resolution.y * 2 - width = (width_px - simulated_resolution.x / 2) / simulated_resolution.x * 2 - height = (height_px - simulated_resolution.y / 2) / simulated_resolution.y * 2 +end + +function coords_partial_to_screenwriter(pos_px, scale_px, anchor) + + local x_px, y_px, x, y, width, height + + if anchor == 1 then --top left + x_px = pos_px.x + scale_px.x / 2 + y_px = pos_px.y - scale_px.y / 2 + elseif anchor == 2 then --top right + x_px = pos_px.x - scale_px.x / 2 + y_px = pos_px.y - scale_px.y / 2 + elseif anchor == 3 then --bottom right + x_px = pos_px.x - scale_px.x / 2 + y_px = pos_px.y + scale_px.y / 2 + elseif anchor == 4 then --bottom left + x_px = pos_px.x + scale_px.x / 2 + y_px = pos_px.y + scale_px.y / 2 + else --center + x_px = pos_px.x + y_px = pos_px.y + end + + x = x_px / simulated_resolution.x * 2 - 1 + y = y_px / simulated_resolution.y * 2 - 1 + width = scale_px.x / simulated_resolution.x * 2 + height = scale_px.y / simulated_resolution.y * 2 return v2(x, y), v2(width, height) end ---menu.add_feature("player coords", "toggle", 0, function(f) +local disable_bg = menu.add_feature("disable background", "toggle") menu.create_thread(function() - local scale = -2 - --while f.on do while true do - local pos, scale = coords_to_screenwriter(v2(1920, 0), v2(1728, 108)) - scriptdraw.draw_rect(pos, scale, 0xFF000000) + + local base = v2(320, 20) + + if (not(disable_bg.on)) then + local pos, scale = coords_partial_to_screenwriter(base, v2(200, 200), 4) + scriptdraw.draw_rect(pos, scale, 0xFF000000) + end + --scriptdraw.draw_text(scale, v2(0, 0), v2(1, 1), 1, 0XFFFFFFFF, 0) system.wait(0) end ---end) end, nil) \ No newline at end of file diff --git a/examples/coords + screenwriter.lua b/examples/coords + screenwriter.lua index aa478de..bdd0e12 100644 --- a/examples/coords + screenwriter.lua +++ b/examples/coords + screenwriter.lua @@ -2,6 +2,8 @@ simulated_resolution = v2(1920, 1080) function screenwriter_to_coords(pos, scale) + local x, y, width, height, x_px, y_px, width_px, height_px, x_left, x_right, y_top, y_bottom + x = pos.x y = pos.y width = scale.x @@ -23,21 +25,45 @@ end function coords_to_screenwriter(coord1, coord2) + local x_left, x_right, y_top, y_bottom, width, height + x_left = math.min(coord1.x, coord2.x) x_right = math.max(coord1.x, coord2.x) y_top = math.min(coord1.y, coord2.y) y_bottom = math.max(coord1.y, coord2.y) - width_px = x_right - x_left - height_px = y_bottom - y_top + width = x_right - x_left + height = y_bottom - y_top - x_px = x_left + width_px / 2 - y_px = y_top + height_px / 2 + return coords_partial_to_screenwriter(v2(x_left, x_top), v2(width, height), 1) - x = (x_px - simulated_resolution.x / 2) / simulated_resolution.x * 2 - y = (y_px - simulated_resolution.y / 2) / simulated_resolution.y * 2 - width = (width_px - simulated_resolution.x / 2) / simulated_resolution.x * 2 - height = (height_px - simulated_resolution.y / 2) / simulated_resolution.y * 2 +end + +function coords_partial_to_screenwriter(pos_px, scale_px, anchor) + + local x_px, y_px, x, y, width, height + + if anchor == 1 then --top left + x_px = pos_px.x + scale_px.x / 2 + y_px = pos_px.y + scale_px.y / 2 + elseif anchor == 2 then --top right + x_px = pos_px.x - scale_px.x / 2 + y_px = pos_px.y + scale_px.y / 2 + elseif anchor == 3 then --bottom right + x_px = pos_px.x - scale_px.x / 2 + y_px = pos_px.y - scale_px.y / 2 + elseif anchor == 4 then --bottom left + x_px = pos_px.x + scale_px.x / 2 + y_px = pos_px.y - scale_px.y / 2 + else --center + x_px = pos_px.x + y_px = pos_px.y + end + + x = x_px / simulated_resolution.x * 2 - 1 + y = y_px / simulated_resolution.y * 2 - 1 + width = scale_px.x / simulated_resolution.x * 2 + height = scale_px.y / simulated_resolution.y * 2 return v2(x, y), v2(width, height)