Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --local variables for API. Automatically generated by https://github.com/simpleavaster/gslua/blob/master/authors/sapphyrus/generate_api.lua
- local client_latency, client_log, client_draw_rectangle, client_draw_circle_outline, client_userid_to_entindex, client_draw_indicator, client_draw_gradient, client_set_event_callback, client_screen_size, client_eye_position = client.latency, client.log, client.draw_rectangle, client.draw_circle_outline, client.userid_to_entindex, client.draw_indicator, client.draw_gradient, client.set_event_callback, client.screen_size, client.eye_position
- local client_draw_circle, client_color_log, client_delay_call, client_draw_text, client_visible, client_exec, client_trace_line, client_set_cvar = client.draw_circle, client.color_log, client.delay_call, client.draw_text, client.visible, client.exec, client.trace_line, client.set_cvar
- local client_world_to_screen, client_draw_hitboxes, client_get_cvar, client_draw_line, client_camera_angles, client_draw_debug_text, client_random_int, client_random_float = client.world_to_screen, client.draw_hitboxes, client.get_cvar, client.draw_line, client.camera_angles, client.draw_debug_text, client.random_int, client.random_float
- local entity_get_local_player, entity_is_enemy, entity_hitbox_position, entity_get_player_name, entity_get_steam64, entity_get_bounding_box, entity_get_all, entity_set_prop = entity.get_local_player, entity.is_enemy, entity.hitbox_position, entity.get_player_name, entity.get_steam64, entity.get_bounding_box, entity.get_all, entity.set_prop
- local entity_is_alive, entity_get_player_weapon, entity_get_prop, entity_get_players, entity_get_classname = entity.is_alive, entity.get_player_weapon, entity.get_prop, entity.get_players, entity.get_classname
- local globals_realtime, globals_absoluteframetime, globals_tickcount, globals_curtime, globals_mapname, globals_tickinterval, globals_framecount, globals_frametime, globals_maxplayers = globals.realtime, globals.absoluteframetime, globals.tickcount, globals.curtime, globals.mapname, globals.tickinterval, globals.framecount, globals.frametime, globals.maxplayers
- local ui_new_slider, ui_new_combobox, ui_reference, ui_set_visible, ui_is_menu_open, ui_new_color_picker, ui_set_callback, ui_set, ui_new_checkbox, ui_new_hotkey, ui_new_button, ui_new_multiselect, ui_get = ui.new_slider, ui.new_combobox, ui.reference, ui.set_visible, ui.is_menu_open, ui.new_color_picker, ui.set_callback, ui.set, ui.new_checkbox, ui.new_hotkey, ui.new_button, ui.new_multiselect, ui.get
- local math_ceil, math_tan, math_log10, math_randomseed, math_cos, math_sinh, math_random, math_huge, math_pi, math_max, math_atan2, math_ldexp, math_floor, math_sqrt, math_deg, math_atan, math_fmod = math.ceil, math.tan, math.log10, math.randomseed, math.cos, math.sinh, math.random, math.huge, math.pi, math.max, math.atan2, math.ldexp, math.floor, math.sqrt, math.deg, math.atan, math.fmod
- local math_acos, math_pow, math_abs, math_min, math_sin, math_frexp, math_log, math_tanh, math_exp, math_modf, math_cosh, math_asin, math_rad = math.acos, math.pow, math.abs, math.min, math.sin, math.frexp, math.log, math.tanh, math.exp, math.modf, math.cosh, math.asin, math.rad
- local table_maxn, table_foreach, table_sort, table_remove, table_foreachi, table_move, table_getn, table_concat, table_insert = table.maxn, table.foreach, table.sort, table.remove, table.foreachi, table.move, table.getn, table.concat, table.insert
- local string_find, string_format, string_rep, string_gsub, string_len, string_gmatch, string_dump, string_match, string_reverse, string_byte, string_char, string_upper, string_lower, string_sub = string.find, string.format, string.rep, string.gsub, string.len, string.gmatch, string.dump, string.match, string.reverse, string.byte, string.char, string.upper, string.lower, string.sub
- --end of local variables
- --hitbox indexes by sapphyrus
- --[[
- hitbox_head = 0,
- hitbox_neck = 1,
- hitbox_pelvis = 2,
- hitbox_spine_0 = 3,
- hitbox_spine_1 = 4,
- hitbox_spine_2 = 5,
- hitbox_spine_3 = 6,
- hitbox_leg_upper_L = 7,
- hitbox_leg_upper_R = 8,
- hitbox_leg_lower_L = 9,
- hitbox_leg_lower_R = 10,
- hitbox_ankle_L = 11,
- hitbox_ankle_R = 12,
- hitbox_hand_L = 13,
- hitbox_hand_R = 14,
- hitbox_arm_upper_L = 15,
- hitbox_arm_lower_L = 16,
- hitbox_arm_upper_R = 17,
- hitbox_arm_lower_R = 18,
- ]]--
- local ui_mode = ui_new_combobox('visuals', 'player esp', 'Visualize Backtrack', 'Off', 'Line', 'Cross', 'Dot', 'Skeleton')
- local ui_color = ui_new_color_picker('visuals', 'player esp', 'Visualize Backtrack Color', 214, 0, 255, 255)
- local level_0_table = {}
- local bool_line = false
- local bool_cross = false
- local bool_dot = false
- local bool_skeleton = false
- local color_r = 0
- local color_g = 0
- local color_b = 0
- local color_a = 0
- local function menu_call()
- local mode = ui_get(ui_mode)
- bool_line = mode == 'Line'
- bool_cross = mode == 'Cross'
- bool_dot = mode == 'Dot'
- bool_skeleton = mode == 'Skeleton'
- if mode ~= 'Off' then
- color_r, color_g, color_b, color_a = ui_get(ui_color)
- end
- end
- menu_call()
- ui_set_callback(ui_mode, menu_call)
- ui_set_callback(ui_color, menu_call)
- local function on_run_command(e) --fakelag ticks
- --inserting information
- local enemy_players = entity_get_players(true)
- local time = globals_realtime()
- if #enemy_players ~= 0 then
- time = globals_realtime()
- for i = 1, #enemy_players do
- local enemy = enemy_players[i]
- local level_1_table = {}
- if level_0_table[enemy] ~= nil then
- level_1_table = level_0_table[enemy]
- end
- level_2_table = {time}
- for j = 0, 18 do
- local hitbox_x, hitbox_y, hitbox_z = entity_hitbox_position(enemy, j)
- table_insert(level_2_table, {hitbox_x, hitbox_y, hitbox_z})
- end
- table_insert(level_1_table, level_2_table)
- level_0_table[enemy] = level_1_table
- end
- end
- --removing old information
- for i = 1, #level_0_table do
- if level_0_table[i] ~= nil then
- for j = 1, #level_0_table[i] do
- if level_0_table[i][j] ~= nil then
- if level_0_table[i][j][1] < globals_realtime() - (0.2 --[[+ client_latency]]) then --i used the time value and not the tickvalue to support every server, that's kinda unacurate though
- table_remove(level_0_table[i], j)
- end
- end
- end
- end
- end
- end
- local function on_paint(ctx)
- if bool_line then
- for i = 1, #level_0_table do
- if level_0_table[i] ~= nil then
- local last_x, last_y = nil, nil
- for j = 1, #level_0_table[i] do
- if level_0_table[i][j] ~= nil then
- local scr_x, scr_y = client_world_to_screen(ctx, level_0_table[i][j][2][1], level_0_table[i][j][2][2], level_0_table[i][j][2][3])
- if (scr_x ~= nil) and scr_y ~= nil then
- if (last_x ~= nil) and (last_y ~= nil) then
- client_draw_line(ctx, last_x, last_y, scr_x, scr_y, color_r, color_g, color_b, color_a)
- end
- last_x, last_y = scr_x, scr_y
- end
- end
- end
- end
- end
- elseif bool_cross then
- for i = 1, #level_0_table do
- if level_0_table[i] ~= nil then
- for j = 1, #level_0_table[i] do
- if level_0_table[i][j] ~= nil then
- local scr_x, scr_y = client_world_to_screen(ctx, level_0_table[i][j][2][1], level_0_table[i][j][2][2], level_0_table[i][j][2][3])
- if (scr_x ~= nil) and scr_y ~= nil then
- client_draw_line(ctx, scr_x + 3, scr_y + 3, scr_x - 3, scr_y - 3, color_r, color_g, color_b, color_a)
- client_draw_line(ctx, scr_x - 3, scr_y + 3, scr_x + 3, scr_y - 3, color_r, color_g, color_b, color_a)
- end
- end
- end
- end
- end
- elseif bool_dot then
- for i = 1, #level_0_table do
- if level_0_table[i] ~= nil then
- for j = 1, #level_0_table[i] do
- if level_0_table[i][j] ~= nil then
- local scr_x, scr_y = client_world_to_screen(ctx, level_0_table[i][j][2][1], level_0_table[i][j][2][2], level_0_table[i][j][2][3])
- if (scr_x ~= nil) and scr_y ~= nil then
- client_draw_circle(ctx, scr_x, scr_y, color_r, color_g, color_b, color_a, 7, 0, 1)
- end
- end
- end
- end
- end
- elseif bool_skeleton then
- for i = 1, #level_0_table do
- if level_0_table[i] ~= nil then
- local last_x, last_y = nil, nil
- for j = 1, #level_0_table[i] do
- if level_0_table[i][j] ~= nil then
- --k starts as 2 to skip the time thing
- for k = 2, #level_0_table[i][j] do
- local scr_x, scr_y = client_world_to_screen(ctx, level_0_table[i][j][k][1], level_0_table[i][j][k][2], level_0_table[i][j][k][3])
- if (scr_x ~= nil) and scr_y ~= nil then
- if (last_x ~= nil) and (last_y ~= nil) then
- client_draw_line(ctx, last_x, last_y, scr_x, scr_y, color_r, color_g, color_b, color_a)
- end
- last_x, last_y = scr_x, scr_y
- end
- end
- end
- end
- end
- end
- end
- end
- client_set_event_callback("run_command", on_run_command)
- client_set_event_callback('paint', on_paint)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement