Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 13.55 KB | None | 0 0
  1. local globals_realtime = globals.realtime
  2. local globals_curltime = globals.curltime
  3. local globals_frametime = globals.frametime
  4. local globals_absolute_frametime = globals.absoluteframetime
  5. local globals_maxplayers = globals.maxplayers
  6. local globals_tickcount = globals.tickcount
  7. local globals_tickinterval = globals.tickinterval
  8. local globals_mapname = globals.mapname
  9.  
  10. local client_set_event_callback = client.set_event_callback
  11. local client_console_log = client.log
  12. local client_console_cmd = client.exec
  13. local client_userid_to_entindex = client.userid_to_entindex
  14. local client_get_cvar = client.get_cvar
  15. local client_draw_debug_text = client.draw_debug_text
  16. local client_draw_hitboxes = client.draw_hitboxes
  17. local client_draw_indicator = client.draw_indicator
  18. local client_random_int = client.random_int
  19. local client_random_float = client.random_float
  20. local client_draw_text = client.draw_text
  21. local client_draw_rectangle = client.draw_rectangle
  22. local client_draw_line = client.draw_line
  23. local client_draw_gradient = client.draw_gradient
  24. local client_draw_cricle = client.draw_circle
  25. local client_draw_circle_outline = client.draW_circle_outline
  26. local client_world_to_screen = client.world_to_screen
  27. local client_screen_size = client.screen_size
  28. local client_visible = client.visible
  29. local client_delay_call = client.delay_call
  30. local client_latency = client.latency
  31. local client_camera_angles = client.camera_angles
  32. local client_trace_line = client.trace_line
  33. local client_eye_position = client.eye_posistion
  34.  
  35. local entity_get_local_player = entity.get_local_player
  36. local entity_get_all = entity.get_all
  37. local entity_get_players = entity.get_players
  38. local entity_get_classname = entity.get_classname
  39. local entity_set_prop = entity.set_prop
  40. local entity_get_prop = entity.get_prop
  41. local entity_is_enemy = entity.is_enemy
  42. local entity_get_player_name = entity.get_player_name
  43. local entity_get_player_weapon = entity.get_player_weapon
  44. local entity_hitbox_position = entity.hitbox_position
  45. local entity_get_steam64 = entity.get_steam64
  46.  
  47. local ui_new_checkbox = ui.new_checkbox
  48. local ui_new_slider = ui.new_slider
  49. local ui_new_combobox = ui.new_combobox
  50. local ui_new_multiselect = ui.new_multiselect
  51. local ui_new_hotkey = ui.new_hotkey
  52. local ui_new_button = ui.new_button
  53. local ui_new_color_picker = ui.new_color_picker
  54. local ui_reference = ui.reference
  55. local ui_set = ui.set
  56. local ui_get = ui.get
  57. local ui_set_callback = ui.set_callback
  58. local ui_set_visible = ui.set_visible
  59. local ui_is_menu_open = ui.is_menu_open
  60.  
  61. local math_floor = math.floor
  62. local math_random = math.random
  63. local meth_sqrt = math.sqrt
  64. local table_insert = table.insert
  65. local table_remove = table.remove
  66. local table_size = table.getn
  67. local table_sort = table.sort
  68. local string_format = string.format
  69. local bit_band = bit.band
  70.  
  71. --[[
  72.  
  73.     Author: NmChris
  74.     Version: 1.0
  75.     Functionality: Draws hit markers
  76.  
  77.     Change log:
  78.         Recoded to fix issues.
  79.  
  80.  
  81. ]]--
  82.  
  83. -- Menu
  84. local menu = {
  85.  
  86.     hitmarker = ui_new_checkbox("VISUALS", "Effects", "Hit marker"),
  87.     hitmarker_color = ui_new_color_picker("VISUALS", "Effects", "Hit marker color", 255, 255, 255, 255),
  88.     hitmarker_size = ui_new_slider("VISUALS", "Effects", "Size", 1, 10, 4, true),
  89.     hitmarker_duration = ui_new_slider("VISUALS", "Effects", "Duration", 0, 10, 2, true),
  90.  
  91. }
  92.  
  93. -- Queue
  94. local damageQueue = {}
  95.  
  96. -- Menu handling
  97. local function handle_menu()
  98.  
  99.     local state = ui_get(menu.hitmarker)
  100.  
  101.     ui_set_visible(menu.hitmarker_color, state)
  102.     ui_set_visible(menu.hitmarker_size, state)
  103.     ui_set_visible(menu.hitmarker_duration, state)
  104.  
  105. end
  106.  
  107. handle_menu()
  108. ui_set_callback(menu.hitmarker, handle_menu)
  109.  
  110. -- Variable
  111. local bIsPlayerDamaged = false
  112.  
  113. -- Utility functions
  114. local function setLocation(x, y, z)
  115.  
  116.     if bIsPlayerDamaged == true then
  117.  
  118.         damageQueue[#damageQueue + 1] = {x, y, z, globals_realtime() + ui_get(menu.hitmarker_duration), true}
  119.         bIsPlayerDamaged = false
  120.  
  121.     end
  122.  
  123. end
  124.  
  125. -- Game events
  126. client_set_event_callback("player_hurt", function(e)
  127.  
  128.     if ui_get(menu.hitmarker) == false then
  129.  
  130.         return
  131.  
  132.     end
  133.  
  134.     if client_userid_to_entindex(e.attacker) == entity_get_local_player() then
  135.  
  136.         bIsPlayerDamaged = true
  137.  
  138.     end
  139.  
  140. end)
  141.  
  142. client_set_event_callback("bullet_impact", function(e)
  143.  
  144.     if ui_get(menu.hitmarker) == false then
  145.  
  146.         return
  147.  
  148.     end
  149.  
  150.     if client_userid_to_entindex(e.userid) == entity_get_local_player() then
  151.  
  152.         client_delay_call(0.01, setLocation, e.x, e.y, e.z)
  153.  
  154.     end
  155.  
  156. end)
  157.  
  158. client_set_event_callback("round_prestart", function(e)
  159.  
  160.     damageQueue = {}
  161.    
  162. end)
  163.  
  164. client_set_event_callback("paint", function(ctx)
  165.  
  166.     if ui_get(menu.hitmarker) == false then
  167.  
  168.         return
  169.  
  170.     end
  171.  
  172.     local r, g, b, a = ui_get(menu.hitmarker_color)
  173.     local size = ui_get(menu.hitmarker_size)
  174.  
  175.     for i = 1, #damageQueue do
  176.  
  177.         if damageQueue[i][5] == true then
  178.  
  179.             if globals_realtime() >= damageQueue[i][4] then
  180.  
  181.                 damageQueue[i][5] = false
  182.  
  183.             end
  184.  
  185.             local x, y = client_world_to_screen(ctx, damageQueue[i][1], damageQueue[i][2], damageQueue[i][3])
  186.  
  187.             if x ~= nil and y ~= nil then
  188.  
  189.                 client_draw_line(ctx, x + size, y + size, x + (size * 2), y + (size * 2), r, g, b, a)
  190.                 client_draw_line(ctx, x - size, y + size, x - (size * 2), y + (size * 2), r, g, b, a)
  191.                 client_draw_line(ctx, x + size, y - size, x + (size * 2), y - (size * 2), r, g, b, a)
  192.                 client_draw_line(ctx, x - size, y - size, x - (size * 2), y - (size * 2), r, g, b, a)
  193.  
  194.             end
  195.  
  196.         end
  197.  
  198.     end
  199.  
  200. end)local globals_realtime = globals.realtime
  201. local globals_curtime = globals.curtime
  202. local globals_frametime = globals.frametime
  203. local globals_absolute_frametime = globals.absoluteframetime
  204. local globals_maxplayers = globals.maxplayers
  205. local globals_tickcount = globals.tickcount
  206. local globals_tickinterval = globals.tickinterval
  207. local globals_mapname = globals.mapname
  208.  
  209. local client_set_event_callback = client.set_event_callback
  210. local client_console_log = client.log
  211. local client_console_cmd = client.exec
  212. local client_userid_to_entindex = client.userid_to_entindex
  213. local client_get_cvar = client.get_cvar
  214. local client_set_cvar = client.set_cvar
  215. local client_draw_debug_text = client.draw_debug_text
  216. local client_draw_hitboxes = client.draw_hitboxes
  217. local client_draw_indicator = client.draw_indicator
  218. local client_random_int = client.random_int
  219. local client_random_float = client.random_float
  220. local client_draw_text = client.draw_text
  221. local client_draw_rectangle = client.draw_rectangle
  222. local client_draw_line = client.draw_line
  223. local client_draw_gradient = client.draw_gradient
  224. local client_draw_cricle = client.draw_circle
  225. local client_draw_circle_outline = client.draW_circle_outline
  226. local client_world_to_screen = client.world_to_screen
  227. local client_screen_size = client.screen_size
  228. local client_visible = client.visible
  229. local client_delay_call = client.delay_call
  230. local client_latency = client.latency
  231. local client_camera_angles = client.camera_angles
  232. local client_trace_line = client.trace_line
  233. local client_eye_position = client.eye_position
  234.  
  235. local entity_get_local_player = entity.get_local_player
  236. local entity_get_all = entity.get_all
  237. local entity_get_players = entity.get_players
  238. local entity_get_classname = entity.get_classname
  239. local entity_set_prop = entity.set_prop
  240. local entity_get_prop = entity.get_prop
  241. local entity_is_enemy = entity.is_enemy
  242. local entity_get_player_name = entity.get_player_name
  243. local entity_get_player_weapon = entity.get_player_weapon
  244. local entity_hitbox_position = entity.hitbox_position
  245. local entity_get_steam64 = entity.get_steam64
  246. local entity_get_bounding_box = entity.get_bounding_box
  247. local entity_is_alive = entity.is_alive
  248.  
  249. local ui_new_checkbox = ui.new_checkbox
  250. local ui_new_slider = ui.new_slider
  251. local ui_new_combobox = ui.new_combobox
  252. local ui_new_multiselect = ui.new_multiselect
  253. local ui_new_hotkey = ui.new_hotkey
  254. local ui_new_button = ui.new_button
  255. local ui_new_color_picker = ui.new_color_picker
  256. local ui_reference = ui.reference
  257. local ui_set = ui.set
  258. local ui_get = ui.get
  259. local ui_set_callback = ui.set_callback
  260. local ui_set_visible = ui.set_visible
  261. local ui_is_menu_open = ui.is_menu_open
  262.  
  263. local math_floor = math.floor
  264. local math_random = math.random
  265. local meth_sqrt = math.sqrt
  266. local table_insert = table.insert
  267. local table_remove = table.remove
  268. local table_size = table.getn
  269. local table_sort = table.sort
  270. local string_format = string.format
  271. local bit_band = bit.band
  272.  
  273. local inspect = require 'inspect'
  274.  
  275. local menu = {
  276.  
  277.     movement = ui_new_checkbox("MISC", "Miscellaneous", "Show movement keys"),
  278.     logging = ui_new_checkbox("MISC", "Miscellaneous", "Aimbot logging"),
  279.     killsay = ui_new_checkbox("MISC", "Miscellaneous", "Kill say")
  280.  
  281. }
  282.  
  283. local killMessages = {
  284.  
  285.     "You should consider turning on your resolver",
  286.     "You want some of mommies milk?",
  287.     "You want some of daddies whipping cream?",
  288.  
  289. }
  290.  
  291. local deathMessages = {
  292.  
  293.     "Next time I won't hold E",
  294.     "Esoterik always wins",
  295.     "You're lucky I decided to rage death",
  296.  
  297. }
  298.  
  299. client_set_event_callback("player_death", function(e)
  300.  
  301.     if not ui_get(menu.killsay) then
  302.  
  303.         return
  304.  
  305.     end
  306.  
  307.     if client_userid_to_entindex(e.attacker) == entity_get_local_player() and entity_is_enemy(client_userid_to_entindex(e.userid)) then
  308.  
  309.         client_console_cmd("say ", killMessages[client_random_int(1, #killMessages)])
  310.  
  311.     elseif client_userid_to_entindex(e.userid) == entity_get_local_player() then
  312.  
  313.         client_console_cmd("say ", deathMessages[client_random_int(1, #deathMessages)])
  314.  
  315.     end
  316.  
  317. end)
  318.  
  319. client_set_event_callback("aim_fire", function(e)
  320.  
  321.     if not ui_get(menu.logging) then
  322.        
  323.         return
  324.    
  325.     end
  326.  
  327.     --[[[gamesense] {
  328.         backtrack = 0,
  329.         damage = 99,
  330.         high_priority = false,
  331.         hit_chance = 79.069770812988,
  332.         hitgroup = 1,
  333.         id = 8,
  334.         target = 11,
  335.         teleported = false,
  336.         tick = 177155,
  337.         x = -253,
  338.         y = -1146,
  339.         z = 65
  340.     }]]--
  341.  
  342.     client_console_log("Player: ", entity_get_player_name(e.target), ", Hitgroup: ", e.hitgroup, ", Damage: ", e.damage, ", Backtracked ticks: ", e.backtrack, ", Hit chance: ", math_floor(e.hit_chance), ", Breaking lag comp: ", e.teleported, ", High priority: ", e.high_priority)
  343.  
  344. end)
  345.  
  346. local buttons = {
  347.  
  348.     ["IN_JUMP"] = 2,
  349.     ["IN_DUCK"] = 4,
  350.     ["IN_FORWARD"] = 8,
  351.     ["IN_BACK"] = 16,
  352.     ["IN_MOVELEFT"] = 512,
  353.     ["IN_MOVERIGHT"] = 1024,
  354.     ["IN_WALK"] = 131072,
  355.  
  356. }
  357.  
  358. local function bIsActive(button)
  359.  
  360.     local flags = entity_get_prop(entity_get_local_player(), "m_nButtons")
  361.  
  362.     if bit_band(flags, buttons[button]) == buttons[button] then
  363.  
  364.         return true
  365.  
  366.     else
  367.  
  368.         return false
  369.  
  370.     end
  371.  
  372. end
  373.  
  374. local function draw_buttons(ctx, x, y)
  375.  
  376.     local padding = 12
  377.     local size = 64 + 12
  378.  
  379.     local r, g, b, a = 0, 0, 0, 255
  380.  
  381.     -- Duck
  382.     client_draw_rectangle(ctx, x, y, size, size, 0, 0, 0, 255)
  383.  
  384.     if bIsActive("IN_DUCK") then
  385.  
  386.         r = 0
  387.         g = 255
  388.  
  389.     else
  390.  
  391.         r = 255
  392.         g = 0
  393.  
  394.     end
  395.  
  396.     client_draw_text(ctx, x + (size / 2), y + (size / 2), r, g, b, a, "c+", 0, "Ctrl")
  397.  
  398.     -- Forward
  399.     client_draw_rectangle(ctx, x + size + padding, y, size, size, 0, 0, 0, 255)
  400.  
  401.     if bIsActive("IN_FORWARD") then
  402.  
  403.         r = 0
  404.         g = 255
  405.  
  406.     else
  407.  
  408.         r = 255
  409.         g = 0
  410.  
  411.     end
  412.  
  413.     client_draw_text(ctx, x + size + padding + (size / 2), y + (size / 2), r, g, b, a, "c+", 0, "W")
  414.  
  415.     -- Walk
  416.     client_draw_rectangle(ctx, x + size * 2 + padding * 2, y, size, size, 0, 0, 0, 255)
  417.  
  418.     if bIsActive("IN_WALK") then
  419.  
  420.         r = 0
  421.         g = 255
  422.  
  423.     else
  424.  
  425.         r = 255
  426.         g = 0
  427.  
  428.     end
  429.  
  430.     client_draw_text(ctx, x + size * 2 + padding * 2 + (size / 2), y + (size / 2), r, g, b, a, "c+", 0, "Shift")
  431.  
  432.     -- Left
  433.     client_draw_rectangle(ctx, x, y + size + padding, size, size, 0, 0, 0, 255)
  434.  
  435.     if bIsActive("IN_MOVELEFT") then
  436.  
  437.         r = 0
  438.         g = 255
  439.  
  440.     else
  441.  
  442.         r = 255
  443.         g = 0
  444.  
  445.     end
  446.  
  447.     client_draw_text(ctx, x + (size / 2), y + size + padding + (size / 2), r, g, b, a, "c+", 0, "A")
  448.  
  449.     -- Back
  450.     client_draw_rectangle(ctx, x + size + padding, y + size + padding, size, size, 0, 0, 0, 255)
  451.  
  452.     if bIsActive("IN_BACK") then
  453.  
  454.         r = 0
  455.         g = 255
  456.  
  457.     else
  458.  
  459.         r = 255
  460.         g = 0
  461.  
  462.     end
  463.  
  464.     client_draw_text(ctx, x + size + padding + (size / 2), y + size + padding + (size / 2), r, g, b, a, "c+", 0, "S")
  465.  
  466.     -- Right
  467.     client_draw_rectangle(ctx, x + size * 2 + padding * 2, y + size + padding, size, size, 0, 0, 0, 255)
  468.  
  469.     if bIsActive("IN_MOVERIGHT") then
  470.  
  471.         r = 0
  472.         g = 255
  473.  
  474.     else
  475.  
  476.         r = 255
  477.         g = 0
  478.  
  479.     end
  480.  
  481.     client_draw_text(ctx, x + size * 2 + padding * 2 + (size / 2), y + size + padding + (size / 2), r, g, b, a, "c+", 0, "D")
  482.  
  483.     -- Jump
  484.     client_draw_rectangle(ctx, x, y + size * 2 + padding * 2, size * 3 + padding * 2, size, 0, 0, 0, 255)
  485.  
  486.     if bIsActive("IN_JUMP") then
  487.  
  488.         r = 0
  489.         g = 255
  490.  
  491.     else
  492.  
  493.         r = 255
  494.         g = 0
  495.  
  496.     end
  497.  
  498.     client_draw_text(ctx, x + (size * 3 / 2), y + size * 2 + padding * 2 + (size / 2), r, g, b, a, "c+", 0, "Space")
  499.  
  500.  
  501. end
  502.  
  503. client_set_event_callback("paint", function(ctx)
  504.  
  505.     if not ui_get(menu.movement) then
  506.  
  507.         return
  508.  
  509.     end
  510.  
  511.     draw_buttons(ctx, 10, 450)
  512.  
  513. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement